Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

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?

Labels (2)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

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.

View solution in original post

3 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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

furtado@farolbi.com.br
Anonymous
Not applicable
Author

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?

Anonymous
Not applicable
Author

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.