3 Replies Latest reply: Oct 21, 2015 7:23 AM by victor fortunato RSS

    Calculando Período.

    victor fortunato

      Pessoas boas.

      Estou com um dificuldade que creio ser bem simples de resolver porém não consigo.

      Acontece o seguinte:

      Eu preciso calcular o mesmo período do ano passado para fazer uma comparação, visitando outros post localizei essa solução:


      'Ano atual completo até os dias atuais: '&

      chr(10)&chr(13)&

      'Inicio: '&

      Date(Min({1<dDATA = {"<=$(=Max(dDATA))>=$(=YearStart(Max(dDATA)))"}

          >} dDATA))

      &chr(10)&chr(13)&

      'Fim: ' &

      Date(Max({1<dDATA = {"<=$(=Max(dDATA))>=$(=YearStart(Max(dDATA)))"}

          >} dDATA))

      &chr(10)&chr(13)&

      'Ano anterior completo até os dias correspondentes aos dias atuais: '&

      chr(10)&chr(13)&

      'Inicio: '&

      Date(Min({1<dDATA = {"<=$(=AddYears(Max(dDATA), -1))>=$(=YearStart(AddYears(Max(dDATA), -1)))"}

          >} dDATA) )

      &chr(10)&chr(13)&

      'Fim: '&

      Date(Max({1<dDATA = {"<=$(=AddYears(Max(dDATA), -1))>=$(=YearStart(AddYears(Max(dDATA), -1)))"}

          >} dDATA) )

       

      Até aqui ok, ele me traz a datas necessária.

      O que eu não estou conseguindo fazer e dar um Sum vTOTAL dentro desse Período informado acima.

      Conseguem me ajudar?

      Obrigado

        • Re: Calculando Período.
          Adriana Stacanelli

          Victor,

           

          Já precisei calcular período anterior e usei a seguinte fórmula:

          SUM ({<DATA={">=$(=YearStart('01/' & MIN(NUM(Month(DATA)))&'/'&MAX(Year(DATA)-1))) <=$(=DATE(DAY(MAX(DATA))&'/' & MAX(NUM(Month(DATA)))&'/'&MAX(Year(DATA)-1)))"}>} VALOR)

           

          DATA: Campo de data que vou comparar. Ela deve ser maior/igual ao inicio do ano anterior e menor/igual à maior data porém do ao anterior.


          Caso queira verificar os intervalos que está sendo comparado, separe as parte em um Objeto de texto (A 1ª é a data inicial e a segunda é a data final):


          =YearStart('01/' & MIN(NUM(Month(DATA)))&'/'&MAX(Year(DATA)-1))


          =DATE(DAY(MAX(DATA))&'/' & MAX(NUM(Month(DATA)))&'/'&MAX(Year(DATA)-1))


          Veja se consegue encaixar essa fórmula na sua situação.


          • Re: Calculando Período.
            Yuri Nicolett

            Victor, você pode disponibilizar uma app de exemplo?

             

            Existem formas mais simples de realizar esse cálculo criando flags em suas tabelas ou então variáveis.

            • Re: Calculando Período.
              victor fortunato

              Eu consegui.

               

              Dei varias voltas mas consegui concluir.

              Yuri vc tem razão por variais e bem mas simples acabei fazendo dessa maneira;

               

              let vDTAnteriorInicio    = date('01/01/' &Year(AddYears(MonthStart(Today() -30), -1)),'DD/MM/YYYY');

              let vDTAnteriorFim       = AddYears(MonthEnd(Today() -30), -1);

              let vDTAnteriorINIMes    = AddYears(MonthStart(Today() -30), -1);

               

               

              let vDTFechadoInicio    =  date('01/01/' &Year(MonthStart(Today() -30)),'DD/MM/YYYY');

              let vDTFechadoFim       =  MonthEnd(Today() -30);

              let vDTFechadoINI       =  MonthStart(Today() -30);

               

              Essas são minhas variáveis.

              E meu calculo ficou assim.

              (Sum({<dDATA={">=$(vDTFechadoINI)<=$(vDTFechadoFim)"}, dMES=, dANO=>} vTOTAL)

               

              Sum({<dDATA={">=$(vDTAnteriorINIMes)<=$(vDTAnteriorFim)"}, dMES=, dANO=>} vTOTAL)

               

              Se alguém tiver alguma observação, fiquem a vontade.

              Obrigado.