Ir para conteúdo
  • 0

Rankx dinâmico


Diogo
Ir para solução Solucionado por Nelson Kobayashi ,

Pergunta

  • Alunos

Boa tarde a todos,
Quando faço um ranking dinâmico com rankx, não consigo que o resultado seja apenas a coluna ranking dos itens filtrados, ou seja, sempre me retorna todos os valores da tabela, ao invés de apenas os "x" valores filtrados. Podemos ter como referência a aula "Ranking com rankx e topn" da pasta "Bonus 1.2". 

O objetivo é que no exemplo da foto abaixo, a coluna ranking retorne apenas 5 valores e não todo o ranking

RankN = rankx(

                  all( tabela),

                  totalvendas).

Alguém consegue ajudar?

De novo, para ficar mais claro, a referência é a aula indicada acima.

image.png.c05716c38edd0e74b46d2bea755a251b.png

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Ah, vale um lembrete importante em se tratando de Ranking e TOPN:

Quando há um empate entre os ranqueados, acontece algo que parece um erro, mas é normal.

Vamos supor nesse exemplo abaixo que houve um empate de vendas entre três lojas no segundo lugar, veja como ficou a tabela :

image.png.180293e4c53438ef940b1d6a287d407a.png

Repare que mesmo filtrando TopN = 3 , a tabela apresenta quatro lojas...

Isso acontece porque o Power BI não tem como decidir dentre as lojas que empataram com 12 vendas qual deveria permanecer e qual deveria sair fora da lista ... Então ele traz todos os que empataram em segundo e acaba ficando quatro lojas.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá, @Diogo!

Olá Diogo

Acredito que a questão aqui é o contexto...

O Filtro na coluna Top 5 Clientes v1 está certo, porque só traz valores para os 5 maiores.

Entretanto, as outras colunas da tabela não estão sendo filtradas.

Neste caso há três soluções:

1. ) Fazer um filtro TOPN para cada contexto (coluna dessa tabela) ;

2. ) Fazer um filtro IF para cada contexto (coluna dessa tabela), do tipo : SE [Total Vendas Top 5  Clientes v1] = BLANK() , retorne BLANK, senão retorne o valor do contexto (coluna dessa tabela) ;

3. ) O mais fácil: Usar o filtro lateral para filtrar TOPN do visual, o filtro de TOPN fica aqui:

image.png.16fc7a97717790d5eccc3e23d4c73c72.png

 

É isso aí ! 

Espero ter ajudado.

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Diogo disse:

RankN = rankx(

                  all( tabela),

                  totalvendas)

@Diogo, aqui nessa coluna, para aparecer somente até o 5º colocado, seria :

ATE O QUINTO = 

VAR vCALC = 

RankN = rankx(

                  all( tabela),

                  totalvendas)

RETURN

IF(vCALC<6,vCALC,BLANK())

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Nelson e Bruno,

Primeiramente obrigado pelos comentários.

Envio em anexo um arquivo teste para análise. O objetivo é quando mudamos no "slicer" o numero de clientes que pretendemos analisar (correspondente ao ranking), a coluna "ranking" também filtre, assim como acontece nas duas colunas de vendas (mesmo resultado entre as duas colunas mas apenas como maneiras diferentes de calcular).

Ranking.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 20/07/2021 em 18:45, Diogo disse:

Nelson e Bruno,

Primeiramente obrigado pelos comentários.

Envio em anexo um arquivo teste para análise. O objetivo é quando mudamos no "slicer" o numero de clientes que pretendemos analisar (correspondente ao ranking), a coluna "ranking" também filtre, assim como acontece nas duas colunas de vendas (mesmo resultado entre as duas colunas mas apenas como maneiras diferentes de calcular).

Ranking.pbix 20 kB · 1 download

Olá @Diogo!

Segue o arquivo com algumas alterações que fiz para resultar do jeito que você pediu.

Não tenho certeza se fiz do jeito mais elegante e performático, mas parece que resolveu bem.

Primeiro, fiz uma correção na MEDIDA [TopN Clientes], ela estava gerando uma lista de 0 a 10 de forma não dinâmica, agora ela faz uma lista dinâmica conforme a quantidade de clientes.

image.png.00dca03e9762932ea957ff2afb9d4125.png

 

Na coluna de Ranking (coluna 2 da tabela) ela não filtrava os valores de ranking conforme o filtro slicer porque não tinha um relacionamento desses valores com o filtro, então resolvi usando uma função IF que retorna BLANK quando não há valores de [VendasN v2] :

image.png.e37353290778c55a0513b5ff33f10e13.png

 

Aparentemente deu certo. Faça os testes aí e veja se ficou bom.

Esse truque da função IF não funcionou na outra MEDIDA de VendasN, deve ter alguma relação com a forma como foi calculada a MEDIDA [TopN Clientes Value].]

image.png.1ad9183b8df0a00961b97c776249b605.png

 

É isso aí!

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...