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

如何使用Power Query删除单行内重复值并移除空白单元格

Power Query 实现行内去重并移除空白值的方法

操作步骤

  • 将原始数据导入Power Query编辑器
  • 添加自定义列,输入公式:List.Distinct(List.RemoveNulls(Record.ToList(Record.RemoveFields(_, "Wire"))))
    公式逻辑:先排除标识行的Wire列,把当前行所有Point列的值转成列表,先删空值再去重,效果和Excel的UNIQUE函数完全一致
  • 选中自定义列,点击列标题右侧的扩展按钮,选择将列表拆分为多列
  • 删除原本的Point1~Point6旧列,将新生成的列重命名为Point1、Point2、Point3即可得到目标结果

可直接复用的通用M代码

你可以直接把以下代码粘贴到Power Query的高级编辑器中,将源数据的表名替换成你自己的表名即可直接运行,点位列数量变动也无需手动调整取值逻辑:

let
    源 = Excel.CurrentWorkbook(){[Name="你的原始表名"]}[Content],
    提取所有点位列名 = List.RemoveMatchingItems(Table.ColumnNames(源), {"Wire"}),
    生成去重后点位列表 = Table.AddColumn(源, "临时列表", each List.Distinct(List.RemoveNulls(Record.FieldValues(Record.SelectFields(_, 提取所有点位列名))))),
    仅保留需要的列 = Table.SelectColumns(生成去重后点位列表, {"Wire", "临时列表"}),
    拆分列表为正式列 = Table.SplitColumn(仅保留需要的列, "临时列表", Splitter.SplitByNothing(), {"Point1", "Point2", "Point3"}),
    空白值替换为空文本 = Table.ReplaceValue(拆分列表为正式列, null, "", Replacer.ReplaceValue, {"Point1", "Point2", "Point3"})
in
    空白值替换为空文本

如果后续需要输出更多点位列,只需要修改拆分列表为正式列步骤里的列名列表即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 03:15:00