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

[Qlikview] Agregar expressões

Bom dia,

Criei a seguinte expressão:

No.Itens

if([Meta (t)] > 0,

  if([Real. (t) ] / [Obj. (t)] > 1,1,0))

Tive esse resultado:

2.PNG

Até aqui está correto.

(Familia prod e produto são grupos/filtros)

-------------------------------------------------------------------------------

Quando eu selecionar no grupo Familia prod e ele agrupar, que ele consolide também o No. Itens, no exemplo, se selecionado FAMILIA X para as duas primeiras colunas (grupos) a expressão No. Itens deve retornar 3 em uma unica linha

Resultado esperado:

1.PNG

Resultado obtido (errado):

3.PNG

Já me falaram do aggr(), mas preciso de um help sobre isso.

Obrigado

1 Solution

Accepted Solutions
Not applicable
Author

Boa tarde a todos,

A solução foi a seguinte:

sum(

  Aggr(

  if(sum(MTA_QTD_ORIGEM)/1000 > 0,

  if(

  ((sum({$<NAT_GRUPO={'Venda'}, TKT_TIPO={'Faturamento'}>}      TKT_QTD_VENDA) + (sum({$<TKT_TIPO={'Devolucao 1'} >}   TKT_QTD_VENDA)) + (sum({$<TKT_TIPO={'Devolucao 2'} >}   TKT_QTD_VENDA)))

  /

  ((sum(MTA_QTD_ORIGEM)/(var_dias_uteis_no_mes)) * (var_dias_uteis_ate_hoje))

)

> 1,1,0),0), PRD_CODIGO))

Agora quando seleciona a familia, ele consolida de acordo.

cleveranjos

A sua ideia ajudou e quase deu certo. Só removi as vezes que tava dividido por 1000.

Obrigado a todos

View solution in original post

12 Replies
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Rodrigo.

Tente fazer Column(2)/Column(3) ao invés de [Real. (t) ] / [Obj. (t)].

Pois você não está usando nem soma, nem média, nem count... e ele fará na memória direto e não nas linhas do objeto.

Acredito que o IF correto é assim:

if(Column(1) > 0,

  if(Column(2) / Column(3) > 1,1,0))

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Boa Aderlan....

Agora tenho que pensar no resto...rsss

Obrigado

aderlanrm
Partner - Specialist
Partner - Specialist

Legal Rodrigo, só lembre de marcar como resposta correta.

Valeu, abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Mas isso ainda não resolve meu problema Aderlan.

Abraço

mauroponte
Creator II
Creator II

Tadeu,

Se voce estiver utilizando o qlikview eu acredito que um ajuste no parametro de totais da expressão resolva seu problema. Repare as figuras abaixo a diferença nos totais mudando o parametro. Acredito que atende.

1-Utilizando o Default do parametro.:

somalihas1.png

2-Parametro ajsutado:

somalihas.png

Espero que ter ajudado.

aderlanrm
Partner - Specialist
Partner - Specialist

Mas foi útil? Marque como útil!

E se o seu problema é diferente, abra outra questão e diga qual é o seu problema, pois esse, você mesmo escreveu:

Boa Aderlan....

Agora tenho que pensar no resto...rsss

Por isso entendi que está resolvido.

Mas fique tranquilo.. boa sorte ai.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Mauro,

Minha expressão já estava setado para SOMA de linhas....Obrigado pela resposta.

Quem pode ajudar?

Not applicable
Author

A ideia é como no exemplo que montei no excel abaixo:

Capturar.JPG

PS: Familia Prod X tem 6 produtos, sendo que três deles é 1 conforme primeira tabela. Quando seleciono a Familia X (sabendo que ele tem 3 produtos com 1), quero que ele consolide todos produtos que pertençam a essa familia, e no caso retorne 3.

Clever_Anjos
Employee
Employee

Rodrigo, com você está no nível de Família e precisa contar os produtos que bateram a meta, faça assim:

Sum(

      Aggr(

          if([Meta (t)] > 0,if([Real. (t) ] / [Obj. (t)] > 1,1,0),0),

      Produto)

)

O que está sublinhado você precisa mudar para sua expressão original, não pode referenciar a coluna, pois ela nesse objeto de baixo agrupa por família