Pular para o conteúdo principal

Power BI - NÃO EDITE seus Modelos do Power BI na Nuvem.

Power BI - Criando Ranking sem Repetições


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

Rank =
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.


Comentários

  1. Parabéns Rafael! Sua dica me ajudou bastante. Vlw!

    ResponderExcluir
  2. Muito 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.

    ResponderExcluir
  3. Queria 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.

    ResponderExcluir
  4. kkkkk, divertido seus textos...kkkkk...Ótimas dicas! Já te sigo no youtube . Obrigada!

    ResponderExcluir
  5. Rafael,
    Boa 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.

    ResponderExcluir
  6. Este comentário foi removido pelo autor.

    ResponderExcluir
  7. Sensacional! Muito obrigado por compartilhar. Valeu!

    ResponderExcluir
  8. Meu Rank ficou correto, mas o resultado das minhas vendas no acumulado se repete.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

[Power BI] O totalizador da minha Tabela ou Matriz "NÃO BATE" e agora?

Olá amantes de visuais de tabela e matriz no Power BI, tudo bem? Hoje vamos falar de um caso que vejo bastante nos grupos do Power BI. “O calculo na linha está batendo mas no total não e agora?” Mas antes de iniciarmos, que tal deixar aquela sua inscrição marota no meu canal no youtube que está recheado de vídeos legais, vai lá seu pão duro de like youtube.com/rafaelmendonca Agora que você já aliviou sua pão-durice você merece conteúdo .... kkkkkkkk Vamos lá, temos então a seguinte tabela gerada no meu conjunto de dados Essa tabela possui uma lista de vendas realizadas por dois vendedores com o numero da ordem da venda, um valor unitário e uma quantidade de itens em cada venda. O que queremos é bem simples meu jovem, calcular o valor total de cada venda e ter um total de todas as vendas... Aí você muito garotão usa a seguinte expressão DAX: E depois joga isso numa tabela. Lindo neh??? Mas o totalizador trouxe um valor que não tem...

[Power BI] Transformando Latitude e Longitude de Graus para Decimal

Olá amiguinhos que adoram mapas nos seus paineis tudo bem? Hoje bate papo rapidão sobre uma dúvida de uma colega no nosso grupo do telegram, e se você não está nele pode ir agora tirar duvida com um grupo de quase 1700 pessoas e super ativo. https://t.me/planilheiros Bem, a dúvida dela era bem simples e já tinha visto outra vez alguém perguntando em outro grupo mas estava na correria e não pude ajudar, isso acontece infelizmente bastante. Ela tem dados de latitude e longitude em Grau e gostaria de passar isso para DECIMAL para poder utilizar nos visuais de Mapa do Power BI. A dúvida é bem legal e precisa entender um pouco a lógica matemática de transformar Grau para Decimal e ela é bem simples. Quando um dado em Grau, temos 3 informações: - Grau - Minutos - Segundos. Grau é o valor inteiro e ele por si só já me da o dado do meu inteiro do Decimal. Minuto é isso mesmo Minuto, para eu chegar num valor decimal de minutos eu preciso dividir ele por 60. Segundo seg...

Como usar o Web.Contents do Power Query: guia completo

Como usar o Web.Contents do Power Query para acessar dados online O Power Query é uma ferramenta poderosa para obter, transformar e analisar dados de diferentes fontes. Uma dessas fontes é a web, que contém uma grande variedade de dados online que podem ser úteis para os seus projetos. Para acessar dados online a partir de uma URL, você pode usar a função Web.Contents do Power Query. Essa função retorna o conteúdo binário baixado da URL especificada e permite que você use opções adicionais para personalizar a sua consulta. Neste artigo, vamos mostrar como usar o Web.Contents para obter dados de diferentes tipos de arquivos online, como CSV, Excel ou JSON. Também vamos discutir as vantagens e desvantagens dessa função em comparação com outras funções do Power Query. O que é o Web.Contents? O Web.Contents é uma função do Power Query que permite acessar dados online a partir de uma URL. Você pode usar essa função para obter dados de diferentes fontes da web, como arquivos CSV, Excel, JSON...