如何在PowerQuery中删除Value列求和为0的分组行?
在PowerQuery中保留Value列分组总和不为0的所有行
可视化操作步骤(适合新手)
- 将财务数据导入PowerQuery编辑器后,切换到添加列选项卡,点击自定义列
- 在弹出的公式框中输入以下内容(替换成你实际的分组列名,这里用你提到的Category、Supplier、Cost Center):
注意:把List.Sum(Table.SelectRows(#"上一步骤名称", (行)=>行[Category] = [Category] and 行[Supplier] = [Supplier] and 行[Cost Center] = [Cost Center])[Value])#"上一步骤名称"替换成查询步骤列表里你当前的上一步名称(比如默认的"源"或其他自定义步骤名) - 点击确定后,会新增一列,显示每一行所属分组的Value总和
- 点击该列的筛选按钮,取消勾选值为0的选项,只保留非0行
- 右键删除这个临时添加的列,即可得到保留所有原始列、且分组Value总和不为0的目标数据
直接编辑M代码示例
如果习惯写代码,可替换现有查询步骤为:
let 源 = Excel.CurrentWorkbook(){[Name="你的数据表名"]}[Content], 添加分组总和列 = Table.AddColumn(源, "分组Value总和", each List.Sum(Table.SelectRows(源, (行)=>行[Category]=[Category] and 行[Supplier]=[Supplier] and 行[Cost Center]=[Cost Center])[Value])), 筛选非0行 = Table.SelectRows(添加分组总和列, each [分组Value总和] <> 0), 删除临时列 = Table.RemoveColumns(筛选非0行,{"分组Value总和"}) in 删除临时列
为什么之前的方法不生效
- 删除重复行:你的行只是"近乎一致",并非完全相同,PowerQuery无法判定为重复行,所以无效
- 普通Group By:默认仅展示分组列和聚合后的总和列,不会保留原始所有行,不符合需求
内容的提问来源于stack exchange,提问作者Patrick
相关产品推荐
相关产品推荐

