Bom dia, Boa tarde e Boa noite, viciados em Power BI de todo Brasil.
Vamos falar de Ranking?
Se você já criou um ranking já se deparou com situações em que a expressão a ser ranqueada se repete e o que acontece? puff... o Power BI dá a todos o mesmo Rank.
Isso as vezes pode te prejudicar se estiver tentando fazer um Gráfico de Pareto e vocês vão ver o porquê.
Conhece meu canal no youtube? Nããããão?????
...que absurdo...
então vai lá no youtube e se inscreve, já que tu ta de bobeira mesmo para ler esse artigo.
CLICA AQUI!
"Letra 'a' VAMOS COMEÇAR... "
Tenho então duas tabelas fVendas, que tem os valores de vendas em um período X por cada vendedor e uma tabela dVendedores que tem o cadastro dos meus vendedores com um relacionamento entre elas na coluna [Vendedor].
Inserimos um visual de tabela dVendedores[Vendedor] numa coluna e fVendas[Vendas] na segunda coluna e um Rank do jeito "padrão" de fazer e novamente nenhum segredo para vocês doutores do ABC em Power BI.
Vamos então criar as duas colunas que faltam para nosso Pareto, vendas acumuladas de acordo com o Ranking e % de vendas Acumuladas.. (Se você não sabe o que é Pareto clica AQUI e veja o vídeo do Planilheiros).
Faremos elas utilizando as seguintes funções:
Venda Acumulada =CALCULATE (
SUM ( fVendas[Vendas] );
TOPN ( [Rank]; ALL ( dVendedores[Vendedor] ); [Rank]; ASC )
)
% Acumulado =
[Venda Acumulada] / CALCULATE ( SUM ( fVendas[Vendas] ); ALL ( fVendas ) )
Temos então os problemas.... Quando você verifica as duas primeiras vendedoras, ambas tiveram o mesmo valor de venda R$ 2.600,00, e então o RANKX classifica ambas com o mesmo RANK ( 1 ) e como consequência temos então que na Venda Acumulada e % Acumulados tenhamos valores iguais para as duas.
Queremos então criar um Rank em que meus vendedores sempre tenham valores exclusivos e assim resolveremos toda essa problemática.
Para esse exemplo eu vou considerar como fator de "desempate" simplesmente a ordem alfabética dos nomes. No nosso novo Rank então Camila Será 1 e Fernanda Será 2.
Como fazer isso? Mais simples do que você pode imaginar.
Vamos em "Editar Consultas" e lá no Power Query editar a tabela dVendedores.
Se queremos que nossa sequência seja por ordem alfabética vamos então colocar nossos vendedores em ordem alfabética....MASSSSSSS... não de A para Z mas de Z para A, ou seja na ordem decrescente.
Feito isso adiciona aí uma Coluna Índice iniciando em 1 mizifío...
Adicionou? Beleza vamo simbora...
Agora vamos fazer uma macacada que é o pulo do gato - quanto bicho numa só frase...
Pense bem... se eu tenho dois vendedores com mesmo valor de venda qualquer milésimo de centavo a mais na sua venda faria ele ficar à frente do outro, concorda?
Então olha o que temos agora na nossa coluna...
Como antes de inserir o índice, ordenamos nossos vendedores em ordem alfabética decrescente, a Camila tem um Índice de número 11 e a Fernanda de número 8.
Bem podemos utilizar esse índice então para desempatar? Porque não?
Como o valor de índice é um inteiro e nossas vendas são decimais é ideal quer para usa-los para como desempate no que vamos fazer a seguir, dividamos esse valor por algum numero bem alto, para que tenhamos como resultado um decimal tão ridiculamente pequeno que não fará diferença quando "somado".
Então garotinho, seleciona a coluna "Índice" vai na guia Tranformar>Padrão>Dividir e coloca um numero bem grande como 1.000.000.
'Fechar e aplicar" e vamos fazer a magia acontecer.
Na nossa medida de RANK que antes no segundo argumento somente tinha a CALCULATE(sum(fVendas[Vendas)), vamos alterar para CALCULATE(sum(fVendas[Vendas])+sum(dVendedores[Índice]))
Ou seja vamos rankear não somente pelo valor da venda, mas pelo valor da venda somando aquele decimal picototinho que está la na coluna índice.
Ficará assim nossa nova RANKX
RANKX (
ALL ( dVendedores );
CALCULATE ( SUM ( fVendas[Vendas] ) + SUM ( dVendedores[Índice] ) );
;
DESC
)
E com esse ajuste temos nossa tabela com valores exclusivos de Rank.
E agora podemos montar nosso belíssimo Gráfico de Pareto:
Esse conceito de criar novas colunas para ordenar pode ser aplicado de outras formas, use sua imaginação.
Grande abraço e até a próxima.
Parabéns Rafael! Sua dica me ajudou bastante. Vlw!
ResponderExcluirMuito bom, obrigado Rafael, foram 2 semanas de pesquisa, tive que adaptar minha ETL pois minha dimensão era virtual ai não conseguia colocar o Indice, mais após fazer ela virar uma "Tabela física" consegui aplicar com facilidade sua técnica.
ResponderExcluirQueria saber como posso fazer para congelar colunas nas tabelas assim como o excell fazes em congelar painéis, pois tenho um acompanhamento diário, onde cada coluna é um dia do mês, então quando vou olhar o total no final da coluna, a primeira coluna com o nome dos vendedores some. Se eu for para a matriz, a mesma não permite ranking de vendedores.
ResponderExcluirkkkkk, divertido seus textos...kkkkk...Ótimas dicas! Já te sigo no youtube . Obrigada!
ResponderExcluirRafael,
ResponderExcluirBoa noite!
Tudo bem?
Me ajudou muito com esta explicação, para eliminar os repetidos no Rank, obrigado.
Mas tenho uma dúvida... é possível obter o mesmo resultado, sem criar uma coluna física de índice? Apenas usando medida DAX.
Juro que tentei de todas as formas, mas não obtive sucessso, estou curioso em saber se é possível.
Este comentário foi removido pelo autor.
ResponderExcluirSensacional! Muito obrigado por compartilhar. Valeu!
ResponderExcluirMeu Rank ficou correto, mas o resultado das minhas vendas no acumulado se repete.
ResponderExcluir