Forum Discussion

phaum1967's avatar
phaum1967
Resolver I
5 years ago
Solved

Add a column for balance differences between two sequential periods.

Hi, this is my existing table, which aggregate excel files for each months. Excel files are cumulative data so I would like to have diffrence between two periods (last period).

 I think it should be possible in langage m, I should order my table on Account and date but how can add a column which will do this:

if account row before is same value as actual row then calculalte row[Amount] - row before[Amount]

thanks

 

  • I find a solution with creating an index column and merge with my table with herself.

    I find this to help me 

    https://exceltown.com/en/tutorials/power-bi/powerbi-com-and-power-bi-desktop/power-bi-data-sources/power-query-get-value-from-previous-row/

     

    My code:

    #"Lignes filtrées" = Table.SelectRows(#"Lignes triées", each ([Account] <> null)), #"Index ajouté" = Table.AddIndexColumn(#"Lignes filtrées", "Index", 1, 1, Int64.Type), #"Addition insérée" = Table.AddColumn(#"Index ajouté", "Addition", each [Index] + 1, type number), #"Requêtes fusionnées1" = Table.NestedJoin(#"Addition insérée", {"Index"}, #"Addition insérée", {"Addition"}, "Addition insérée", JoinKind.LeftOuter), #"Addition insérée développé" = Table.ExpandTableColumn(#"Requêtes fusionnées1", "Addition insérée", {"Account", "Amount"}, {"Addition insérée.Account", "Addition insérée.Amount"}), #"Colonnes supprimées" = Table.RemoveColumns(#"Addition insérée développé",{"Index", "Addition"}), #"Personnalisée ajoutée" = Table.AddColumn(#"Colonnes supprimées", "Variation", each if [Addition insérée.Account] <> null

2 Replies

  • I find a solution with creating an index column and merge with my table with herself.

    I find this to help me 

    https://exceltown.com/en/tutorials/power-bi/powerbi-com-and-power-bi-desktop/power-bi-data-sources/power-query-get-value-from-previous-row/

     

    My code:

    #"Lignes filtrées" = Table.SelectRows(#"Lignes triées", each ([Account] <> null)), #"Index ajouté" = Table.AddIndexColumn(#"Lignes filtrées", "Index", 1, 1, Int64.Type), #"Addition insérée" = Table.AddColumn(#"Index ajouté", "Addition", each [Index] + 1, type number), #"Requêtes fusionnées1" = Table.NestedJoin(#"Addition insérée", {"Index"}, #"Addition insérée", {"Addition"}, "Addition insérée", JoinKind.LeftOuter), #"Addition insérée développé" = Table.ExpandTableColumn(#"Requêtes fusionnées1", "Addition insérée", {"Account", "Amount"}, {"Addition insérée.Account", "Addition insérée.Amount"}), #"Colonnes supprimées" = Table.RemoveColumns(#"Addition insérée développé",{"Index", "Addition"}), #"Personnalisée ajoutée" = Table.AddColumn(#"Colonnes supprimées", "Variation", each if [Addition insérée.Account] <> null