4 Replies Latest reply: May 22, 2012 8:32 PM by Cesar Accardi RSS

    Variação Acumulada do Ano anterior

      Boa noite pessoal,

       

      Estou com uma dúvida:

       

      Sabendo que a variação é o Mês Atual - Mês anterior, como posso achar a variação acumulada do ano anterior?

       

      Obs.: Vale ressaltar que a variação de Janeiro/2012 (no caso) = Jan/2012 - Dez/2011

       

       

      Agradeço desde já qualquer ajuda!

        • Variação Acumulada do Ano anterior

          Olá amigo veja analise de conjunto no manual de referencia pag 380.

           

          Ex:

           

          Sum({$<Year={$(=Only(Year))}>}  Sales) - Sum({$<Year={$(=Only(Year)-1)}>}  Sales)

           

          abs,

           

          Marco

          • Variação Acumulada do Ano anterior

            A expressão que o Marco colocou funciona, mas retorna a variação do valor do mes em relação ao mesmo mes do ano anterior.

            Para retornar o mes anterior, considerando a questão do mes de janeiro, eu faria algo assim:

            if (num(Mes) > 1,

              sum(Valor) - sum({$<Mes = {$(=max(Mes)-1)}>}  Valor),

              sum(Valor) - sum({$<Mes = {12},Ano = {$(=max(Ano)-1)} >}  Valor),

            )

            Para isso funcionar, teria que ter um Ano e um Mes selecionado.

              • Variação Acumulada do Ano anterior

                Obrigado pela ajuda senhores.

                Pelo que vi das soluções, não houve acúmulo das variações.

                 

                Quero o acúmulo da variação de cada mês, exemplo:

                 

                Jan/2011 - Dez/2010 = Var Jan

                Fev/2011 - Jan/2011 = Var Fev

                Mar/2011 - Fev/2011 = Var Mar

                          .                              .

                          .                              .

                          .                              .


                Varicação Acumulada do Ano Anterior  = Var Jan+ Var Fev+ Var Mar+ ...

                 

                 

                Agradeço desde já.

                  • Variação Acumulada do Ano anterior
                    Cesar Accardi

                    Olá Edécio,

                     

                    Acredito que a minha sugestão não seja muito diferente das anteriores, até porque este problema é bem específico e recorrente... Eu sugiro que você utilize um campo no formato mês/ano, se não tiver você pode criá-lo à partir de um campo com data completa (DD/MM/YYYY) assim:

                     

                    Date(Data,'MMM/YYYY') as AnoMês

                    É interessante que este campo esteja formatado como data para facilitar os cálculos, assim você pode usar funções como "AddMonths" que já faria o cálculo do mês anterior a Jan/2012, por exemplo, sem que você precise verificar manualmente.


                    A expressão pode ser escrita de forma otimizada com o set analysis da seguinte maneira:


                    1-(sum({$<AnoMês={'$(=Only(AnoMês))'}>} Valor)/sum({$<AnoMês={'$(=AddMonths(Only(AnoMês),-1))'}>} Valor))


                    A expressão é formada de 2 elementos, o primeiro calcula o Valor do mês na dimensão AnoMês e o segundo calcula o Valor do mês anterior. Para esta lógica funcionar você precisa colocar o campo AnoMês na dimensão da tabela.


                    Abraços,
                    Cesar.