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: 
edson_souza
Contributor III
Contributor III

Ordenar grupo cíclico.

Prezados, boa tarde.

Estou com um problema para ser resolvido e gostaria da ajuda de vocês. É a seguinte situação:

Tenho um gráfico de barras com expressão que soma as vendas de uma empresa cuja dimensão é um grupo cíclico (Estado; Cidade; Ano). Para classificação do grupo escolhi "Valor - Y (Descendente)". Porém, quando o a dimensão do grupo cíclico for o Ano, gostaria que fosse ordenado de forma numérica crescente.

Como faço isso?? Classificando por Expressão tem como??

Grato,

Edson de Souza.

11 Replies
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Edson,

É possivel sim atraves da classificação por expressão. Nesse caso é necessário desmarcar a opção de classifcar por valor-y.

Tenta fazer assim:

= If(getCurrentField(NomeDoGrupo)='Ano',Ano, Sum(Valor))

Infelizmente assim não tem como alterar a forma de classificação, ascendente ou descendente.

Outra forma de fazer isso é fazer a classificação do grupo conforme vc deseja. Assim vc pode colocar a expressão para cada campo do grupo de forma descendente e no caso do Ano colocar por número de forma ascendente.

Espero ter ajudado.

Abraços.

Tonial.

Don't Worry, be Qlik.
edson_souza
Contributor III
Contributor III
Author

Fernando, e se eu tiver um grupo de expressões?

Tipo 2 expressões agrupadas:

Sum(Valor)
Count(Vendas)

Como referenciá-las?

cesaraccardi
Specialist
Specialist

Olá Edson,

Se você tem um grupo de expressões e marcar a opção de classificação por Valor-Y, valerá para as 2 expressões quando estas forem alternadas. Se você quer diferenciar o critério entre essas expressões, pode definir como critério de classificação "Expressão" e tentar com uma expressão semelhante a essa:

if(Column(1) = 'Nome da Expressão 1', sum(Valor), Count(Vendas))

Não estou certo de que funcione mas acredito que você consiga referenciar usando a função Column e comparando com o nome da expressão.

Abraços,

Cesar

fernando_tonial
Partner - Specialist
Partner - Specialist

Realmente assim nunca fiz, pode tentar colocar na parte de classificar o número da coluna, mas pode ser que não funcione.

= If(getCurrentField(NomeDoGrupo)='Ano',Ano, Column(1)))

Caso não funcione você pode tentar com as condições de dimensão e expressão do QlikView 11, isso se você estiver utilizando essa versão.

Abraços.

Tonial.

Don't Worry, be Qlik.
edson_souza
Contributor III
Contributor III
Author

Beleza, Fernando e Cesar.

Porém, tenho mais uma dúvida.

Ao ordenar pela expressão eu escolho se vai ser "Ascendente" ou "Descendente". Nesse caso, eu gostaria de que quando ordenado por "Ano" for "Ascendente" e quando for pela expressão seja "Descendente".

Como isso funcionaria utilizando esses IF's??

Grato,

Edson de Souza.

cesaraccardi
Specialist
Specialist

É Edson, agora complicou... rs. Eu não sei se tem como alterar este critério de ordenação quando se utiliza expressões, você pode escolher Ascendente ou Descendente... Não sei se dá para alternar conforme a expressão.

cesaraccardi
Specialist
Specialist

Tenho uma sugestão... Você pode marcar como Ascendente e no caso do Descendente você teria que simular, supondo que você quer em ordem Ascendente para sum(Valor) e Descendente para Count(Vendas)... poderia ser algo assim:

= If(getCurrentField(NomeDoGrupo)='Ano',Ano, if(Column(1) = 'sum(Valor)', sum(Valor), Count(total Vendas)-Count(Vendas))))

Fazendo Count(total Vendas) - Count(Vendas), o menor valor se torna o maior e vice-versa.

fernando_tonial
Partner - Specialist
Partner - Specialist

Edson, você pode tentar pela classificação do Grupo.

Para acessar a classificação você deve editar o grupo e classificar conforme o desejado.

Configuração Grupo.png

E fazer a classificação conforme a tela abaixo:

Seguencia de Classificação Grupo.png

Assim você pode colocar o If nós campos pode grupo e no ano deixar de forma  numérica. como havia falado anteriormente.

Abraços.

Tonial.

Don't Worry, be Qlik.
edson_souza
Contributor III
Contributor III
Author

Cesar tentei fazer assim:

= If(getCurrentField([MeuGrupo])=Ano,(Ano)*(-1), Column(1))

Ai ele traria sempre o Ano menor primeiro, pois ele negativo é maior que os demais. Mas não fucionou.

E Fernando, tentei fazer isso ai tbm. Mas não tem a opção de Valor-Y e quando eu habilito nas propriedades do gráfico ele sobrepõe essa configuração feita no grupo.

Grato,

Edson de Souza.