我有任务要完成。它是关于业务单位(BU)和成本中心(CC)的“损益”-PNL。
我有2张桌子。
第一张表是主表,由业务单位 (BU) 和 2 个成本中心 (CC) 的年度数据组成。
BU 和两个 CC 有 2 个帐户,每个帐户有 5 个流,我们将它们命名为 flow1 到 flow5。每个流程都有年度 PNL 数据。
BU/CC | 账户 | 流动 | 2023 年总计 | |
---|---|---|---|---|
事业部1 | 账户1 | 1)项目收入 | 120000 | |
事业部1 | 账户1 | 2) 工程成本 | -80000 | |
事业部1 | 账户1 | 3)其他收入 | 0 | |
事业部1 | 账户1 | 4)其他费用 | 0 | |
事业部1 | 账户1 | 5)工作成本 | -210000 | |
事业部1 | 账户2 | 1)项目收入 | 600000 | |
事业部1 | 账户2 | 2) 工程成本 | -110000 | |
事业部1 | 账户2 | 3)其他收入 | 0 | |
事业部1 | 账户2 | 4)其他费用 | 0 | |
事业部1 | 账户2 | 5)工作成本 | -245000 | |
成本中心1 | 账户1 | 1)项目收入 | 0 | |
成本中心1 | 账户1 | 2) 工程成本 | 0 | |
成本中心1 | 账户1 | 3)其他收入 | 0 | |
成本中心1 | 账户1 | 4)其他费用 | -120000 | |
成本中心1 | 账户1 | 5)工作成本 | -210000 | |
成本中心1 | 账户2 | 1)项目收入 | 0 | |
成本中心1 | 账户2 | 2) 工程成本 | 0 | |
成本中心1 | 账户2 | 3)其他收入 | 0 | |
成本中心1 | 账户2 | 4)其他费用 | -120000 | |
成本中心1 | 账户2 | 5)工作成本 | -210000 | |
成本中心2 | 账户1 | 1)项目收入 | 0 | |
成本中心2 | 账户1 | 2) 工程成本 | 0 | |
成本中心2 | 账户1 | 3)其他收入 | 0 | |
成本中心2 | 账户1 | 4)其他费用 | -120000 | |
成本中心2 | 账户1 | 5)工作成本 | -465000 | |
成本中心2 | 账户2 | 1)项目收入 | 0 | |
成本中心2 | 账户2 | 2) 工程成本 | 0 | |
成本中心2 | 账户2 | 3)其他收入 | 0 | |
成本中心2 | 账户2 | 4)其他费用 | -120000 | |
成本中心2 | 账户2 | 5)工作成本 | -210000 |
第二张表是分配表,它显示了CC的PNL的哪一部分分配给BU定义为间接成本。 表由 3 列组成:BU/CC/分配键。
BU | 抄送 | 分配键 |
---|---|---|
事业部1 | 成本中心1 | 70 |
事业部1 | 成本中心2 | 30 |
我需要做什么?
显示完整损益表的数据透视表,其中仅 BU 在顶层显示为线条。 CC 的成本通过分配键分配给 BU(我们称之为间接成本)(例如 BU1 将从 CC1 获得 70% 的成本,从 CC2 获得 30% 的成本等)。成本分配的分配键应在分配表中定义 –(必须能够手动更改分配“键”)(说明涉及多个 BU 和 CC,但我给了您仅 1 BU 和 2 CC 的示例。
数据透视表结构:
我有点陷入这个例子,合并这两个表并计算有关间接成本的准确数据,并在 Excel 中的 Power 查询中的数据透视表中丢失。
我非常感谢您的想法/建议/帮助!
谢谢!
在 powerquery 中,此代码将复制并分配美元 由您来进行报告
let Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"BU/CC", type text}, {"Account", type text}, {"Flows", type text}, {"Total 2023", Int64.Type}}),
#"Merged Queries" = Table.NestedJoin(#"Changed Type", {"BU/CC"}, alloc, {"BU"}, "alloc", JoinKind.LeftOuter),
#"Expanded alloc" = Table.ExpandTableColumn(#"Merged Queries", "alloc", {"CC", "Allocation Key"}, {"CC", "Allocation Key"}),
#"Added Custom" = Table.AddColumn(#"Expanded alloc", "BU/CC2", each [CC] ?? [#"BU/CC"]),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Total 20232", each if [CC]=null then [Total 2023] else [Total 2023]*[Allocation Key]/100),
#"Filtered Rows" = Table.SelectRows(#"Added Custom1", each ([CC] <> null)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Total 20232"}),
#"Added Custom2" = Table.AddColumn(#"Removed Columns", "Total 20232", each [Total 2023]*[Allocation Key]/100),
Combined = #"Added Custom1" & #"Added Custom2",
#"Removed Columns1" = Table.RemoveColumns(Combined,{"BU/CC", "Total 2023"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns1",{{"BU/CC2", "BU/CC"}, {"Total 20232", "Total 2023"}})
in #"Renamed Columns"