Power Query - M 语言:对多列进行分组求和

Power Query - M Language: Sum with Group By for multiple columns

我正在为一个执行以下操作的导入的 csv 文件编写 DataTransform:

输入数据如下所示:

我正在寻找的输出将显示每个州一行,每个日期一列,以及该日期的总和。只需使用 Table.Group 和 List.Sum,我就能在特定日期获得此信息:

= Table.Group(#"Change Dates to Num", {"Province_State"}, {{"4/19/20", each List.Sum([#"4/19/20"]), type number}, {"4/20/20", each List.Sum([#"4/20/20"]), type number}})

虽然我不知道输入中有多少个日期,所以我正在寻找它来为 N 列执行此操作:

= Table.Group(#"Change Dates to Num", {"Province_State"}, List.Transform(List.RemoveFirstN(Table.ColumnNames(#"Promoted Headers"),4), (DateList) => {DateList,each List.Sum(Table.Column(#"Change Dates to Num",DateList)), type number}))

以上给出了正确的列数和行数,但 List.Sum 不正确。

感谢您的帮助。

单击 select CountyCounty_Region 然后右键单击删除列...

只剩下 Province_state 和所有日期列

单击 select Province_state 然后右键单击 Unpivot other columns

现在您只有三列,Province_stateAttributeValue

同时单击 select Province_stateAttribute 然后右键单击分组依据...

将设置保留为 [x] 基本

操作使用Sum,Column使用Value

点击确定

单击 select 属性,然后单击主页...数据透视列..

对于 Values_Column 选择您创建的新列的名称,例如 SUM

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Removed Columns" = Table.RemoveColumns(Source,{"County", "Country_Regio"}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Columns", {"Province_State"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Other Columns", {"Province_State", "Attribute"}, {{"Sum", each List.Sum([Value]), type number}}),
#"Pivoted Column" = Table.Pivot(#"Grouped Rows", List.Distinct(#"Grouped Rows"[Attribute]), "Attribute", "Sum", List.Sum)
in #"Pivoted Column"