Forum Discussion

pedrocampos's avatar
pedrocampos
New Member
6 years ago
Solved

Using previous row result

Hi

In this table presented below I have two columns, being: "Saldo_Inicial" and "Saldo_Final".

In the first row, the "Saldo_Final" column shows a value that was calculated from an initial value of 5000000 in the "Saldo_Inicial" column.
However, from the second line down I need the value shown in the "Saldo_Inicial" column to always be the calculated value in the "Saldo_Final" column of the previous line.

How do I do that?

  • Hi pedrocampos ,

     

    You can create a recursive function to calculate all the "saldo_final" until the previous row like:

    (_table as table, _saldo as number, _currentIndex as number, _index as number) as number =>
    let
        Saldo = _saldo + (_table{_index}[Valor] + _table{_index}[Saldo Inicial]),
        Return = 
        if _index < _currentIndex - 1 then @Query1(_table, Saldo, _currentIndex, _index + 1)
        else Saldo
    in 
        Return

    Be aware with the function name, it need to be called inside the function as well.

     

     

    Also, create a custom column to call the function.

  • Hello.

    THank you very much.

    Below, I post the solution that I wrote based on your post.

    (_table as table, _saldo as number, _currentIndex as number, _index as number, _index_anterior as number) as number =>
    let
    
    Saldo = (_saldo * (1+(_table{_index_anterior}[Indexador_valor])))-((_saldo * (1+(_table{_index_anterior}[Indexador_valor])))/(_table{_index_anterior}[N_Parcela])) + _table{_index}[Saldo_Partida],
    
    Return =
    if _index < _currentIndex - 1 then @Saldo_inicial(_table, Saldo, _currentIndex, _index + 1,_index)
    else Saldo
    in
    Return
    

     

3 Replies

  • camargos88's avatar
    camargos88
    Icon for Community Champion rankCommunity Champion

    Hi pedrocampos ,

     

    You can create a recursive function to calculate all the "saldo_final" until the previous row like:

    (_table as table, _saldo as number, _currentIndex as number, _index as number) as number =>
    let
        Saldo = _saldo + (_table{_index}[Valor] + _table{_index}[Saldo Inicial]),
        Return = 
        if _index < _currentIndex - 1 then @Query1(_table, Saldo, _currentIndex, _index + 1)
        else Saldo
    in 
        Return

    Be aware with the function name, it need to be called inside the function as well.

     

     

    Also, create a custom column to call the function.

    • pedrocampos's avatar
      pedrocampos
      New Member

      Hello.

      THank you very much.

      Below, I post the solution that I wrote based on your post.

      (_table as table, _saldo as number, _currentIndex as number, _index as number, _index_anterior as number) as number =>
      let
      
      Saldo = (_saldo * (1+(_table{_index_anterior}[Indexador_valor])))-((_saldo * (1+(_table{_index_anterior}[Indexador_valor])))/(_table{_index_anterior}[N_Parcela])) + _table{_index}[Saldo_Partida],
      
      Return =
      if _index < _currentIndex - 1 then @Saldo_inicial(_table, Saldo, _currentIndex, _index + 1,_index)
      else Saldo
      in
      Return
      

       

  • v-diye-msft's avatar
    v-diye-msft
    Icon for Community Support rankCommunity Support

    Hi pedrocampos 

     

    If you've fixed the issue on your own please kindly share your solution. if the above posts help, please kindly mark it as a solution to help others find it more quickly. If not, please kindly elaborate more. thanks!