Forum Discussion
Sum per month Power Query
Hey Experts!
I'm stuck on the followng Power Query Problem, I would like the sum per month as a new column (see example below)...
| Month | Date | Sales | What I Need |
| Jan | 01/01/2022 | 5 | 10 |
| Jan | 01/01/2022 | 5 | 10 |
| Feb | 01/02/2023 | 1 | 2 |
| Reb | 01/02/2023 | 1 | 2 |
My tables much larger than this with more columns but follows the same principle but needs to be done in Power Query.
I can't use group by aswell because I need the other columns.
How can I achieve this in Power Query? Any help would be greatly appreciated 🙂
Many Thanks,
Taylor
- Group by Month/Year
- Advanced Aggregation:
- Sum of Sales
- All
- Then re-expand. Since you havethe All column, you will restore the other columns
let //change next lineto reflect data source Source = Excel.CurrentWorkbook(){[Name="Table4"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Month", type text}, {"Date", type date}, {"Sales", Int64.Type}}), //Add year-month column in case sales dates are not always on same day of month #"Added Custom" = Table.AddColumn(#"Changed Type", "YearMonth", each Date.ToText([Date],"yyyyMM"), type text), //Group by year-month // Then aggregate for All and Sum #"Grouped Rows" = Table.Group(#"Added Custom", {"YearMonth"}, { {"All", each _, type table [Month=nullable text, Date=nullable date, Sales=nullable number, YearMonth=text]}, {"Monthly Sales", each List.Sum([Sales]), type nullable number} }), //Remove the yearmonth column #"Removed Columns" = Table.RemoveColumns(#"Grouped Rows",{"YearMonth"}), //Re-expand previous columns #"Expanded All" = Table.ExpandTableColumn(#"Removed Columns", "All", {"Month", "Date", "Sales"}) in #"Expanded All"- Anonymous3 years ago
Hi Ttaylor9870 ,
Provide another way to think about it.
List.Sum(Table.SelectRows(PreviousStepName,(x)=>x[Month]=[Month])[Sales])all steps.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8krMU9JRMtQ31DcyMDICMk2VYnVwCrulJoGFjUDCxiAmkvChBQaG+gbIUrEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Month = _t, Date = _t, Sales = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Month", type text}, {"Date", type date}, {"Sales", Int64.Type}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Sales Total", each List.Sum(Table.SelectRows(#"Changed Type",(x)=>x[Month]=[Month])[Sales])) in #"Added Custom"Best Regards,
Gao
Community Support TeamIf there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly. If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!
How to get your questions answered quickly -- How to provide sample data in the Power BI Forum
2 Replies
- ronrsnfldSuper User
- Group by Month/Year
- Advanced Aggregation:
- Sum of Sales
- All
- Then re-expand. Since you havethe All column, you will restore the other columns
let //change next lineto reflect data source Source = Excel.CurrentWorkbook(){[Name="Table4"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Month", type text}, {"Date", type date}, {"Sales", Int64.Type}}), //Add year-month column in case sales dates are not always on same day of month #"Added Custom" = Table.AddColumn(#"Changed Type", "YearMonth", each Date.ToText([Date],"yyyyMM"), type text), //Group by year-month // Then aggregate for All and Sum #"Grouped Rows" = Table.Group(#"Added Custom", {"YearMonth"}, { {"All", each _, type table [Month=nullable text, Date=nullable date, Sales=nullable number, YearMonth=text]}, {"Monthly Sales", each List.Sum([Sales]), type nullable number} }), //Remove the yearmonth column #"Removed Columns" = Table.RemoveColumns(#"Grouped Rows",{"YearMonth"}), //Re-expand previous columns #"Expanded All" = Table.ExpandTableColumn(#"Removed Columns", "All", {"Month", "Date", "Sales"}) in #"Expanded All" - AnonymousNot applicable
Hi Ttaylor9870 ,
Provide another way to think about it.
List.Sum(Table.SelectRows(PreviousStepName,(x)=>x[Month]=[Month])[Sales])all steps.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8krMU9JRMtQ31DcyMDICMk2VYnVwCrulJoGFjUDCxiAmkvChBQaG+gbIUrEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Month = _t, Date = _t, Sales = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Month", type text}, {"Date", type date}, {"Sales", Int64.Type}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Sales Total", each List.Sum(Table.SelectRows(#"Changed Type",(x)=>x[Month]=[Month])[Sales])) in #"Added Custom"Best Regards,
Gao
Community Support TeamIf there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly. If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!
How to get your questions answered quickly -- How to provide sample data in the Power BI Forum