Funções DAX de Nível Intermediário e Avançado no Power BI: Guia Prático com Exemplos

Postado Por:

Categoria:

Postado em:

Funções DAX de Nível Intermediário e Avançado no Power BI: Guia Prático com Exemplos

Descubra como dominar funções DAX mais complexas para realizar análises avançadas e criar dashboards dinâmicos no Power BI

Neste post, exploramos as funções DAX de nível intermediário e avançado, essenciais para análises mais sofisticadas no Power BI. Aprenda a utilizar funções como CALCULATE, FILTER, RELATED, RANKX e muitas outras, com exemplos práticos que ilustram seu uso em cenários reais. Aprofunde-se no poder do DAX e leve suas análises no Power BI para o próximo nível.


Introdução

As funções DAX (Data Analysis Expressions) no Power BI são ferramentas poderosas que permitem realizar cálculos personalizados, criar medidas dinâmicas e analisar grandes volumes de dados de maneira eficiente. Para aqueles que já estão familiarizados com DAX básico, aprender funções intermediárias e avançadas é essencial para liberar todo o potencial do Power BI.

Neste post, veremos:

  1. Funções intermediárias para cálculos condicionais e filtros.
  2. Funções avançadas para cálculos complexos, como classificação dinâmica e cálculos baseados em contexto.
  3. Exemplos práticos para aplicar essas funções em análises reais.

Funções DAX Intermediárias

1. CALCULATE

A função CALCULATE é uma das mais importantes no DAX, pois permite modificar o contexto de cálculo ao aplicar filtros. Ela é amplamente usada para criar medidas personalizadas.

Sintaxe:

CALCULATE(<expressão>, <filtro1>, <filtro2>, ...)

Exemplo: Somar Vendas de uma Categoria Específica

Vendas Eletrônicos = CALCULATE(SUM(Vendas[Total]), Vendas[Categoria] = "Eletrônicos")

Nesse exemplo, CALCULATE soma as vendas apenas para a categoria “Eletrônicos”.

2. FILTER

A função FILTER cria uma tabela filtrada com base em uma condição. Ela é geralmente usada em conjunto com outras funções, como CALCULATE.

Exemplo: Filtrar Vendas Acima de 1000

Vendas Acima de 1000 = CALCULATE(SUM(Vendas[Total]), FILTER(Vendas, Vendas[Total] > 1000))

Aqui, somamos apenas as vendas onde o valor é maior que 1000.

3. RELATED

A função RELATED é usada para acessar colunas de uma tabela relacionada, aproveitando as relações definidas no modelo de dados.

Exemplo: Recuperar o Nome do Cliente

Nome Cliente = RELATED(Clientes[Nome])

sso retorna o nome do cliente correspondente em uma tabela relacionada.


Funções DAX Avançadas

1. RANKX

A função RANKX é usada para classificar valores em uma tabela, permitindo criar rankings dinâmicos com base em medidas ou colunas.

Exemplo: Ranking de Vendas por Produto

Ranking Vendas = RANKX(ALL(Produtos[Produto]), SUM(Vendas[Total]),,DESC)

Nesse exemplo:

  • ALL(Produtos[Produto]): Remove os filtros para calcular o ranking global.
  • SUM(Vendas[Total]): Determina o valor usado para o ranking.
  • DESC: Indica que o ranking é feito em ordem decrescente.

2. ALL

A função ALL remove filtros em colunas ou tabelas, útil para criar cálculos independentes do contexto atual.

Exemplo: Total Geral de Vendas

Total Geral = CALCULATE(SUM(Vendas[Total]), ALL(Vendas))

Isso calcula o total de vendas ignorando todos os filtros aplicados.

3. EARLIER

A função EARLIER é usada em cálculos iterativos, especialmente em colunas calculadas, para referenciar valores de linhas anteriores no contexto da tabela.

Exemplo: Calcular Percentual de Crescimento Acumulado

Crescimento Acumulado = SUMX(FILTER(Tabela, Tabela[Data] <= EARLIER(Tabela[Data])), Tabela[Valor])

Essa fórmula calcula o crescimento acumulado baseado em uma coluna de data.

4. TIMEINTELLIGENCE

As funções de inteligência de tempo permitem criar cálculos relacionados a períodos, como comparação de ano anterior ou crescimento mês a mês.

Exemplo: Vendas do Ano Anterior

Vendas Ano Anterior = CALCULATE(SUM(Vendas[Total]), SAMEPERIODLASTYEAR(Calendario[Data]))

Exemplos Práticos: Aplicando DAX em Cenários Reais

Cenário 1: Comparação de Vendas Mensais

Objetivo: Criar uma medida para calcular a diferença de vendas entre meses consecutivos.

Diferença Mensal = 
SUM(Vendas[Total]) - 
CALCULATE(SUM(Vendas[Total]), DATEADD(Calendario[Data], -1, MONTH))

Cenário 2: Percentual de Contribuição

Objetivo: Calcular o percentual que cada produto contribui para o total de vendas.

Percentual Contribuição = 
DIVIDE(SUM(Vendas[Total]), CALCULATE(SUM(Vendas[Total]), ALL(Vendas)))

Cenário 3: Média de Vendas Dinâmica

Objetivo: Criar uma média de vendas ajustada por filtros aplicados no relatório.

Média Ajustada = AVERAGEX(VALUES(Vendas[Produto]), SUM(Vendas[Total]))

Exercícios para Prática

  1. Criação de Ranking por Região

    • Use a função RANKX para criar um ranking de vendas por região.
    • Exiba o ranking em um gráfico de barras.
  2. Vendas Acumuladas

    • Crie uma medida que calcule as vendas acumuladas por mês.
    • Use a função CALCULATE em conjunto com DATESYTD.
  3. Comparação de Ano a Ano

    • Crie uma medida que calcule o crescimento percentual de vendas em relação ao ano anterior.
    • Utilize as funções CALCULATE e SAMEPERIODLASTYEAR.
  4. Identificar o Top Produto

    • Use RANKX e FILTER para identificar o produto mais vendido em uma categoria específica.

Conclusão

As funções DAX intermediárias e avançadas permitem realizar análises mais profundas e personalizadas no Power BI. Desde cálculos simples com CALCULATE e FILTER até classificações dinâmicas com RANKX, essas funções oferecem ferramentas poderosas para transformar seus dados em insights acionáveis.

Praticar essas funções em cenários reais é a melhor maneira de dominar DAX e levar suas habilidades no Power BI ao próximo nível. Se você está buscando criar dashboards mais interativos e impactantes, as funções apresentadas neste post são essenciais para alcançar esse objetivo.


Deixe seu comentário

Posts RELACIONADOS