如何在Power BI中过滤表,使每个产品编号对应Column1两值各一行
Power BI 实现产品编号对应Column1双值各保留一行的过滤方案
以下两种方法都能实现需求:每个产品编号(Column2)对应Column1的1和2各保留一行,最终每个产品最多显示两行数据。
方法一:用DAX创建计算表
如果需要在数据模型中直接生成过滤后的表,可使用DAX公式:
- 切换到数据视图,点击顶部菜单栏的「新建表」
- 输入以下DAX代码(将
原表替换为你的实际表名):
过滤后表 = SUMMARIZE( '原表', '原表'[Column2], '原表'[Column1] )
这个公式会直接提取Column2和Column1的唯一组合,刚好满足每个产品编号对应两个Column1值各一行的需求。如果你的表还有其他需要保留的列,可以改用以下公式,保留每个组合的第一行数据:
过滤后表 = GROUPBY( '原表', '原表'[Column2], '原表'[Column1], "@保留行", MAXX(CURRENTGROUP(), '原表'[Column1]) )
添加完公式后,点击回车即可生成目标表。
方法二:用Power Query预处理数据
如果需要在数据加载阶段完成过滤,适合用Power Query:
- 在主页选项卡点击「转换数据」,进入Power Query编辑器
- 选中你的数据表,点击顶部「转换」选项卡的「分组依据」
- 在分组窗口中:
- 分组依据选择
Column2和Column1(依次添加这两个字段) - 新列名输入「所有行」,操作选择「所有行」
- 分组依据选择
- 点击确定后,添加自定义列,公式输入:
Table.First([所有行]) - 点击自定义列右侧的展开按钮,选择需要保留的字段(比如Column1、Column2及其他列)
- 删除不需要的「所有行」列,点击「关闭并应用」即可完成过滤
内容的提问来源于stack exchange,提问作者Nico Duja
相关产品推荐
相关产品推荐

