Power Query添加一行,汇总以前的列

时间:2018-02-27 20:33:22

标签: excel powerquery

我正在尝试创建一个总结一列值的查询,并将总和作为新行放在同一个表中。我知道我可以使用组功能执行此操作,但它不能完全按照我的需要执行此操作。我正在尝试创建会计日记帐分录,我需要计算一长串借记的抵消。我知道这是会计师的谈话。这是我正在使用的表的示例。

Date GL Num  GL Name  Location  Amount
1/31 8000    Payroll  Office    7000.00
1/31 8000    Payroll  Remote    1750.00
1/31 8000    Payroll  City      1800.00
1/31 8010    Taxes    Office    600.00
1/31 8010    Taxes    Remote    225.00
1/31 8010    Taxes    City      240.00
1/31 3000    Accrual  All       (This needs to be the negative sum of all other rows)

我一直在使用Group By函数和按日期分组,结果是Amount的总和但是除去了之前的行和除Date之外的四列。我需要保留所有行和列,如果可能的话,将总和放在相同的Amount列中。如果总和必须在新列中,只要其他列和行保留,我就可以使用它。我还需要为此总和行输入GL Num,GL Name和Location值。这三个值不会改变。他们总是3000,Accrual,All。日期将根据实际数据中使用的日期而变化。如果可能的话,我更愿意在Power Query(Get& Transform)中完成所有这些操作。我可以通过VBA来做到这一点,但我正试图让其他人无需使用。

1 个答案:

答案 0 :(得分:3)

您可以做什么在单独的查询中计算应计行,然后追加它们。

  1. 复制您的查询。
  2. Date分组并总结Amount。这应该返回以下内容:
  3. Date  Amount
    1/31  11615
    
    1. 将您的Amount列乘以-1。 (转换>标准>乘法)
    2. 使用您选择的固定值为GL NumGL NameLocation添加自定义列。
    3. Date  Amount  GL Num  GL Name  Location
      1/31   11615    3000  Accrual       All
      
      1. 将此表格附加到原始表格中。 (主页>追加查询。)
      2. 您还可以将这一切全部转换为单个查询,如下所示:

        let
            Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
            OriginalTable = Table.TransformColumnTypes(Source,{{"Date", type date}, {"GL Num", Int64.Type}, {"GL Name", type text}, {"Location", type text}, {"Amount", Int64.Type}}),
            #"Grouped Rows" = Table.Group(OriginalTable, {"Date"}, {{"Amount", each List.Sum([Amount]), type number}}),
            #"Multiplied Column" = Table.TransformColumns(#"Grouped Rows", {{"Amount", each _ * -1, type number}}),
            #"Added Custom" = Table.AddColumn(#"Multiplied Column", "GL Num", each 3000),
            #"Added Custom1" = Table.AddColumn(#"Added Custom", "GL Name", each "Accrual"),
            #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Location", each "All"),
            #"Appended Query" = Table.Combine({OriginalTable, #"Added Custom2"})
        in
            #"Appended Query"
        

        请注意,我们在查询的前一步中添加了最后一步,而不是引用其他查询。