我正在寻找以下问题的帮助:我的数据集包含按地区和国家划分的几个变量(收益、运营支出、成交量)的值。每个变量都有一个地区合计,但并不是每个国家都包括在数据集中,因此这些国家的总和并不等于地区合计。我想为每个变量创建一个新的计算行“所有其他国家”,它等于所有未包括的国家的值的总和。计算方法是,例如,所有其他收益=收益欧洲-收益德国-收益英国-收益法国。
到目前为止,我发现的解决方案通常是为减法创建新的列,并且通常基于一些基于时间的顺序,该顺序使用索引将以前的行/周期与新的行/周期链接起来。这不适用于我的问题,因为我想将缺少的国家/地区行追加到我的表中,而我的国家/地区没有排序。
下面是一个示例表,因为现在的数据
enter image description here enter image description here
在我想要添加/创建的新行下面
发布于 2021-09-24 19:12:16
这似乎在PowerQuery中起作用。下次请粘贴机器可读的数字
取消轴心
我假设如果是Region=BU,那就是总数。所以使用自定义列来测试
筛选器以获取非总计和分组。这给了我要减去的总和。
对总数进行筛选。将非合计合并为一列并减去这些值。那是剩菜。将BU列更改为Other,并重命名一些列。追加到原始数据
重新旋转枢轴
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Region", "BU", "Analysis", "IS GRP", "Unit"}, "Attribute", "Value"),
#"Added Custom" = Table.AddColumn(#"Unpivoted Other Columns", "TopLevel", each if [Region]=[BU] then 1 else 0),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([TopLevel] = 0)),
#"Grouped Rows" = Table.Group(#"Filtered Rows", {"Region", "Analysis", "IS GRP", "Unit", "Attribute"}, {{"Value", each List.Sum([Value]), type number}}),
#"Filtered Rows2" = Table.SelectRows(#"Added Custom", each ([TopLevel] = 1)),
#"Merged Queries" = Table.NestedJoin(#"Filtered Rows2",{"Region", "Analysis", "IS GRP", "Unit", "Attribute"},#"Grouped Rows",{"Region", "Analysis", "IS GRP", "Unit", "Attribute"},"Filtered Rows2",JoinKind.LeftOuter),
#"Expanded Filtered Rows2" = Table.ExpandTableColumn(#"Merged Queries", "Filtered Rows2", {"Value"}, {"Value.1"}),
#"Added Custom1" = Table.AddColumn(#"Expanded Filtered Rows2", "Other.Value", each [Value]-[Value.1]),
#"ChangeNametoOther" = Table.TransformColumns(#"Added Custom1",{{"BU", each "Other", type text}}),
#"Removed Columns" = Table.RemoveColumns(#"ChangeNametoOther",{"Value", "TopLevel", "Value.1"}),
#"Renamed Columns" = #"Unpivoted Other Columns" & Table.RenameColumns(#"Removed Columns",{{"Other.Value", "Value"}}),
#"Pivoted Column" = Table.Pivot(#"Renamed Columns", List.Distinct(#"Renamed Columns"[Attribute]), "Attribute", "Value", List.Sum)
in #"Pivoted Column"

https://stackoverflow.com/questions/69319250
复制相似问题