Imagine que seu modelo de dados tem muitas medidas, e você precisa que seja mostrada a medida com maior valor usando DAX.
Talvez você tenha pensado em usar o IF, mas seria eficaz somente se fossem 2 medidas, mas quando partimos para mais que isso, começa a ficar impraticável a quantidade de testes lógicos.
Ai então que entra o macete no DAX que queremos te explicar aqui nesse artigo.
Conhecendo as medidas
Vamos aqui focar em 3 medidas simples, apenas para exemplificar o nosso problema:
Medida1 = SUM(Tabela[Coluna1])
Medida2 = SUM(Tabela[Coluna2])
Medida3 = SUM(Tabela[Coluna3])
Veja que cada uma delas está somando os valores de uma coluna específica, no contexto que estiver sendo filtrado.
A Mágica do DAX para Comparar
Agora, usamos uma fórmula DAX para criar uma nova medida que compara essas três e seleciona a maior.
Para isso vamos usar uma combinação de 2 técnicas:
- Criação de Tabela Manual;
- Avaliação linha a linha da tabela criada (que não existe fisicamente).
MaiorMedida = MAXX(
{
( "Medida1", [Medida1] ),
( "Medida2", [Medida2] ),
( "Medida3", [Medida3] )
},
[Value]
)
Após aplicar a medida MaiorMedida
, o DAX nos dirá qual medida teve o maior valor.
E se você desejar o menor valor?
Da mesma maneira que você usou o MAXX
, você pode usar as demais funções DAX de interação, como o MINX
, SUMX
, AVERAGEX
(por exemplo).
Veja só como é simples a alteração, seguindo a mesma lógica:
MenorMedida = MINX(
{
( "Medida1", [Medida1] ),
( "Medida2", [Medida2] ),
( "Medida3", [Medida3] )
},
[Value]
)
Mas o que são funções iteradoras no DAX?
As funções iteradoras no DAX são aquelas que percorrem (iteram) linha por linha de uma tabela ou de um conjunto de linhas, realizando cálculos em cada uma delas.
É como se você tivesse um assistente pessoal que vai de porta em porta (ou linha em linha) fazendo perguntas e anotando as respostas.
Sem essas funções, você teria que fazer malabarismos com várias outras funções para conseguir o mesmo resultado.
Elas simplificam o processo, tornando o cálculo de agregações complexas mais direto e menos parecido com resolver um quebra-cabeça de 1000 peças.
Exemplo dessas funções:
- SUMX: Pense no SUMX como um caixa de supermercado que soma o preço de cada item individualmente. Ele pega uma tabela, percorre cada linha e soma os valores de uma expressão que você define.
- AVERAGEX: É o amigo equilibrado que calcula a média. Ele passa por cada linha, calcula um valor e depois tira a média desses valores.
- MINX e MAXX: São os caçadores de tesouros. MINX busca o menor valor, e MAXX procura o maior em cada linha da tabela.
- COUNTX: É como um porteiro de balada contando quantas pessoas passam pela porta. Ele conta quantas vezes uma expressão retorna um valor não nulo para cada linha.
- CALCULATETABLE: Um pouco diferente, mas ainda no clube das iteradoras. Ele filtra uma tabela com base em uma ou mais condições e depois aplica outras funções DAX a essa tabela filtrada.
Vamos usar o SUMX como exemplo.
Imagine que você tem uma tabela de vendas e quer calcular o total de vendas.
O SUMX vai:
- Pegar a primeira linha da tabela.
- Calcular o valor da expressão para essa linha (por exemplo, quantidade vendida * preço por unidade).
- Anotar o resultado.
- Ir para a próxima linha e repetir o processo.
- No final, ele soma todos esses valores calculados.
Aprofundando o Conhecimento: Criando Tabelas no DAX
A solução que passamos dependeu do uso da técnica de criação manual de tabela DAX, e tenho um artigo completo aqui no meu BLOG, falando sobre as formas de criação de tabelas com DAX.
Acesse aqui e acesse um dos meus artigos mais lidos aqui do BLOG.
Ah, já use um ctrl + d
para salvar como favoritos, pois você vai usar muito essa técnica.
Descubra Mais no YouTube: Aula Visual Sobre DAX
Prefere um aprendizado visual?
Assista à minha aula no YouTube, onde exploro como selecionar a variável com maior valor no DAX.
Assista ao vídeo aqui
Esse vídeo foi gravado para solucionar essa dúvida de um dos alunos da FORMAÇÃO POWER QUERY 2.0 (meu pacote completo de cursos).
Clique no botão a seguir e conheça:
Conclusão
Dominar essas técnicas no DAX é como receber uma ovação de pé em análise de dados.
Você economiza tempo e ganha insights valiosos.
Mesmo que você não seja um programador, com as ferramentas certas e um pouco de prática, você pode fazer análises incríveis.
E por hoje é isso,
Forte abraço do