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: 
Not applicable

Acumulado Qlikview

Bom dia,

Tenho uma tabela que calcula o acumulado e a outra que calcula o mensal, porém estou tendo um problema, acredito que seja na analise de conjunto ao calcular o acumulado.

-Na minha analise de conjunto considero apenas alguns campos (4 campos).

-Porém o usuário pode filtrar por mais 5 campos

-Quando na minha analise de conjunto eu coloco Sum({1< no inicio da expressão ele faz o calculo do acumulado correto, porém se o usuário filtra um dos 5 campos que não estão na analise de conjunto ele não reflete no acumulado.

-Quando coloco Sum({$< ele respeita a seleção do usuário ou seja se filtrar um dos 5 outros campos ele calcula correto, porém não acumula.

eu sei que Sum({1<  é igual a: Calcula a Soma baseado em todos os valores, ou seja, ignora todas as seleções (ou seja os outros 5 campos de filtro)

eu sei que Sum({$<  é igual a: Calcula a Soma das baseado nas seleções atuais

Minha duvida é, se faz sentido e como faz para eu incluir os outros 5 campos na analise de conjunto, por exemplo um dos outros filtros é unidade, se eu coloco Unidade={'*'} ou algo do tipo, para dizer que na conta de acumulado eu quero que ele respeite os filtros e acumule o que não acontece se eu coloco apenas Sum({$<

Labels (2)
1 Solution

Accepted Solutions
nicolett_yuri

Se você esta negando todas as seleções, através do prefixo 1 do set analysis, então você precisa reconsiderar os campos que deseja, seja utilizando uma variável ou passando a expressão.

Sum({1< CAMPO1 {"$(=CONCAT(DISTINCT CAMPO1,'","')) "} VENDAS)

ou então colocar a função do concat dentro de uma variável e utiliza-la.

Lembrando que você precisa fazer isso para todos os campos.

IMPORTANTE: Sempre analisar se a performance do cálculo ficou boa ou não.

View solution in original post

7 Replies
nicolett_yuri

Se você esta negando todas as seleções, através do prefixo 1 do set analysis, então você precisa reconsiderar os campos que deseja, seja utilizando uma variável ou passando a expressão.

Sum({1< CAMPO1 {"$(=CONCAT(DISTINCT CAMPO1,'","')) "} VENDAS)

ou então colocar a função do concat dentro de uma variável e utiliza-la.

Lembrando que você precisa fazer isso para todos os campos.

IMPORTANTE: Sempre analisar se a performance do cálculo ficou boa ou não.

thiago_mlg
Creator II
Creator II

Tente fazer assim,

Na expressão vc coloca SUM({$< Campo_que_vc_precisa_que_nao_respeite_os_filtros1 =, Campo_que_vc_precisa_que_nao_respeite_os_filtros2 =,

Campo_que_vc_precisa_que_nao_respeite_os_filtros3 =, Campo_que_vc_precisa_que_nao_respeite_os_filtros4 = >}Valor)

Ele vai desconsiderar os campos que vc precisa que acumule, dando o efeito de como vc estivesse utilizando o

sum({1< , porem vai considerar os outros filtros, que são os 5 campos que vc mencionou acima.

Abraços.

Not applicable
Author

yuri.nicolett

Muito obrigado, parece estar funcionando perfeitamente. muito obrigado.

nicolett_yuri

Legal

Not applicable
Author

Desculpa estar prolongado aqui, mas você pode me explicar o que e porque do Concat distinct?

e mais uma vez muito obrigado

nicolett_yuri

A função concat tem por objetivo concatenar todos os valores possíveis (de filtro) e o distinct serve para obter somente uma vez esse valor.

Exemplo do concat para um campo que possui os valores: de 1 até 5.

Com a expressão "=CONCAT(DISTINCT CAMPO1,'","'))" o resultado será '1','2','3','4','5'

dentro da sua expressão ficará da seguinte forma:

Sum({1< CAMPO1 = {'1','2','3','4','5'} VENDAS)

No caso da expressão, o que estamos fazendo:

  1. Você desconsidera todas as seleções utilizando o prefixo 1 do set analysis
  2. Você "passa por cima" da primeira regra e considera todos os possíveis valores distintos do campo X
Not applicable
Author

Entendi.

OBRIGADO