Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
AndreFrencl
Contributor III
Contributor III

Ranking dos Piores Resultados

Boa tarde, amigos.

Preciso desenvolver uma tabela da qual me mostra o ranking das piores quedas por industria.

exemplo:

TOP 10 - Melhores

Industria

A    | 100.000

B    |  90.000

C   |  70.000

D  .....

E

F

....

TOP 10 - Piores

Industria

G    | - 100.000

H    |  - 90.000

I      | - 70.000

J  .....

L

M

....

Tem um universo de 200 industrias.

Esse valor é o resultado de uma conta comparando vendas2016 - vendas2017 (igual crescimento, mas em valores).

Usando a função agg(rank), a primeira tabela funciona perfeito. Inclusive totalizando corretamente. Porém, para rankear os piores, já não funciona. SE deixo a função pura, ele mostra os melhores resultados. Se deixo a funçao ranking com -, aparece uma lista nada a ver.

Alguem sabe como resolver:

a formula é essa:

=

sum({<Year={$(vMaxYear)},MonthNR={'<$(vMesLoop)'}>}VB)

-

sum({<Year={$(vMidYear)},MonthNR={'<$(vMesLoop)'}>}VB)

no ranking que funciona, está assim (ranking das melhores vendas em 2017:

=If(Aggr(Rank(Sum({<Year={$(vMaxYear)},MonthNR={'<$(vMesLoop)'}>}VB)), GMR)<=16, GMR, Null())

e nos piores? como fazer?

abs e obrigado desde já!

André

Labels (3)
1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, tente assim;

=If(Aggr(Rank(

  -(

  sum({<Year={$(vMaxYear)},MonthNR={'<$(vMesLoop)'}>}VB) //mês atual

  -

  sum({<Year={$(vMidYear)},MonthNR={'<$(vMesLoop)'}>}VB) //mês anterior

  )

), GMR)<=16, GMR, Null())

Vejo que "R$ PERDA" neste caso é o resultado de 2017 - 2016

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

6 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Para os piores:

=If(Aggr(Rank(-Sum({<Year={$(vMaxYear)},MonthNR={'<$(vMesLoop)'}>}VB)), GMR)<=16, GMR, Null())
Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
AndreFrencl
Contributor III
Contributor III
Author

Olá, Mario.

Já tentei esse -SUM. Nao adianta. Ele simplesmente exibe os 10 ultimos da lista e que nao tem nada a ver com os piores. O que preciso é que pegue os 10 piores resultados e exibe como rank. Veja a figura abaixo.

A primeira tabela exibe correto, que é o ranking das vendas 2017.

A outra tabela, não. Preciso que seja exibido por ordem de piores "R$ PERDA".

ranking.jpg

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, tente assim;

=If(Aggr(Rank(

  -(

  sum({<Year={$(vMaxYear)},MonthNR={'<$(vMesLoop)'}>}VB) //mês atual

  -

  sum({<Year={$(vMidYear)},MonthNR={'<$(vMesLoop)'}>}VB) //mês anterior

  )

), GMR)<=16, GMR, Null())

Vejo que "R$ PERDA" neste caso é o resultado de 2017 - 2016

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
AndreFrencl
Contributor III
Contributor III
Author

Amigão, deu certo! Pior que fiz isso umas 5x e nada! Acho que pus o no lugar errado.

Enfim, deu certo esse código. Muito obrigado pela ajuda!

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Que bom amigo, grande abraço

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mauroponte
Creator II
Creator II

Andre,

Estou anexando um QVW exemplo. Nele coloquei um grafico e uma planilha com todos os valores por empresa.

Coloquei tambem uma planilha e um grafico com os 10 piores. Veja se seria esse ranking que voce deseja.

Caso seja o que fiz foi utilizar as propriedade de limitadores de valores e classificação do gráfico e da planilha do Ranking como mostra as imagens abaixo. As expressões sao simples, utilizei os proprios recursos dos objetos.

Sugiro desmarcar o parametro Mostrar outros em Opções como está destacado na imagem abaixo.

Espero que te ajude.

ranking.png

ranking2.png