Power Query编辑器删除重复项时如何保留高Count值对应的支付状态
Power Query去重逻辑说明及指定保留条目的实现方案
为什么Power Query去重没有保留排序靠前的条目
- Power Query的删除重复项逻辑和桌面Excel原生去重逻辑不通用,它不存在「默认保留排序后第一条」的规则。底层是通过对重复字段的哈希值匹配随机保留重复组内的某一条,手动调整的排序结果不会对去重时的保留规则产生影响,所以会出现你遇到的固定删掉Resubmitted条目的情况。
按最高Count值保留对应条目的操作步骤
操作全程不需要写复杂M代码,通过可视化按钮即可完成:
- 选中Con列,点击顶部「转换」选项卡中的
分组依据功能,弹窗内配置如下:- 分组依据:保持默认选中的Con字段
- 新列名:可自定义为
组内数据,操作项选择「所有行」,确认后完成分组
- 点击顶部「添加列」选项卡中的
自定义列,在公式输入框中填入:Table.Max([组内数据], "Count")
确认后会生成存储每组Count最大值对应完整记录的列 - 点击新增自定义列右上角的展开按钮,勾选你需要保留的
Payment Status、Count字段,取消勾选「使用原始列名作为前缀」后确认 - 删掉不需要的
组内数据列即可得到你要的去重结果。
如果你习惯用排序逻辑实现,也可以先按Con列升序、Count列降序全表排序,然后在高级编辑器中给排序后的Table套一层
Table.Buffer()函数缓存排序结果,再执行删除重复项操作,也能实现保留最高Count条目的效果,不过稳定性低于分组取最大值的方案。
内容的提问来源于stack exchange,提问作者Ashir Azim
相关产品推荐
相关产品推荐

