如何在Power BI中基于多列去重并保留单条差异记录?
保留重复组单条记录的解决方案
当前你的IsDuplicate计算列会将同一分组(业务线、PD评级、项目名称一致)内的所有记录标记为TRUE,导致删除标记记录时整组被移除。要实现每组保留一条、删除其余重复项,可以通过以下两种方式解决:
方法一:修改DAX计算列,标记非首条记录为重复
调整计算逻辑,给同一分组内的记录排序,仅将排名大于1的标记为重复:
IsDuplicate = VAR CurrentGroup = ALLEXCEPT('2023','2023'[Business Line],'2023'[PD Rating],'2023'[Item Name]) VAR RowRank = RANKX(CurrentGroup, '2023'[Comments], , ASC, DENSE) RETURN RowRank > 1
- 逻辑说明:
RANKX会根据Comments字段(可替换为日期等你想用来决定保留顺序的字段)给同一分组内的记录排序,排名为1的记录标记为FALSE(保留),其余标记为TRUE(删除)。 - 使用方式:筛选出
IsDuplicate = TRUE的记录删除即可。
方法二:用Power Query直接处理(更高效)
如果希望在数据加载阶段就完成去重,推荐用Power Query操作:
- 打开Power Query编辑器,加载
2023表 - 按
Business Line、PD Rating、Item Name列排序(可额外添加Comments列排序,确定保留哪条记录) - 选中
Business Line、PD Rating、Item Name三列,点击开始选项卡 → 删除重复项
Power Query会自动保留每组排序后的第一条记录,直接完成去重。
内容的提问来源于stack exchange,提问作者Olivia Kendall
相关产品推荐
相关产品推荐

