12 Replies Latest reply: Mar 25, 2017 3:31 PM by Rodrigo Tadeu RSS

    [Qlikview] Agregar expressões

    Rodrigo Tadeu

      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

        • Re: [Qlikview] Agregar expressões
          Aderlan Rodrigues

          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.

          • Re: [Qlikview] Agregar expressões
            mauro ponte

            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.

            • Re: [Qlikview] Agregar expressões
              Rodrigo Tadeu

              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.

              • Re: [Qlikview] Agregar expressões
                Clever Anjos

                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

                  • Re: [Qlikview] Agregar expressões
                    Rodrigo Tadeu

                    Clever,

                     

                    Não deu certo.

                     

                    [Meta(t)]

                     

                    sum(MTA_QTD_ORIGEM)

                    /

                    1000

                     

                    [Real(t)]

                     

                    (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)))

                    /

                    1000

                     

                    [Obj. (t)]

                     

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

                    /

                    1000

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

                     

                    Produto (expressão presente em um grupo cíclico)

                    PRD_CODIGO& '|' &PRD_DESCRICAO

                     

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

                     

                    No.Itens

                     

                    if([Meta (t)] > 0,

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

                      • Re: [Qlikview] Agregar expressões
                        Clever Anjos

                        Dificil sem uma base, mas tente com

                        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','Devolucao 2'} >}   TKT_QTD_VENDA))

                        )

                        /

                        1000

                        /

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

                        /

                        1000

                        > 1,1,0),0),

                              [campo da familia do produto],PRD_CODIGO)

                        )

                    • Re: [Qlikview] Agregar expressões
                      Rodrigo Tadeu

                      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