Índice
- Introdução
- A Necessidade de Remover Acentos
- Uma Solução Simples para Remover Acentos
- Criando a Função de Remoção de Acentos
- Usando a Função em Tabelas de Dados
- Conclusão
Introdução
Acentuação ortográfica e variações na padronização de textos são desafios comuns em processamento de dados, especialmente quando se lida com informações em diferentes idiomas ou quando é necessário garantir a uniformidade dos dados para análises precisas.
O objetivo deste artigo é demonstrar como padronizar e remover a acentuação ortográfica utilizando o Power Query (Linguagem M), permitindo que os dados sejam tratados de maneira eficaz sem a necessidade de recorrer a ferramentas externas ou complementos adicionais ao Power BI ou Excel.
A Necessidade de Remover Acentos
Muitos de nós já passamos por situações em que a acentuação ortográfica causa problemas em análises de dados. Palavras que deveriam ser consideradas iguais acabam sendo diferenciadas por pequenos detalhes, como os acentos ortográficos.
Por isso, para garantir a padronização dos dados, uma das soluções é remover a acentuação.
Em análises e comparações, as diferenças causadas pelos acentos podem complicar a tarefa de identificar padrões ou agrupar informações de maneira eficaz. A melhor abordagem, portanto, é trabalhar com palavras sem acentos, garantindo que qualquer variação ortográfica não interfira nos resultados.
Uma Solução Simples para Remover Acentos
No passado, já apresentamos uma função personalizada para remover acentos que era por meio deste código na linguagem M.
Versão 1.0
(texto as nullable text) =>
let
ComAcentos = Text.ToList("àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ"),
SemAcentos = Text.ToList("aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"),
ParesAcentos = List.Zip({ComAcentos, SemAcentos}),
TextoQuebrado = Text.ToList(texto),
AcentosSubstituidos = List.ReplaceMatchingItems(TextoQuebrado, ParesAcentos),
TextoMesclado = Text.Combine(AcentosSubstituidos)
in
TextoMesclado
Nesta solução acima, pra implementar a remoção de acentos, primeiro criamos uma lista de caracteres acentuados e seus equivalentes não acentuados. Depois, quebramos o texto em letras individuais e substituímos os caracteres acentuados pelos equivalentes sem acento. Em seguida, combinamos o texto novamente para obter a versão sem acento.
Essa abordagem funciona perfeitamente, entretanto é menos performática.
Para melhorar ainda mais esse processo, foi criada uma versão 2.0, mais eficiente e rápida. Se você quiser conhecer essa nova versão, continue lendo este artigo para aprender a criar sua própria função para remover acentos.
Criando a Função de Remoção de Acentos
A nova versão, mais simples, utiliza codificação para converter o texto em binário, removendo qualquer acento automaticamente. Aqui está o processo passo a passo para criar essa nova função:
Versão 2.0
(texto as nullable text)=>
let
Binario = Text.ToBinary(texto, 1251),
SemAcento = Text.FromBinary(Binario, TextEncoding.Utf8)
in
SemAcento
- Conversão para Binário: Pegue o texto e converta-o para um formato binário usando uma codificação específica, como a 1251, que não inclui caracteres acentuados.
- Retorno ao Texto: Converta o binário de volta para texto, usando uma codificação global, como UTF-8, para obter a versão sem acento do texto.
Essa abordagem permite eliminar acentos sem a necessidade de criar listas de caracteres acentuados e suas versões sem acento. Ao invés disso, a função lida automaticamente com todos os tipos de acentos, simplificando o processo.
Usando a Função em Tabelas de Dados
Ao invés de aplicar a função a cada coluna individualmente, você pode selecionar várias colunas ao mesmo tempo e aplicar uma transformação genérica. Em seguida, você modifica essa transformação para usar a função personalizada de remoção de acentos. Veja como fazer isso:
- Selecionar as Colunas: Selecione as colunas onde deseja remover os acentos. Por exemplo, se você tiver três colunas contendo texto com acentos, selecione-as.
2. Aplicar uma Transformação Genérica: Com as colunas selecionadas, aplique uma transformação que altere todas elas de uma só vez. Um exemplo seria transformar todas as colunas para maiúsculas. Essa transformação cria um código que é reutilizável para alterar a função aplicada.
3. Modificar a Transformação para Remover Acentos: Após aplicar a transformação, olhe para o código gerado. Geralmente, ele contém o nome da função utilizada (no exemplo, a função que transforma para maiúsculas).
Altere esse código para chamar a função fxRemoverAcentos
2 ao invés da função que transforma para maiúsculas. Substitua todas as ocorrências da função para remover acentos.
4. Confirmar a Modificação: Após alterar a função no código, pressione “Enter” ou “Ok” para aplicar a mudança. Isso deve remover os acentos de todas as colunas selecionadas de uma única vez.
Conclusão
Espero que este artigo tenha sido útil para você. Se gostou compartilhe com outros que possam se beneficiar desse conteúdo.
Obrigada pela leitura e até o próximo artigo!
Sem comentários! Seja o primeiro.