Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
flaviosouzaed
New Contributor III

Funções desconsiderando set analisys

Olá,

Já passei por algumas situações onde ocorre algo com o QlikView que não faz muito sentido pra mim, esse é mais um caso onde eu não entendo o funcionamento dos filtro que o QlikView aplica.

1.png

Tenho a tabela acima, o objetivo é que clicando em Realizado na caixinha abaixo da tabela a pessoa veja o que vendeu nos meses, clicando em objetivo ela tem o histórico das metas, como é um histórico eu desconsidero o ano e o mês que a pessoa seleciona em um filtro do painel assim a tabela mostra todos os anos que eu quero apresentar no histórico.

O problema esta ocorrendo na expressão que alterna entre o objetivo e o realizado, as formulas que eu uso são essas:

Tenho uma variável chamada eVolumeMensal que retorna o realizado do mês:

"

(
Sum({$<[Mes Contabil] ={$1},Ano =,[Tri. Contabil] =, Mes =, [Tipo Revisao]=>} Pick(ID_Tipo_Resultado, FaturamentoVolume, FaturamentoVolumeKE, FaturamentoLiquido))
+
Sum({$<[Mes Contabil] ={$1},Ano =,[Tri. Contabil] =, Mes =, [Tipo Revisao]=>} Pick(ID_Tipo_Resultado, PedidoVolume, PedidoVolumeKE, PedidoFaturamentoLiquido))
)
"

e outra variavel chamada  vVolumeObjetivoMensal que calcula o objetivo:

(
Sum({$<[Mes Contabil] ={$1},Ano =,[Tri. Contabil] =, Mes =>} Pick(ID_Tipo_Resultado, ObjetivoVolume, ObjetivoVolumeKE, ObjetivoFaturamentoLiquido))
)

Na tabela se eu usar por exemplo a seguinte variável: $(eVolumeMensal(3)) o resultado que aparece na tabela é o que esta no mês Nov, todos os valores aparecem corretamente em todos os anos.

Agora se eu usar a formula Pick(ID_Tipo_Historico, $(eVolumeMensal(2)), $(vVolumeObjetivoMensal(2))) o valor retornado é o que esta no mês Out, algo esta desconsiderando o set analisys e somente o resultado do ano que esta filtrado aparece corretamente, os outros anos aparecem zerados, isso não faz sentido pra mim, eu achei que a função pick somente iria retornar a variável e o calculo seria feito corretamente.

Tentei resolver o problema com a formula abaixo:

Only({1}
Aggr(Pick(ID_Tipo_Historico, $(eVolumeMensal(1)), $(vVolumeObjetivoMensal(1))),Ano)
)

O resultado é do mês Set que também esta errado, eu achei que colocando uma formula com um set analisys que desconsidera todas as dimensões iria resolver o problema mas não deu certo.

alguém consegue ver algum sentido no que esta acontecendo?

Tags (1)
1 Solution

Accepted Solutions
flaviosouzaed
New Contributor III

Re: Funções desconsiderando set analisys

Consegui resolver fazendo isso aqui:

$(=Pick(ID_Tipo_Historico, '$(eVolumeMensal(1))', '$(vVolumeObjetivoMensal(1))'))

Pelo que eu entendi ele retorna a String da formula e recalcula depois do Pick, deu certo, não faz muito sentido mas deu certo.

Obrigado.

3 Replies
MVP
MVP

Re: Funções desconsiderando set analisys

Flavio,

por não usa a condicional da expressão?

Quem sabe testar sem o uso da variável, pois dependendo da forma como chama e das dimensões pode retornar um valor não esperado......

2016-11-22 19_42_56-Configurações.png

2016-11-22 19_43_01-QlikView x64 - [C__tmp_Meta e Real.qvw_].png

2016-11-22 19_43_11-Propriedades do Gráfico [Meta].png

flaviosouzaed
New Contributor III

Re: Funções desconsiderando set analisys

Alessandro,

eu tinha pensado em fazer de alguma outra forma, tinha pensado em criar outra tabela e ela ocultar ou aparecer de acordo com o filtro, mas o que gostaria mesmo é entender o porque isso acontece, vira e meche eu me deparo com uma situação que eu não entendo o que o QV está filtrando, fica muito difícil as vezes entender o que esta acontecendo já que não tem como debugar isso, o resultado aparece na tela e não tem como analisar internamente o porque.

Não faz sentido nenhum pra mim esse caso porque a formula funciona perfeitamente sem o pick mas com o pick acontece isso, o pick não deveria só retornar o que esta no array dele?

flaviosouzaed
New Contributor III

Re: Funções desconsiderando set analisys

Consegui resolver fazendo isso aqui:

$(=Pick(ID_Tipo_Historico, '$(eVolumeMensal(1))', '$(vVolumeObjetivoMensal(1))'))

Pelo que eu entendi ele retorna a String da formula e recalcula depois do Pick, deu certo, não faz muito sentido mas deu certo.

Obrigado.