Power Query: entender a Linguagem M
Uma das características principais do Power Query é o poder de filtrar e combinar, isto é, “triturar” dados de um ou vários suportes de fontes de dados.
Estes dados “triturados” exprimem-se usando a Linguagem de Fórmulas do Power Query, conhecida como "M". O Power Query afixa os documentos M em livros do Excel para permitir a trituração repetível de dados.
A linguagem de Fórmulas do Power Query é uma linguagem otimizada para construir “queries” para modelar dados. É um tipo de linguagem semelhante a F#, que pode ser usada com o Power Query no Excel, «Obter e Transformar» no Excel 2016 e no Power BI Desktop .
O núcleo central no M é a expressão. Uma expressão pode ser calculada, produzindo um valor único.
Embora muitos valores se possam escrever literalmente como uma expressão, um valor não é uma expressão. Por exemplo, a expressão 1 calcula o valor 1; as expressões 1+1 calculam o valor 2. Esta distinção é ténue, mas importante. As expressões são receitas para o cálculo; os valores são os resultados do cálculo.
Funções em "M"
Numa função, começa-se por escrever os parâmetros de função e depois escreve-se uma expressão para calcular o resultado da função. O corpo da função vem depois do símbolo (=>). Opcionalmente, podemos escrever a informação para incluir nos parâmetros e a função retornar um valor.
Por exemplo:
(x) => x+1 – função que soma 1 a um valor x
(x,y) => x+y – função que soma 2 valores
Nesta última função, esta retorna dois valores X e Y e produz um resultado da aplicação do operador + a esses valores. X e Y são os parâmetros que fazem parte dos parâmetros formais da função e X+Y é o corpo da função.
Diferentes tipos de valores em "M"
O dado que resulta do cálculo de uma expressão é o que chamamos de valor. Como convencionado, um valor escreve-se usando a forma exata na qual aparece numa expressão, que avalia a somente esse valor.
Existem diferentes tipos de valor na linguagem M. Cada tipo de valor está associado a uma sintaxe, a um grupo de valores do mesmo tipo, a um grupo de operadores definido sobre aquele grupo de valores e um tipo intrínseco referente a valores recentemente construídos.
Vamos ver os mais comuns
VALOR PRIMITIVO
Um valor primitivo é um valor como um número, valor lógico, texto, ou valor nulo. Um valor nulo pode usar-se para indicar a ausência de quaisquer dados.
LISTA
É uma sequência de valores ordenados. O “M” suporta infinitas listas, mas se escritas como sintaxe literal, tem um tamanho fixo. As chavetas indicam o inicio e o fim da lista.
TABELA
É um grupo de valores organizados em colunas (que são identificados por nome) e linhas. Não existe sintaxe literal para a criação da tabela, mas existe uma série de funções padrões que podem ser usadas para criar tabelas através das listas ou registros.
#table ({"A","B"}, {{1,2},{3,4}})
FUNÇÃO
É um valor que, quando invocado com argumento, produz um novo valor. As Funções são escritas usando os parâmetros nos parênteses.
(x,y)=>(x+y)/2
Diferenças entre a linguagem DAX e a linguagem M
- A linguagem DAX é mais dinâmica, uma vez que ajusta e recalcula automaticamente em resposta as “alterações” de slicers, filtros ou outros mecanismos dinâmicos.
- A DAX é mais eficiente e rápida para agregações tipo SUM, etc.
- A linguagem M apenas recalcula quando atualizamos os dados.
Operadores da linguagem M
A linguagem M do Power Query inclui um grupo de operadores que podemos usar numa expressão.
Os Operadores aplicam-se aos Operandos para formar expressões simbólicas. Por exemplo, na expressão 1 + 2 os números 1 e 2 são operandos e o operador é o sinal de adição (+).
O significado de cada operador varia em função do tipo de valores do operando.
A linguagem M tem os seguintes operadores:
- Operador de soma (+)
- Operadores de combinação (&)
- Operadores comuns - nulo, lógico, número, tempo, data, datetime, datetimezone, duração, texto, binário
- Operadores de busca de registro
- Operadores de data
- Operadores de datetime
- Operadores de datetimezone
- Operadores de duração
Não todas as combinações de valores podem ser suportadas por um operador. As expressões que, quando calculadas, encontram condições de operador indefinidas calculam erros. Por exemplo, 1 + “2” dá erro, porque a soma de um número e texto não é possível.
O Power Query do Excel é uma ferramenta intuitiva para descoberta, transformação e enriquecimento de dados.
As transformações de dados, no Power Query, podem incluir tarefas como:
- Remover colunas, linhas, espaços em branco
- Converter tipos de dados – texto, números, datas
- Dividir ou juntar colunas
- Classificar e filtrar colunas
- Acrescentar colunas calculadas
- Agregar ou resumir dados
- Encontrar e substituir texto
- Converter dados de tabelas dinâmicas para dados estáticos