Power BI: conhecendo as linguagens M e DAX

Power BI: conhecendo as linguagens M e DAX
Ana  Duarte
Ana Duarte

Compartilhe

Uma coisa é certa: dá para programar no Power BI e iremos apresentar as possibilidades de fazer isso ao longo deste texto com as duas principais linguagens: a linguagem DAX (Data Analysis Expressions) e a linguagem M (M Query), e seu impacto nas análises realizadas com o Power BI.

Para entender melhor a atuação e diferença entre as duas linguagens, M e DAX, vamos levar em consideração o seguinte cenário: suponha que você precisa analisar informações sobre vendas de uma empresa, você possui várias fontes de dados que inclui datas de venda, valores de vendas e categorias de produtos.

Sua missão é criar um relatório no Power BI Desktop com dados consistente e disponíveis e mostrar a média de vendas por categoria de produto.

Utilizando Linguagem M

Para começar nossa demanda, é importante carregar todas as fontes de dados para o Power Query, nele podemos obter dados de diferentes fontes e visualizar diferentes recursos de tratamento de dados que são executados através de um clique. Se você observar abaixo o print do menu do Power Query irá perceber vários botões que permitem transformar os dados, podemos destacar, por exemplo, as funções de substituir valores, alterar tipo e dividir colunas.

Menu de página inicial do power query com funcionalidades de obter dados gerenciar consultas e colunas, reduzir linhas, classificar, transformar e obter insights da IA.
Menu de transformar do power query com funcionalidades de transformar tabela, alterações em colunas do tipo texto, número, data e hota e geral, e por fim uma sessão com a possibilidade de executar scripts R e Python.

Voltando para nossa missão, com os dados já carregados no Power Query foi preciso fazer alterações bem típicas de uma pessoa analista de dados: foi realizado a separação de valores através da vírgula, a remoção de colunas e mudança de cabeçalho e aparo, todas essas transformações resultaram em uma informação mais consistente para construir nosso relatório final.

Essas etapas foram construídas acessando o menu do Power Query, mas você sabia que todas essas mudanças foram escritas em M? Para ter acesso a isso, precisamos acessar a opção “Editor Avançado” da aba ‘Consulta” na página inicial do Power Query.

Print do menu Página inicial do Power Query na qual o botão “Editor Avançado” da aba consulta está destacado.

Ao clicar no botão podemos ter acesso a uma página com os códigos em M que faz referência às alterações que fizemos nos dados:

Acessando essa página já podemos citar o primeiro benefício de usar a linguagem M: controle total sobre a transformação de dados e das etapas realizadas, isso foi alcançado através do registro das transformações em uma linguagem formal, além disso, esse código serve como documentação dos tratamentos realizados, o que facilita a conferência e a reprodutibilidade do projeto.

Podemos ainda citar que utilizar a linguagem M para tratar os dados também te ajuda na manipulação complexa de dados,visto que nem todas as alterações podem ser executadas de maneira ideal utilizando apenas os botões disponíveis no Power Query e essa lacuna pode ser preenchida pela linguagem M.

Banner da Imersão Phyton: Inscreva-se gratuitamente na Imersão Phyton da Alura e mergulhe em análise de dados!

Utilizando Linguagem DAX

Seguindo nossa missão, já temos os dados tratados e preparados para extrair nossas análises, agora partimos para calcular a média de vendas e nessa etapa iremos contar com a linguagem DAX sigla para Data Analysis Expressions.

Uma forma de fazer isso é utilizar o DAX para criar uma medida com o seu conjunto de dados, um dos caminhos possíveis é clicando com o botão direito do mouse em uma de suas tabelas e selecionar a opção “Nova Medida”.

Print de tela do menu dados do power bi desktop, uma tabela está selecionada e um menu suspenso sai dela, dentre as opções a segunda chamada “nova medida” está marcada na cor rosa.

Ao fazer isso, uma nova medida será criada e atrelada a tabela selecionada anteriormente, depois disso uma barra de de fórmulas surgirá no menu superior a qual podemos utilizar a linguagem DAX. Para o nosso problema, precisamos da média de vendas, que será calculada utilizando a coluna que armazena a quantidade de vendas Qnt Vendas da tabela HistoricoVendas.

Contaremos com função AVERAGE para retornar a média desejada, depois de criada é possível utilizar a medida nomeada de Média_Vendas para compor os visuais e seguir com nosso relatório.

Média_Vendas = AVERAGE('HistoricoVendas'[QntVendas])

Toda a lógica da linguagem pode sem bem compreendida ao entender três aspectos: contexto de linha, contexto de filtro e iterações. que torna a linguagem aplicável a diferentes contextos de negócio e de forma resumida é possível construir cálculos olhando individualmente para as linhas da tabela e também levando em consideração os filtros selecionados em seu relatório.

Além disso, lidamos melhor com situações complexas e repetitivas ao percorrer todo o conjunto de dados de forma iterativa. E se você quiser entender melhor esses 3 conceitos eu já te indico o curso Power BI: DAX contextos e iteração que trabalha muito bem esses aspectos.

Para compor nosso relatório de vendas, empregamos a linguagem DAX para criar uma medida: a média de vendas. Essa medida faz apenas uso da função AVERAGE. No entanto, essa linguagem oferece uma gama diversificada de funções, atendendo a várias necessidades de cálculo.

Além de medidas, o DAX também pode ser aplicado em diferentes cenários, como a criação de colunas e tabelas calculadas, capazes de gerar novos insights a partir do seu modelo, outra aplicação é a interação com aspectos de segurança em nível de linha, possibilitando a filtragem de informações específicas para determinados usuários.

Considerações

Em resumo, a linguagem M é usada para obtenção, manipulação e transformação de dados brutos, enquanto a linguagem DAX é usada para cálculos e análises em modelos de dados . Ambas são poderosas e desempenham papéis fundamentais e complementares na criação de relatórios e análises eficazes usando ferramentas da Microsoft e principalmente no Power BI.

A imagem mostra dois quadrados um ao lado do outro, o primeiro está escrito “Linguagem M, obtenção, manipulação e transformação de dados brutos" e o segundo tem escrito internamento “linguagem DAX, cálculos e análises em modelos de dados com funções e operadores.”

Por fim, tanto a linguagem M quanto a linguagem DAX são utilizadas principalmente em produtos da Microsoft. O “M” é a linguagem do Power Query, que está contido no Power BI, Excel e Analysis services e o DAX também pode ser usado nesses produtos. No entanto, elas têm propósitos diferentes e são usadas em contextos diferentes.

Agora você sabe que é possível programar em Power BI! Além de usufruir de sua interface intuitiva com botões, menus e janelas característicos dos produtos da Microsoft, podemos realizar o tratamento de dados e criação de medidas para além de “arrastar, clicar e soltar” os elementos visuais no canvas. Com a usabilidade da plataforma e a utilização do DAX e o M conseguimos democratizar ainda mais os processos de análise de dados.

Quer se aprofundar?

Nesse artigo você conheceu melhor as duas linguagens, suas diferenças e principais impactos nas análises de dados realizadas principalmente no Power BI, mas o conhecimento não para por aqui! Na plataforma da Alura temos muitos outros conteúdos para você aprofundar ainda mais nesse assunto e ter melhor proveito nas suas análises de dados! Vou deixar aqui embaixo algumas sugestões:


Créditos

Ana  Duarte
Ana Duarte

Sou bacharela em Estatística e atualmente curso Ciência da Computação. Já atuei como cientista de dados no ramo educacional e financeiro e hoje sou instrutora na Escola de Dados da Alura e voluntária na equipe de projetos do grupo Data Girls. Sou apaixonada por transformar dados em informação inteligente usando a ciência de dados em diversos tipos de aplicação. Fora isso, sempre estou acompanhando alguma série e procurando novas rotas para andar de bike.

Veja outros artigos sobre Data Science