RANKX, ALL, ALLSELECTED

RANKX, ALL, ALLSELECTED

Olá!

A dica de hoje é sobre o super Power BI.

É muito comum você precisar criar um Ranking de valores mostrados por alguma dimensão.

Ranking de valores

Baixe o arquivo de exemplo para começar:

No exemplo abaixo, temos uma tabela com cliente, cidade e valor:

tabela com cliente

Nosso objetivo é criar um ranking por cliente, não importando se este cliente atua em mais de uma cidade.

Se eu jogar em um visual de tabela o cliente, cidade e a venda (soma), já conseguimos visualizar a informação.

Por padrão, vamos criar uma medida para a soma do valor de venda:

VENDA = SUM(FVENDAS[VALOR])

A pergunta é: Qual foi o melhor cliente por vendas independente de sua cidade de atuação?  (Note que o cliente B tem atuação em duas cidades diferentes)

 

a cidade de atuação

Para criar o Ranking, crie uma medida e utilize a função RANKX:

RANK=RANKX(ALLSELECTED(FVENDAS[CLIENTE]);FVENDAS[VENDA])

Explicando:

O Primeiro argumento do RANKX é uma tabela. Como quero “rankear” por  cada cliente e apenas por ele, obedecendo filtros adicionados de fora (por exemplo, se alguém filtrasse uma região e só mostrasse os clientes dessa região) então nesse argumento adicionei o ALLSELECTED( FVENDAS[CLIENTE])

O próximo argumento é a expressão, ou seja, uma medida onde a função irá comparar quem é maior ou menor. Geralmente um valor, no nosso caso o valor de venda, então adicionei a medida criada anteriormente FVENDAS[VENDA]

Com isso ele já verifica o ranking do valor de venda entre os clientes. Arraste a medida de Rank e veja o resultado:

 

medida de Rank

medida de Rank

Está certo?  Não muito….😥

A função até tentou “rankear” por cliente, mas como também adicionei na minha tabela o campo cidade, ele obedeceu o contexto de filtro e “rankeou” por ela também. Note na foto anterior que ele está verificando CLIENTE + CIDADE como um item para a análise do Rank.

Como resolver isto?

Simples, utilize a CALCULATE para filtrar ou “desfiltrar” o contexto utilizado na medida.

Altere a medida do Rank:

RANK=CALCULATE(RANK=RANKX(ALLSELECTED(FVENDAS[CLIENTE]);FVENDAS[VENDA]);ALL(FVENDAS[CIDADE])

Explicando:

A medida do Ranking permaneceu igual. O que fiz foi adicionar fora dela uma CALCULATE que pega a medida do Ranking e diz, NÃO AVALIE O CONTEXTO DE FILTRO DA CIDADE, usando a função ALL (que tira o contexto de filtro e “congela”).

Veja:

contexto de filtro

 

 

 

 

 

 

 

 

 

 

Agora, clique na coluna do Rank, classifique-a e seja feliz!

😃

P.S  Veja que mesmo existindo duas cidades para o cliente B, ele ignorou e não mudou a ordem do Ranking, avaliando apenas o total do cliente.

ordem do Ranking

Tem muito mais em nosso canal do YouTube, você pode se inscrever clicando aqui.

E se você já quer ter muito mais conteúdo sobre produtividade, inscreva-se para o AULÃO PRODUTIVIDE 10X, totalmente online e gratuito.

Sid Moraes

Apaixonado por Excel, Power BI e Analytics! MCSE Data Analytics, MCSA B.I, MCSA B.I Reporting, MOSE Excel. Professor corporativo na Doutores do Excel, editor do blog Doutores do Excel e do blog CertificaExcel

Deixe um comentário

Fechar Menu