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

Power Query单列去重问题:如何独立清除各列重复值

实现Power Query单列独立去重的解决方案

嘿,我完全懂你的痛点——Power Query默认的「删除重复项」是按整行判断的,但你要的是每一列单独保留唯一值,还要和原始表保持依赖关系,同步更新。下面给你两种实用方法,不管是新手还是熟手都能用:

方法一:手动可视化操作(零代码,适合少量列)

  1. 先确保你的验证表是直接引用原始表的——比如通过「数据」→「获取数据」→「从表格/范围」加载原始表,或者右键原始表选「引用」,这样原始表改了,刷新验证表就同步。
  2. 处理单列去重:
    • 选中你要去重的列,右键点它,选「删除重复项」——注意!只选中这一列的情况下,Power Query只会删掉该列的重复值,保留第一次出现的那条记录,其他列的内容跟着保留(其他列的重复不会被碰)。
    • 如果你想让每列的唯一值单独成列展示(比如列A的所有唯一值占一列,列B的占另一列,行数可能不一样),可以这么做:
      • 选中列,点「转换」→「提取」→「值」,先把列转成唯一值列表(或者先删重复项再提取值)。
      • 每列都这么操作,得到几个独立的唯一值列表。
      • 然后点「开始」→「追加查询」→「追加查询作为新查询」,把这些列表合并成表;或者用「添加列」→「自定义列」,把其他列的唯一值列表加进来。

方法二:M代码批量处理(适合多列,高效)

如果你的表有十几列甚至更多,手动点太麻烦,直接用M代码批量搞定:

  1. 打开Power Query编辑器,点击顶部的「高级编辑器」,把现有代码替换成下面这段(记得把原始表改成你实际的原始表名称):
let
    // 引用你的原始表
    Source = 原始表,
    // 获取所有列的名称
    ColumnNames = Table.ColumnNames(Source),
    // 遍历每一列,提取该列的所有唯一值
    UniqueColumns = List.Transform(ColumnNames, (col) => [ColumnName = col, UniqueValues = List.Distinct(Table.Column(Source, col))]),
    // 把处理后的列组合成最终的表
    Result = Table.FromList(UniqueColumns, (x) => x[UniqueValues], ColumnNames)
in
    Result
  1. 简单解释下:
    • List.Distinct是M语言里提取唯一值的核心函数,专门针对单列表去重。
    • 最终生成的表,每一列都是对应原始列的所有唯一值,行数是各列唯一值数量的最大值,缺的地方会自动填null,完美满足每列独立去重的需求,而且原始表更新后,刷新就同步。

特殊需求:保留原始行结构,重复项转空白

如果你不想改变原始表的行数,只是把每列里重复出现的值改成空白(只留第一次出现的唯一值),可以用这段M代码:

let
    Source = 原始表,
    // 遍历每一列,把重复值替换为null
    TransformedColumns = Table.TransformColumns(Source, List.Transform(Table.ColumnNames(Source), (col) => {col, (values) => 
        let
            UniqueList = List.Distinct(values),
            // 标记每个值的出现顺序,只保留第一次出现的
            Result = List.Transform(values, (val) => if List.PositionOf(UniqueList, val) = List.PositionOf(values, val) then val else null)
        in
            Result}))
in
    TransformedColumns

这段代码会让每列里第一次出现的唯一值保留,后面重复的都变成空白,同时完全保留原始表的行结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:23:34