10 Replies Latest reply: Aug 9, 2018 9:57 AM by Ernesto Alves RSS

    Balancete, Saldo anterior

    Ernesto Alves

      Bom dia,

       

      Alguém pode me ajudar e me dar uma ideia de como calcular a última coluna da tabela abaixo, SALDOMÊS ?

       

      Já tentei com Aggr, rangesum, peek, etc, mas ainda não achei uma forma correta.

           

      CODIGOEMPRESACODIGOESTABCONTACTBDATASALDOVALORDEBVALORCREDSALDOMÊS
      5991112017-12-018997490899749,00
      5991112018-01-011930832,22830571,1910,00
      5991112018-02-011159772,51133074,4726708,00
      5991112018-03-011881628,21908326,2410,00
      5991112018-04-01767886,44741104,2426792,20
      5991112018-05-01772650,66799432,8610,00
      5991112018-06-01967849,2967849,210,00

       

      Desde já agradeço pela atenção.

        • Re: Balancete, Saldo anterior
          Mario Centeno

          Try

           

          =([VALORDEB]-[VALORCRED])

            • Re: Balancete, Saldo anterior
              Ernesto Alves

              SALDOMÊS = SALDOMÊS_ANTERIOR-(VALORDEB-VALORCRED)

                • Re: Balancete, Saldo anterior
                  Mario Centeno

                  Try

                   

                  let vMaxDate  = '=max(DATASALDO)'& chr(39) & 'DD MMM YYYY' & chr(39) & ')';

                  let vMaxDay   = '=day(max(DATASALDO))';

                  let vMaxMonth  = '=month(max(DATASALDO))';

                  let vMaxYear  = '=max(Year)';

                  let vPriorMonth  = '=month(addmonths(max(DATASALDO),-1))';

                  let vPriorMonthYear = '=Year(addmonths(max(DATASALDO),-1))';

                  let vPriorYear  = '=vMaxYear-1';

                  let vPriorYearDate = '=date(addyears(max(DATASALDO),-1),' & chr(39) & 'DD MMM YYYY' & chr(39) & ')';

                   

                  [table]:

                  load

                  codigoemprea,

                  codigoestab,

                  Year([DATASALDO]) as Year,

                  Month(DATASALDO) as Month,

                  Day(DATASALDO) as Day,

                  Date(monthstart(DATASALDO), 'MM-YYYY') as MonthYear;

                  select * from table;

                   

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

                  SALDOMÊS_ANTERIOR = (SUM({<Year={'$(vPriorMonthYear)'},Month={'$(vPriorMonth)'},Day={'<=$(vMaxDay)'},Date=,MonthYear=>}SALDOMÊS)


                  SALDOMÊS = SUM({<Year={'$(vPriorMonthYear)'},Month={'$(vPriorMonth)'},Day={'<=$(vMaxDay)'},Date=,MonthYear=>}SALDOMÊS)


                  -


                  (VALORDEB-VALORCRED)


                  )

              • Re: Balancete, Saldo anterior
                Ernesto Alves

                Eu consegui resolver.

                Usando uma combinação de previous() e peek(), cheguei no resultado que esperava.

                    If(Previous(AutoNumberHash128(CODIGOEMPRESA,CODIGOESTAB,CONTACTB))=AutoNumberHash128(CODIGOEMPRESA,CODIGOESTAB,CONTACTB),

                    If(Peek(ContaSaldo,-2)=AutoNumberHash128(CODIGOEMPRESA,CODIGOESTAB,CONTACTB),

                                (Peek(SALDOCTBMES,-2)-Previous((VALORCRED-VALORDEB)))-(VALORCRED-VALORDEB), //

                                Previous((VALORDEB-VALORCRED))-(VALORCRED-VALORDEB)),

                (VALORDEB-VALORCRED)

                ) as SALDOCTBMES

                 

                Fica a dica para quem precisar de algo parecido.