Power Query/DAX/Power BI多条件去重及特定行移除方法咨询
用Power Query和DAX实现多条件去重及移除指定Source行的自动化操作
Power Query 实现步骤
场景1:已完成第一步去重,仅移除Source="cmdd"的行
- 打开Power Query编辑器(点击「数据」选项卡→「从表格/范围」)
- 选中
Source列,点击列标题的筛选图标,取消勾选cmdd选项后确定,即可快速移除目标行 - 若要通过代码精确控制,可在查询步骤中添加以下M代码(替换
之前的步骤名称为实际步骤名):= Table.SelectRows(之前的步骤名称, each [Source] <> "cmdd")
场景2:整合去重与移除cmdd行,一步完成
如果想把「基于Concat去重」和「移除cmdd行」合并为一个流程:
- 导入原始数据到Power Query后,先执行去重:选中
Concat列,点击「移除重复项」,或添加M代码:= Table.Distinct(更改的类型, {"Concat"}) - 再执行筛选操作,移除Source="cmdd"的行,方法同场景1。
DAX 实现方法
DAX适合在Power BI等工具中创建计算表,实现数据清理自动化:
方法1:基于已去重的表,移除cmdd行
假设你已经有一张完成第一步去重的表已去重表,创建新计算表:
清理后表 = FILTER(已去重表, 已去重表[Source] <> "cmdd")
方法2:一步完成去重+移除cmdd行
直接基于原始表,同时完成去重和筛选:
清理后表 = FILTER( DISTINCT('原始表'), -- 基于所有列的唯一组合去重(等价于Concat列去重) '原始表'[Source] <> "cmdd" )
如果只想保留指定列,也可以调整为:
清理后表 = SELECTCOLUMNS( FILTER( DISTINCT('原始表'), '原始表'[Source] <> "cmdd" ), "Machine", '原始表'[Machine], "Product", '原始表'[Product], "Source", '原始表'[Source], "Concat", '原始表'[Concat], "Count", '原始表'[Count] )
内容的提问来源于stack exchange,提问作者ROn
相关产品推荐
相关产品推荐

