Para criar uma função utilizando a linguagem M dentro do Power Query dentro do Excel ou do Power BI:
🚦Power BI: Para abrir o Power query dentro do Power bi clique em "Página Inicial" | "Transformar dados"
🚦Excel: Para abrir o Power query dentro do Excel clique em "Dados" | "Obter Dados" | "Iniciar Editor do Power Query". Lembrando que este acesso pode variar de acordo com a versão do Excel que você esta utilizando. Eu estou utilizando a versão do office 365.
E lembrando também que o Power Query foi lançado em 2013 como uma parte do Excel e posteriormente foi integrado a outras ferramentas da Microsoft, como Power BI e SQL Server Integration Services (SSIS).
Dentro do Power Query, em "Página Inicial" clique em em "Nova fonte", (Outras fontes), "consulta nula", "Editor Avançado" (clique com o botão direito) e cole o código abaixo.
▶️▶️ Criar função para remover espaço:
let
substituirEspacoUltimoCaractere = (texto as text) as text =>
let
textoSemEspaco = Text.Trim(texto),
ultimoCaractere = Text.End(textoSemEspaco, 1),
espacosEmBranco = Text.Length(texto) - Text.Length(textoSemEspaco),
textoSubstituido = Text.ReplaceRange(textoSemEspaco, Text.Length(textoSemEspaco) - espacosEmBranco + 1, espacosEmBranco, "")
in
textoSubstituido
in
substituirEspacoUltimoCaractere
Renomeie o nome, neste exemplo coloquei f_removerespaco
*********************************************************************************
▶️▶️ Criar função para remover acentos
(texto as text) =>
let
ComAcentos = Text.ToList("àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ"),
SemAcentos = Text.ToList("aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"),
ParesAcentos = List.Zip({ComAcentos, SemAcentos}),
TextoQuebrado = Text.ToList(texto),
Substituicao = List.ReplaceMatchingItems(TextoQuebrado, ParesAcentos),
Resultado = Text.Combine(Substituicao)
in
Resultado
*********************************************************************************
✅ Utilizando as funções criadas
Para utilizar as funções criadas em qualquer tabela, clique na própria tabela, na guia superior, clique em "Adicionar Coluna" "Invocar Função Personalizada".
Dê um nome para a coluna nova que será criada com a função que você selecionou, sendo aplicada.
Repita este processo para a outra função, e depois exclua as colunas adicionais mantendo apenas uma coluna que neste exemplo será o nome.
Uma outra forma de utilizar as duas funções em uma única vez, é adicionar uma coluna personalizada na guia de "Adicionar Coluna", "Coluna Personalizada"
Table.AddColumn(#"Tipo Alterado", "nome_corrigido", each f_removeracentos(f_removerespaco([NOME])))
Tipo Alterado -> Última etapa aplicada em que a base é carregada em formato de tabela
nome_corrigido -> Novo nome para a coluna que será adicionada
[NOME] -> Nome da coluna original que quero aplicar as funções
f_removeracentos -> Função criada para remover acentos
f_removerespaco -> Função criada para remover espaços
*********************************************************************************
✅ Exemplo para criar uma função simples
-> Criar uma função qualquer com número ao quadrado ( o número x ele mesmo):
Primeiro crio uma variável chamada num e declaro que ele será um número. Então se num recebe 4, a função será 4 x 4 que terá como resultado 16.
= (num as number) as number =>
let
aoQuadrado = num*num
in
aoQuadrado