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

基于唯一ID列Column5移除Power Query中Column4重复值的方法

在Power Query中按唯一ID保留列的首个非重复值

要解决同一唯一ID(Column5)下Column4重复的问题,同时允许不同ID间Column4重复,不能用全局去重,得按ID分组后保留每组内的首个Column4值,再合并回原表。具体操作如下:

操作步骤(可视化界面)

    1. 生成分组表
      在当前查询的最后一步之后,切换到「转换」选项卡,点击「分组依据」:
    • 分组依据选择Column5(你的唯一ID列)
    • 新列名设为「FirstColumn4」,操作选「第一行」,目标列选Column4
      点击确定,此时会得到一张仅含Column5和对应首个Column4值的分组表。
    1. 合并分组表与原表
      回到原查询的最后一步(不要覆盖之前的分组操作,在原步骤后新增步骤),点击「合并查询」→「合并查询作为新列」:
    • 左表选当前查询,匹配列选Column5
    • 右表选刚生成的分组表,匹配列同样选Column5
    • 连接类型选「左外部」,确认后生成新的合并列。
    1. 展开并替换(可选)
      点击合并列右侧的展开按钮,只勾选「FirstColumn4」,取消「使用原始列名作为前缀」的勾选。如果需要用新值替换原Column4,右键点击「FirstColumn4」列,选择「重命名」改为「Column4」,再删除原来的Column4列即可。

直接编写M代码(更高效)

如果习惯用M代码,可在查询末尾直接添加自定义步骤,假设原最后一步名称为「PreviousStep」,代码如下:

let
    // 按ID分组,提取每组首个Column4值
    GroupedTable = Table.Group(PreviousStep, {"Column5"}, {{"FirstColumn4", each List.First([Column4]), type any}}),
    // 左连接合并回原表
    MergedTable = Table.NestedJoin(PreviousStep, {"Column5"}, GroupedTable, {"Column5"}, "GroupedData", JoinKind.LeftOuter),
    // 展开分组数据
    ExpandedTable = Table.ExpandTableColumn(MergedTable, "GroupedData", {"FirstColumn4"}, {"FirstColumn4"}),
    // 替换原Column4(按需保留此步骤)
    FinalTable = Table.RenameColumns(ExpandedTable, {{"FirstColumn4", "Column4"}})
in
    FinalTable

这样处理后,每个Column5对应的Column4只会保留该ID下的第一个出现值,不同ID之间的Column4重复完全不受影响,不会被误删。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:08:20