13 Replies Latest reply: Apr 12, 2018 7:48 AM by Rodrigo Hacke RSS

    Comparação de valores no período anual

    Rodrigo Hacke

      Bom dia,

       

           Estou tendo bastante dificuldades em separar uma comparação de valores dos anos listados em uma nova coluna chamada Comparado. Segue abaixo o print de como está o desenvolvimento até o momento, e o outro print mostrando como preciso finalizar.

       

      Atual

      Faturamento Comparado.JPG

       

      Necessidade

      Faturamento Comparado - Editado.JPG

       

      O problema é que não consigo separar os dois valores dos anos com a nova medida. Então será que no cálculo das dimensões de Valor Faturado e Qtde Faturado devo fazer uma sentença que liste primeiro os dois anos e em seguida o Comparado? E como fazer isso.

       

      Segue abaixo a Medidas:

       

      Valor Faturado:

      Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}

      ,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Vl_Mercadoria_NF)

          & '' &

      Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}

      ,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}>} Vl_Mercadoria_NF)

      Qtde Faturado:

      Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}

      ,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Qtde_FatUnit_NotaItem))

          & '' &

      Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}

      ,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}>} Qtde_FatUnit_NotaItem))

       

      Caso ajude essa informação tenho uma dimensão em Coluna que mudei o rótulo para Ano:

      Ano_Emissao_Nota

       

      E valor Linha que mudei o rótulo para UF:

      UF_Cliente

       

      Agradeço desde já qualquer ajuda.

       

      Att,

      Rodrigo

        • Re: Comparação de valores no período anual
          THIAGO TEIXEIRA

          Rodrigo, usando suas expressões eu faria assim:

           

          Comparativo Valor Faturado:

          Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Vl_Mercadoria_NF)

          /

          Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}

          >} Vl_Mercadoria_NF)

           

          Comparativo Qtde Faturado:

          Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Qtde_FatUnit_NotaItem))

          /

          Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}>} Qtde_FatUnit_NotaItem))

           

          Abs e Sucesso!!

          • Re: Comparação de valores no período anual
            Leonardo Contezini

            Rodrigo, uma solução viável é Pick().

             

            Passo 1) Cria uma dimensão no script, i.e. um vetor de 0 a 2. Digamos que você chame de Dim. Cada valor do vetor será um valor da dimensão, por exemplo:

             

            0 -> 2017

            1 -> 2018

            2 -> Comparativo

             

            Passo 2) Cria uma variável que pega o máximo ano. Digamos que você chame de vMax_Ano

             

            Passo 3) Na dimensão você coloca:

            =pick(Dim,

            vMax_Ano-1,

            vMax_Ano,

            'Comparativo')

             

            Passo 4) Então você cria 2 expressões, uma pra valor faturado e outra pra quantidade faturado. Dentro do pick na expressão, você vai colocar um set analysis com os anos. Exemplo:

             

            =pick(Dim,

             

            Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF),

             

            Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF),

             

            Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF)

            /

            Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF),

            )

             

            Não analisei exatamente suas expressões, mas fica algo deste jeito. Pode implementar que funciona.

              • Re: Comparação de valores no período anual
                Rodrigo Hacke

                Boa Tarde Leonardo,

                 

                  Analisando sua resposta estou tentando reproduzir ela. Segue abaixo minha percepção de execução dos passos descritos por você:

                 

                Passo 1) Script Carga

                Set vDim;

                 

                Passo 2)  Script Carga

                NotaFiscal:

                LOAD

                Data_Emissao_Nota,

                Ano_Emissao_Nota

                FROM [lib://Qvd - Homologação (mx_administrador)/Forum_NotaFiscal_M*.qvd](qvd);

                 

                 

                 

                vMax_Ano = Max(Ano_Emissao_Nota);

                vDT_Max_Ano = Max(Data_Emissao_Nota);

                 

                Passo 3) Dimensão da Coluna certo?

                =pick(vDim,

                          vMax_Ano-1,

                          vMax_Ano,

                          'Comparativo'

                          )

                 

                Passo 4) Criar as Medidas com o Set Analysis:

                =pick(vDim,

                Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF),

                Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF),

                Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF)

                /

                Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF)

                )

                 

                Após executar esses passos a tela ficou em branco sem nenhum resultado. Estaria correto a forma que executei?

                  • Re: Comparação de valores no período anual
                    Leonardo Contezini

                    Rodrigo, o Dim não vai ser uma variável, e sim uma dimensão mesmo. Coloque assim no script:

                     

                    Passo 1)

                    Dimensao:

                    LOAD

                        rowno() as Dim

                    AutoGenerate 3;

                    Passo 2)


                    NotaFiscal:

                    LOAD

                    Data_Emissao_Nota,

                    Ano_Emissao_Nota

                    FROM [lib://Qvd - Homologação (mx_administrador)/Forum_NotaFiscal_M*.qvd](qvd);

                     

                    SET vMax_Ano =

                              max(Ano_Emissao_Nota);

                     

                    Passo 3) Dimensão das 3 colunas (Ano Atual -1, Ano Atual, e Comparativo):


                    =pick(Dim,

                              vMax_Ano-1,

                              vMax_Ano,

                              'Comparativo'

                              )


                    Passo 4) Criar as medidas com set analysis. Como na posição 1 está o vMax_Ano -1, o set analysis das duas medidas deve ser o mesmo. Você vai criar uma medida para valor faturado e outra para qtd. faturado. Para valor faturado fica:


                    =pick(vDim,

                     

                    Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -1)'}>}Vl_Mercadoria_NF),  <--------- POSIÇÃO 1

                     

                    Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -0)'}>}Vl_Mercadoria_NF), <---------- POSIÇÃO 2

                     

                    Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -0)'}>}Vl_Mercadoria_NF)     

                    /                                                                                                                                  <---------- POSIÇÃO 3  

                    Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -1)'}>}Vl_Mercadoria_NF)     

                    )


                    obs: Na medida do comparativo (posição 3) eu só coloquei [Ano atual] / [Ano atual -1] como exemplo, depende de como é seu comparativo.

                • Re: Comparação de valores no período anual
                  THIAGO TEIXEIRA

                  Rodrigo,

                   

                  Segue minha sugestão para a resolução da questão.

                   

                  Expressões usadas:

                   

                  Valor Faturado:

                  Sum(Aggr(Sum(Vl_Mercadoria_NF),Ano_Emissao_Nota,UF_Cliente))


                  Qtde Faturada:

                  Sum(Aggr(Sum(Qtde_FatUnit_NotaItem),Ano_Emissao_Nota,UF_Cliente))


                  Comparativo Valor Faturado:

                  (Sum(Aggr(Sum(Vl_Mercadoria_NF),Ano_Emissao_Nota,UF_Cliente))/Before(total Sum(Aggr(Sum(Vl_Mercadoria_NF),Ano_Emissao_Nota,UF_Cliente))))-1


                  Comparativo Qtde Faturada:

                  (Sum(Aggr(Sum(Qtde_FatUnit_NotaItem),Ano_Emissao_Nota,UF_Cliente))/Before(total Sum(Aggr(Sum(Qtde_FatUnit_NotaItem),Ano_Emissao_Nota,UF_Cliente))))-1