image

Unlimited bootcamps + English course forever

80
%OFF
Article image
Isabelly Bezerra
Isabelly Bezerra03/04/2026 21:41
Share
CI&T - Do Prompt ao AgenteRecommended for youCI&T - Do Prompt ao Agente

Power Query: Como compreender a lógica da Linguagem M para modelar e tratar dados?

    Recentemente, decidi aprimorar minhas habilidades em Excel voltadas ao tratamento de dados com o Power Query. Pedi à IA uma tabela fictícia que tivesse a maior parcela de erros possíveis: Data e Valores sem padronização brasileira e textos sem formatação adequada. Enfim, na hora de colocar a mão na massa percebi que eu não sabia como solucionar aqueles problemas, meu conhecimento era muito básico para solucionar o problema em questão.

    Então, por meio deste artigo, vou demonstrar os conhecimentos que obtive ao estudar a Linguagem M por tentativa e erro, ou seja, praticando e lendo a documentação do programa.

    O que é Power Query?

    Antes de tudo, é necessário entender o intuito do programa, ou seja, para que o Power Query existe?

    Podemos dizer que o Power Query é uma extensão que permite o tratamento e modelagem dos dados de forma rápida e prática. Ao invés de usar inúmeras fórmulas do Excel ou BI, é possível fazer isso no Query, exemplo: Criar colunas calculadas; utilizar condicionais; editar títulos; e formatar tabelas. Utilizando-o é possível criar essas consultas (Tratamento dos dados) de forma automatizada, portanto, qualquer dado novo já estará com a modelagem do Query.

    Entendendo Linguagem M

    Agora vamos percorrer mais profundamente o Query, no caso, sua linguagem de programação M.

    A linguagem do Query permite o tratamento mais profundo e coeso dos dados. Entendê-la garante uma consulta mais coesa e menos suscetível a erros. Para entender a sua importância vamos usar um exemplo: Você precisa padronizar as datas de uma tabela de dados, para isso é possível usar a função Localidade que transformará a data no formato português (“pt-BR” no Query).

    As datas sem formatação:

    image

    Função Localidade:

    image

    Retorno da Função Localidade:

    image

    Como podemos ver, a função localidade não funcionou neste caso por apenas um motivo. Uma data estava em inglês (“en-US” no Query), sendo assim o Query não consegue transformar a data no formato desejado. E são nestes casos que é necessário usar a Linguagem M, por isso, vamos utilizá-la para solucionar este problema.

    Solucionando o Problema com a Linguagem M

    Primeiramente, existem dois campos onde é possível editar uma coluna: Editor Avançado e Coluna Personalizada; e é importante que se entenda suas diferenças.

    • Editor Avançado: É o painel que permite a alteração de toda a tabela, ou seja, se a alteração envolve todo o conjunto de dados utilize o Editor Avançado.
    • Coluna Personalizada: Como já diz o nome, é a criação de uma função dentro de apenas uma coluna. Então se a alteração envolve apenas uma coluna específica, utilize essa opção.

    Explicado isso, vou demonstrar como solucionar o problema usando o Editor Avançado, mesmo que seja uma alteração apenas na coluna. Mais para frente, vou explicar o porquê.

    Passo a passo da Solução:

    Assim que entrar no Editor Avançado, já é possível notar certos padrões:

    1. Ele sempre nomeia suas funções.
    2. No editor avançado, as primeiras funções a serem ditas começam com Table.
    3. Na criação de uma nova função, é preciso sempre referenciar a última função.

    Com isso em mente, vamos formar a nossa função começando com:

    Formatação_Data = Table.TransformColumns(“Função anterior”, "Função que vamos construir")
    

    Ao escrever isso, aparecerá um balão, descrevendo o que é preciso colocar dentro da função Table. A informação mais importante dela é: TransfomOperations as list.

    Qual o motivo da sua importância?

    É bem simples, existem duas formas de criar função no Query:

    1. AS LIST: A as list significa que é preciso criar uma função a partir de listas, essa lista segue um padrão: {“Nome da coluna em aspas”, “função desejada”}
    2. AS FUNCTION: A as function significa que a função é com base nas fórmulas.

    A principal diferença é: AS LIST define primeiro onde será feito e, em seguida, o que será feito; AS FUNCTION define primeiro o que será feito e dentro da fórmula será descrito onde.

    Para entender, vou mostrar o exemplo de ambas:
    AS LIST: Data_Formatação = Table.TransformColumns("#Promoted Headers",{" Data de Compra ",each try Date.From(_,"pt-BR) otherwise Date.From(_,"en-US")})
    

    Perceba que antes de descrever a função, delimitei a coluna em “” e depois a ação.

    AS FUNCTION: Data_Formatação = Table.AddColumns("#Promoted Headers","Data",each try Date.From([ Data de Compra ],"pt-BR") otherwise Date.From(_,"en-US"))
    

    Note que descrevemos primeiro a função que será feita para que, a partir dela, será referenciado a tabela.

    Alguns pontos relevantes:
    1. Each e Otherwise: Essas palavras-chaves são utilizadas para percorrer os dados de uma coluna. No exemplo é pedido que percorra e tente transformar a data em português (Each Try), se caso não funcionar transforma a data em inglês e tente de novo (Otherwise).
    2. Quando for referenciar a tabela dentro da função do AS LIST coloque “_”, assim ela percorrerá todos os valores da coluna referenciada.

    Antes de mostrar o resultado, lembra da Coluna Personalizada? Pois bem, é possível fazer a mesma coisa nele. O exemplo do AS FUNCTION é para ser usado na coluna personalizada, desta maneira:

    image

    Não precisa colocar a função Table, pois a Coluna Personalizada edita apenas colunas e não tabelas.

    Para finalizar, os resultados obtidos com ambas as resoluções é:

    image

    Conclusão Final

    A partir deste breve estudo sobre a Linguagem M, compreendi que: Mais do que aprender Power Query, esse processo me mostrou que dominar a lógica por trás das ferramentas é o que realmente diferencia um usuário comum de um analista de dados. Este aprendizado me permitiu superar as barreiras da modelagem e tratamento de dados.

    Por fim, espero ter esclarecido ao leitor a estrutura da Linguagem M e como solucionar problemas a utilizando.

    Share
    Recommended for you
    Globant  - Java & Spring Boot AI Developer
    Accenture - Python para Análise e Automação de Dados
    Lupo - Primeiros Passos com Inteligência Artificial
    Comments (0)
    Recommended for youCI&T - Do Prompt ao Agente