Power Query 添加一行来汇总前几列

Dra*_*sen 2 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)
Run Code Online (Sandbox Code Playgroud)

我一直在使用“分组依据”函数并按“日期”分组,结果是“金额”的总和,但这消除了前面的行和除“日期”之外的四列。我需要保留所有行和列,如果可能的话,将总和放在相同的“金额”列中。如果总和必须位于新列中,只要保留其他列和行,我就可以使用它。我还需要输入此总和行的 GL 编号、GL 名称和位置值。这三个值不会改变。它们将始终为 3000、应计、全部。该日期将根据实际数据中使用的日期而变化。如果可能的话,我更愿意在 Power Query(获取和转换)中完成这一切。我可以通过 VBA 来完成,但我正在努力让其他人轻松使用。

Ale*_*son 5

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

  1. 重复您的查询。
  2. 分组并Date求和Amount。这应该返回以下内容:

Date  Amount
1/31  11615
Run Code Online (Sandbox Code Playgroud)
  1. 将您的Amount列乘以 -1。(变换 > 标准 > 乘法)
  2. 使用您选择的固定值添加GL NumGL Name和的自定义列Location

Date  Amount  GL Num  GL Name  Location
1/31   11615    3000  Accrual       All
Run Code Online (Sandbox Code Playgroud)
  1. 将此表附加到您的原始表中。(主页 > 追加查询。)

您还可以将所有这些汇总到一个查询中,如下所示:

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"
Run Code Online (Sandbox Code Playgroud)

请注意,我们将最后一个步骤附加到查询中的较早步骤,而不是引用不同的查询。