You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel Power Query实现两列无序值组合去重仅保留单条记录

Power Query 实现两列无序值组合去重

核心逻辑:为每一行生成和两列值顺序无关的统一标识,基于该标识去重即可自动过滤AB/BA这类顺序颠倒的重复组合,操作步骤如下:

    1. 将原始数据导入Power Query编辑器,确认待处理的两列列名为Header1、Header2,提前将两列数据类型统一设置为文本,避免排序异常
    1. 点击「添加列」选项卡-「自定义列」,在公式框输入以下M公式,生成去重用的辅助标识:
    Text.Combine(List.Sort({[Header1], [Header2]}), "|")
    
    公式作用:自动把当前行的两个值按固定规则排序后拼接成字符串,不管是(A,B)还是(B,A),排序后拼接结果都是A|B,同一组无序值会生成完全相同的标识
    1. 选中刚生成的自定义辅助列,点击「删除重复项」,所有标识相同的重复组合只会保留任意1条
    1. 选中辅助列,右键选择「删除」,剩余的表就是你需要的结果:仅保留(A,B)、(B,C)两条唯一无序组合记录

如果需要直接套用完整M代码,可以在高级编辑器里替换对应内容(注意把源步骤里的表名改成你自己的实际表名):

let
    源 = Excel.CurrentWorkbook(){[Name="原始表"]}[Content],
    更改列类型 = Table.TransformColumnTypes(源,{{"Header1", type text}, {"Header2", type text}}),
    添加去重辅助列 = Table.AddColumn(更改列类型, "组合标识", each Text.Combine(List.Sort({[Header1], [Header2]}), "|")),
    按辅助列去重 = Table.Distinct(添加去重辅助列, {"组合标识"}),
    删除辅助列 = Table.RemoveColumns(按辅助列去重,{"组合标识"})
in
    删除辅助列

该方法不需要额外写两列值大小判断的分支逻辑,对所有两列文本/数值类的无序组合去重都生效,后续新增的其他顺序颠倒的重复组合也能自动识别过滤,不需要调整规则。

内容的提问来源于stack exchange,提问作者Trioptre2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 03:01:07