Função da Categoria Text - Parte 1
Atualizado: 5 de ago.
As funções de Texto na Linguagem M (no Power Query), 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 de Dados), 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.
rPara seguir os exemplos propostos, baixe o aquivo Excel localizado no link abaixo:
Caso não tenha 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, através da Linguagem M, são utilizadas para tratar e transformar 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

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

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

O próximo passo é importar os dados da base disponibilizada no início desse artigo, uma pasta Excel chamada EstudoSobreFuncoes.
2 - Para importar os dados dessa base, clicando no botão "Pasta de Trabalho do Excel", como destacado na tela abaixo:

Para realizar a importação, siga os passos abaixo:
3 - Clique no botão Pasta de Trabalho do Excel, destacado na imagem abaixo.

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

5 - Na próxima tela selecione a tabela CPF que usaremos em nosso exemplo, pasta "EstudoSobreFuncoes", e clique no botão "Transformar Dados". Observe a tela abaixo:

6 - Na tela abaixo apresentamos a tela do POWER BI

7 - Agora vamos renomear a tabela CPF para TabCPF, conforme apresentado na tela abaixo.

A partir de agora vamos iniciar o processo de ETL, utilizando recursos do Power Query e funções da Linguagem M
8 - Inicialmente temos que que tipificar a coluna CPF como Texto. Para isso clique no botão ABC123 localizado a esquerda do nome da coluna(ou campo) e, em seguida, selecione o tipo TEXTO, conforme destacado na imagem abaixo:

Agora vamos remover os caracteres que estão separando os números, deixando-os fora de qualquer padrão.
9 - Selecione a aba Transformar, depois clique no botão "Transformar Valores"

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

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




Observe como ficaram os CPFs:

A seguir apresentaremos algumas funções do grupo TEXT, tendo como objetivo formatar os CPFs:
Para exemplificar vamos adicionar colunas. Esse processo, de criação de colunas, será repetitivo.
Uma conferência interessante antes da formatação é veriificar se todos os CPFs estão completos, com mesmo número de caracteres (11).
Para isso podemos contar o número de caracteres em cada CPF.
11 - Clique na aba "Adicionar Colunas", em seguida no botão "Colunas Personalizadas".
Observe a imagem abaixo:

Em seguida será apresentada uma tela para a inclusão da fórmula, conforme apresentado na tela a seguir.
12 - Nessa tela inclua o nome da nova coluna: "Número de Caracteres"
13 - Utilize a função abaixo:
Função: Text.Length( )
Objetivo: Retornar o resultado da extração de 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

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

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

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.

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

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

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

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]

Após criar a coluna, devemos tipificar a coluna para texto como feito em todas as anteriores.
Veja o resultado final na tela abaixo:

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)

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