如何在 Power Query 中对 N 列求和

问题描述 投票:0回答:3

我的数据每个月都会更新,所以我试图创建一个强大的查询表,该表将显示我创建的旋转(N)列的总和,但我似乎不知道如何在强大的查询中执行此操作。

我目前有这个代码:

excel powerquery m
3个回答
3
投票
  • 旋转后:
  • 创建要求和的列列表
  • 添加索引列以限制每行
  • 添加一列,对该行的列进行求和
  • 删除索引列
let
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Month Yr", Date.Type}, {"Attribute", type text}, {"Value", Currency.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "MonthYear", each Date.ToText([Month Yr],"MMMM yyyy")),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Month Yr"}),
    #"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[MonthYear]), "MonthYear", "Value", List.Sum),

//NEW code added after your Pivoted Column line

//Get List of columns to sum
//  Assumes this list all columns **except the first** in the Pivot table
//  There are other methods of generating this list if this assumption is incorrect
colToSum = List.RemoveFirstN(Table.ColumnNames(#"Pivoted Column"),1),

//Add Index Column
IDX = Table.AddIndexColumn(#"Pivoted Column","Index",0,1),

//Sum each row of "colToSum"
totals = Table.AddColumn(IDX, "Sum", each List.Sum(
        Record.ToList(
            Table.SelectColumns(IDX,colToSum){[Index]})
    ), Currency.Type),
    #"Removed Columns1" = Table.RemoveColumns(totals,{"Index"})


in
#"Removed Columns1"


0
投票

您可以分组,然后在旋转后合并到表格中

#"Grouped Rows" = Table.Group(#"Changed Type", {"Atribute"}, {{"Sum", each List.Sum([Value]), type number}}),
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Changed Type", {{"Month Year", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Changed Type", {{"Month Year", type text}}, "en-US")[#"Month Year"]), "Month Year", "Value", List.Sum),
#"Merged Queries" = Table.NestedJoin(#"Pivoted Column",{"Atribute"}, #"Grouped Rows",{"Atribute"},"Table2",JoinKind.LeftOuter),
#"Expanded Table" = Table.ExpandTableColumn(#"Merged Queries", "Table2", {"Sum"}, {"Sum"})
in #"Expanded Table"

或者您可以分组,将其添加到表中,然后旋转合并的新组

#"Grouped Rows" = Table.Group(#"Changed Type", {"Atribute"}, {{"Value", each List.Sum([Value]), type number}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Month Year", each "Sum"),
#"Reordered Columns" = Table.ReorderColumns(#"Added Custom",{"Month Year", "Atribute", "Value"}),
combined = #"Reordered Columns" & #"Changed Type",
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(combined, {{"Month Year", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(combined, {{"Month Year", type text}}, "en-US")[#"Month Year"]), "Month Year", "Value", List.Sum)
in  #"Pivoted Column"

0
投票

List.Sum({[2020 年 7 月],[2020 年 8 月],[2020 年 9 月]})

© www.soinside.com 2019 - 2024. All rights reserved.