如何将总计行添加到Excel Power查询?

时间:2019-04-26 13:22:12

标签: excel grouping powerquery subtotal

我通过在excel电源查询中使用“组”功能生成了一个类似于以下表格的表格

score 1 score 2 score 3
A   6   25  50
B   8   30  20
C   15  15  30
D   20  0   10

我想添加一个总计行(相当于普通数据透视表中的“显示列的总计”),所以结果将是这样

score 1 score 2 score 3
A   6   25  50
B   8   30  20
C   15  15  30
D   20  0   10
Total 49    70      110

任何人都知道是否有简单的方法可以做到这一点吗?谢谢你,RY

2 个答案:

答案 0 :(得分:2)

另一种方式:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    group = Table.Group(Source, {}, {{"letter", each "Total"},
                                     {"score 1", each List.Sum([score 1])},
                                     {"score 2", each List.Sum([score 2])}, 
                                     {"score 3", each List.Sum([score 3])}}),
    append = Table.Combine({Source, group})
in
    append

或者:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    cols = Table.ColumnNames(Source),
    group = Table.Group(Source, {}, List.Zip({cols, {each "Total"}&
                                    List.Transform(List.Skip(cols), 
                                    (x)=>each List.Sum(Table.Column(_,x)))})),
    append = Table.Combine({Source, group})
in
    append

或者:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    group = Table.Group(Source, {}, List.TransformMany(Table.ColumnNames(Source),
                                    (x)=>{each if x = "letter" then "Total" 
                                    else List.Sum(Table.Column(_,x))}, (x,y)=>{x,y})),
    append = Table.Combine({Source, group})
in
    append

答案 1 :(得分:0)

我不知道为什么要在PowerQuery中而不是数据透视表上执行此操作,但是我能想到的唯一方法是复制表,取消透视表列,然后使用sum作为汇总来取消透视表。然后,您可以将表追加到原始查询中。

您的代码将类似于您要在其中创建总计的表。

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(Source, {}, "Attribute", "Value"),
    #"Pivoted Column" = Table.Pivot(#"Unpivoted Columns", List.Distinct(#"Unpivoted Columns"[Attribute]), "Attribute", "Value", List.Sum)
in
    #"Pivoted Column"

请注意,您可能必须选择按计数进行汇总,但是您可以将代码更改为求和(在#“ Pivot Column”行上,将List.Count更改为List.Sum

您将获得A,B,C,D列的错误-如果愿意,可以使用“替换错误”功能将其替换为总计。