top of page

Função da Categoria Text - Parte 1

As funções de Texto no Power Query (linguagem M) servem para limpar, padronizar, tratar, extrair, modificar, combinar e manipular dados em formato de texto dentro das suas bases de dados. Elas são essenciais na etapa de ETL (Extração, Transformação e Carga), permitindo corrigir erros de digitação, padronizar formatos e preparar informações para relatórios.


Neste artigo abordaremos funções do grupo Text.


Assista o vídeo abaixo, onde explicaremos e exemplificaremos as funções desse artigo.


Para seguir os exemplos propostos, baixe o aquivo Excel localizado no link abaixo:






Caso não tenhs o POWER BI Desktop instalado sua máquina, baixe-o atráves do botão abaixo:





Funções do Grupo TEXT


As funções do grupo Text, disponíveis no ambiente do Power Query, são utilizadas para tratar e transforma dados do tipo Texto.


Importante: O ambiente do Power Query é o local onde fazemos o processo de ETL, isto é, extraímos os dados do ambiente original, o tratamento dos dados e fazemos carga dos dados tratados no ambiente do Power BI.


Vamos ver algumas funções do grupo Text. Para isso abra uma instância do POWER BI clicando no ícone do POWER BI, criado após a instalação


Ícone do POWER  BI
Ícone do POWER BI

Após abrir o Power BI, será apresentada a tela abaixo:


Tela: Abrir arquivo novo
Tela: Abrir arquivo novo

Clique no botão em destaque (Relatório em Branco), e a tela abaixo será apresentada:


Tela: Inicial para Criação do Painel
Tela: Inicial para Criação do Painel

O próximo passo é importar os dados da base baixada no início desse artigo, uma pasta Excel chamada EstudoSobreFuncoes.


Para importar os dados dessa base, clicando no botão "Pasta de Trabalho do Excel", como destacado na tela abaixo:


Tela: Importar Dados da Pasta de Trabalho do Excel
Tela: Importar Dados da Pasta de Trabalho do Excel

Para realizar a importação, siga os passos abaixo


1 - Clique no botão destacado na imagem acima: Pasta de Trabalho do Excel


2 - Na tela que será apresenta, selecione a pasta Excel "EstudosSobreFuncoes" e clique no botão Abrir, como apresentada na tela abaixo:



3 - Na próxima tela selecione a tabela que usaremos em nosso exemplo, e clique no botão "Tranformar Dados". Observe a tela abaixo:


Tela: Selecionar Tabela e Carregar Transformar Dados
Tela: Selecionar Tabela e Carregar Transformar Dados

4 - Na tela abaixo apresentamos a tela do POWER BI


Tela: Apresentação da Tela do POWER QUERY
Tela: Apresentação da Tela do POWER QUERY

5 - Agora vamos renomear a tabela CPF para TabCPF. Observe a tela abaixo.


Tela: Renomear Tabela
Tela: Renomear Tabela

A partir de agora vamos iniciar o processo de ETL, utilizando recursos do Power Query e funções da Linguagem M


6 - Inicialmente temos que que tipificar a coluna CPF como Texto. Para isso clique no botão ABC123 localizado a esquerda do nome do campo, como destacado na imagem abaixo:


Tela: Tipificando Campo CPF
Tela: Tipificando Campo CPF

Agora vamos remover os caracteres que estão separando os números, fora do padrão.


7 - Clique selecione a aba Tranformar, depois clique no botão "Tranformar Valores"


Tela: Substituir Valores
Tela: Substituir Valores

8 - Vamos substitui os valores atuais ("/", "." , "," , "-"), por nenhum valor. Observe a tela abaixo:


Tela: Substituir Valores
Tela: Substituir Valores

Esse processo será repetido várias vezes, até que sejam removidos todos os caracteres não numéricos. Observe as telas abaixo:


Tela: Substituir Ponto
Tela: Substituir Ponto

Tela: Substituir Virgula
Tela: Substituir Virgula

Tela: Subtituir Barra
Tela: Subtituir Barra

Tela: Subtituir Hifem
Tela: Subtituir Hifem

Observe os como ficaram os CPFs



Abaixo, algumas funções do grupo TEXT:


Para exemplificar vamos adicionar colunas. Esse processo será repetitivo.


Uma conveferência interessante antes da formatação é veriificar se todos os CPFs estão completos com 11 caracteres.

Para isso podemos contar o número de caracteres em cada CPFs.


9 - Clique na aba "Adicionar Colunas", em seguida no botão "Colunas Personalizadas". Observe a imagem abaixo:


Tela: Adicionar Coluna
Tela: Adicionar Coluna

Em seguida será apresentada uma tela para a inclusão da fórmula, conforme apresentado na tela a seguir.


10 - Nessa tela inclua o nome da nova coluna: "Número de Caracteres"


11 - Utilize a função abaixo:


Função: Text.Length( )

Objetivo: Retornar o resultado da extração e um número de caracteres, iniciando sempre da esquerda para direita.

Sintaxe: Text.Length(String)

Exemplo: Retornar o número de caracteres de cada linha da coluna CPFs

               Text.Length([CPFs]) -> Retorna 11


Tela: Acrescetar Coluna reornando o número de caracteres por linha
Tela: Acrescetar Coluna reornando o número de caracteres por linha

Após acrescentar a coluna Número de Caracteres, o resultado será o como paresentado na imagem abaixo:


Tela: Nova Coluna Número de de Caracteres
Tela: Nova Coluna Número de de Caracteres

12 - Agora vamos pegar os três primeiros caracteres do CPF. Para isso utilize a função abaixo:


Função: Text.Start( )

Objetivo: Retornar o resultado da extração e um número de caracteres, iniciando sempre da esquerda para direita.

Sintaxe: Text.Start(String,n)

Exemplo: Retornar os 3 primeiros caracteres do CPF 12345678910

               Text.Start([CPFs],3) -> Retorna 123


Tela: Resultado da Aplicação da função Text.Start()
Tela: Resultado da Aplicação da função Text.Start()

13 - Para tipificar a coluna como texto (isso será importante mais a frente), selecione a coluna "Caracteres a Esquerda", selecione a aba "Transformar", e clique no botão "Tipo de Dados", e selecione a opção Texto.


Tela: Tipificar Coluna
Tela: Tipificar Coluna

14 - Agora vamos ao outro passo, que é pegar os próximos 3 caracteres a partir dos três primeiros caracteres já pegos etapa anterior. Para isso usaremos a função abaixo.


Função: Text.Middle( )

Objetivo: Retornar o resultado da extração e um número de caracteres, iniciando sempre da esquerda para direita.

Sintaxe: Text.Middle(String,n)

Exemplo01: Retornar os 3 próximos caracteres do CPF 12345678910

               Text.Middle([CPFs],3,3) -> Retorna 456


Após criar a coluna devemos tipifica-la como Texto, como fizemos na coluna anterior


Tela: Criação da Coluna Caracteres do Meio, utilizando a função Text.Middle()
Tela: Criação da Coluna Caracteres do Meio, utilizando a função Text.Middle()

15 - Agora vamos extrair os próximos 3 caracteres (7,8 e 9), utilizando a mesma função Text.Middle().


Exemplo02: Retornar os 3 próximos caracteres do CPF 12345678910

               Text.Middle([CPFs],6,3) -> Retorna 789


Tela: Criação da Coluna Caracteres do Meio, utilizando a função Text.Middle()
Tela: Criação da Coluna Caracteres do Meio, utilizando a função Text.Middle()

16 - Agora precisamos coletar os dois últimos caracteres. Para isso vamos utilizar a função abaixo:


Função: Text.End( )

Objetivo: Retornar o resultado da extração e um número de caracteres, iniciando sempre da esquerda para direita.

Sintaxe: Text.End(String,n)

Exemplo01: Retornar os 2 últimos caracteres do CPF 12345678910

               Text.End([CPFs],2) -> Retorna 10


Tela: Colunas de Caracteres a Direita com uso da função Text.End()
Tela: Colunas de Caracteres a Direita com uso da função Text.End()

A partir de agora vamos concaternar as colunas criadas, separando-as por ponto (.) e traço / hífem (-).


Para concatenar utilizaremos o caracter &, conforme o abaixo:


Nome ca Coluna: CPF Formatado - Colunas

Fórmula ou Expressão: [Caractares a Esquerda] & "." & [Caracteres do Meio 4 a 6] & "." & [Caracteres do Meio 7 a 9] & "-" & [Caracteres a Direita]


Tela: Resultado do CPF formatado
Tela: Resultado do CPF formatado

Após criar a coluna, devemos tipificar a coluna para texto como feito em todas as anteriores.


Veja o resultado final na tela abaixo:


Tela: Resultado com CPF Formatado
Tela: Resultado com CPF Formatado

Após obter esse conhecimento podemos resolver esse problema de forma mais rápida e objetiva, com uma única fórmula. Veja a baixo:


Nome da Coluna: CPF Formatado - Função

Fórmula: Text.Start([CPFs],3) & "." &

Text.Middle([CPFs],3,3) & "." &

Text.Middle([CPFs],6,3) & "-" &

Text.End([CPFs],2)


Tela: CPF Formato de forma direta, apenas com uso de fórmula em uma única coluna
Tela: CPF Formato de forma direta, apenas com uso de fórmula em uma única coluna

Gostou? Deixe seus comentários. Se torne membro do nosso canal no YouTube e nos siga em nossas redes sociais.


Grande abraço.


Até o próximo artigo.


Comentários


Learn BI Academy - Consultoria e Treinamento
Rua Dionísio Erthal, 69 - Santa Rosa - Niterói - RJ
learnbitraining@gmail.com
Tel.: 21-9-8825-2737

© 2020 por Marcelo Puentes.

bottom of page