Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
CarlosOlmos29
Helper I
Helper I

Column accumulated by categories in power query

Hello power BI community.

I am trying to create an accumulated column in power query. In another post I found this formula to accumulate:

List.Sum(List.Range(#“Added Index”[Actual],0,[Index]))

This formula works when the list is continuous, that is, there is only one category of data, but I have several, so I need the accumulated to restart when changing categories. I appreciate if you can help me from the above formula or with a new one.

Thank you very much in advance for your support

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @CarlosOlmos29 

 

Here is a solution by using your formula. The logic is to group the table by category column and add an Index column to each group table first. Then add a column to each group table with your formula to get the running total within a group. Finally expand the group table column. 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSgQCJR0lQ6VYHfI4SUlJQLYR6exYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Category = _t, Actual = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Category", type text}, {"Actual", Int64.Type}}),
    
    // add the following steps
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Category"}, {{"GroupData", each let actualValues = _[Actual] in Table.AddColumn(Table.AddIndexColumn(_, "Index", 1, 1), "RunningTotal", each List.Sum(List.Range(actualValues,0,[Index])))}}),
    #"Expanded GroupData" = Table.ExpandTableColumn(#"Grouped Rows", "GroupData", {"Actual", "Index", "RunningTotal"}, {"Actual", "Index", "RunningTotal"})
in
    #"Expanded GroupData"

vjingzhanmsft_0-1714377616522.png

vjingzhanmsft_1-1714377945923.png

 

@PhilipTreacy 's blog link shares another solution. You can have a try!

 

Best Regards,
Jing
If this post helps, please Accept it as Solution to help other members find it. Appreciate your Kudos!

View solution in original post

4 REPLIES 4
SuperM1973
New Member

Hello, I´m trying to understand the sintaxe List.Sum(List.Range(#“Added Index”[Actual],0,[Index]))!

Could you please explain me why we put the parametr [Index]?

Thanks

 

 

Anonymous
Not applicable

[Index] is a column named "Index". You can create it with feature: Add an index column.

 

#“Added Index” is the step to add the "Index" column, also representing the table result after this step.

 

#“Added Index”[Actual] represents the [Actual] column from the #“Added Index” table. It is a list. 

 

List.Range extracts the list values from the first one to the [Index] one ( [Index] is the number of list items to be extracted ). 

 

List.Sum calculates the sum of extracted list values. 

 

Anonymous
Not applicable

Hi @CarlosOlmos29 

 

Here is a solution by using your formula. The logic is to group the table by category column and add an Index column to each group table first. Then add a column to each group table with your formula to get the running total within a group. Finally expand the group table column. 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSgQCJR0lQ6VYHfI4SUlJQLYR6exYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Category = _t, Actual = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Category", type text}, {"Actual", Int64.Type}}),
    
    // add the following steps
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Category"}, {{"GroupData", each let actualValues = _[Actual] in Table.AddColumn(Table.AddIndexColumn(_, "Index", 1, 1), "RunningTotal", each List.Sum(List.Range(actualValues,0,[Index])))}}),
    #"Expanded GroupData" = Table.ExpandTableColumn(#"Grouped Rows", "GroupData", {"Actual", "Index", "RunningTotal"}, {"Actual", "Index", "RunningTotal"})
in
    #"Expanded GroupData"

vjingzhanmsft_0-1714377616522.png

vjingzhanmsft_1-1714377945923.png

 

@PhilipTreacy 's blog link shares another solution. You can have a try!

 

Best Regards,
Jing
If this post helps, please Accept it as Solution to help other members find it. Appreciate your Kudos!

PhilipTreacy
Super User
Super User

Hi @CarlosOlmos29 

 

Check this article for how to create Grouped Running Totals in Power Query

 

Regards

 

Phil



Did I answer your question? Then please mark my post as the solution.
If I helped you, click on the Thumbs Up to give Kudos.


Blog :: YouTube Channel :: Connect on Linkedin


Proud to be a Super User!


Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.