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: 
nsjaime
Contributor
Contributor

If dependendo do filtro

Pessoal, preciso fazer um campo que se alguma loja for filtrada ele tras o valor da loja, mas se todas as lojas forem selecionadas no filtro, ele apresente o valor de 422, pensei no if, mas como colocar no if essa condição?

9 Replies
nicolett_yuri

Fiquei com uma dúvida, todas as lojas são as 422 ou não?

nsjaime
Contributor
Contributor
Author

Não, cada loja possui um valor médio de liberação de crédito inicial. Mas se todas as lojas forem selecionadas, o valor deve ser 422, não é uma média comum, é um cálculo feito pela empresa parceira que leva em contas diversos fatores, por isso não posso calcular. Preciso trazer a média entre as lojas selecionadas (com exceção se todas forem selecionadas), aí seria os 422 que comentei.

nicolett_yuri

Ficaria inviável fazer um IF com essas 422 lojas, acho que seria interessante ter um campo no seu modelo de dados indicando quais são essas lojas através de um flag (0 ou 1).

Desta maneira a regra pode ser bem mais simples de se aplicar, seja em medidas ou dimensões

nsjaime
Contributor
Contributor
Author

Olá, entao na verdade são 37 lojas. Esse valor é o valor médio em reais liberado em cada loja.

Eu precisaria que no campo trouxesse a média dos valores de cada loja que se fosse todas as lojas selecionadas no filtro daria 436 reais. Mas tem esse detalhe, ele deve trazer a média se não forem todas as lojas. Caso seja todas as lojas selecionadas no filtro, deverá trazer o valor fixo de 422 reais. Obrigado

nicolett_yuri

Forneça mais informações de seus dados, assim podemos trabalhar com um exemplo.

Sinceramente ainda não consegui entender o cálculo que deseja fazer.

nsjaime
Contributor
Contributor
Author

Desculpe a demora, mas já agradeço pela ajuda.

Vamos lá, vou tentar exemplificar melhor.

Por exemplo tenho 3 lojas: 

Loja 1 valor médio liberado de crédito é R$ 400
Loja 2 valor médio liberado de crédito é R$ 450
Loja 3 valor médio liberado de crédito é R$ 440

Se eu selecionar no filtro a Loja 1 e Loja 2 ele traria a média R$ 425, se eu selecionar no filtro a Loja 1 e Loja 3 ele também traria a média que seria R$ 420, a mesma coisa se eu  selecionar no filtro Loja 2 e Loja 3 que traria a média que seria a média R$ 445. Mas se eu selecionar todas no filtro ou seja Loja 1, 2 e 3 ele deve trazer obrigatoriamente o valor de R$ 422 sempre e não a média de R$ 430 como seria o normal.

 

nicolett_yuri

OK, consegui entender, apesar de achar meio estranho ter um número fixo no seu código.

 

Bom, para saber se todos os valores do campo LOJA foram selecionados: Existem duas situações

  1. se o usuário não selecionar nada
  2. se o usuário selecionar todas as lojas.

 

Para saber se o usuário não selecionou nada, é mais fácil, basta utilizar a função GetSelectecCount(NOME_DO_CAMPO_LOJA)=0

Para saber se o usuário selecionou todas as lojas, então vamos ter que fazer uma operação para descobrir a quantidade de lojas da sua base:

Count({1} DISTINCT NOME_DO_CAMPO_LOJA)

 

Agora a operação fica mais simples:

if( GetSelectedCount(NOME_DO_CAMPO_LOJA) = Count({1} DISTINCT NOME_DO_CAMPO_LOJA) OR GetSelectedCount(NOME_DO_CAMPO_LOJA)=0, 422, AVG(VALOR))

 

Estou anexando um QVF para você ver o exemplo

nsjaime
Contributor
Contributor
Author

Muito obrigado amigo, irei fazer o teste aqui.