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

Power Query中如何连接两表并保留所有匹配与不匹配的ID及对应值?

在Power Query中实现保留所有ID并取有效Col2值的表连接

直接按下面的步骤操作就能得到你要的结果:

步骤1:执行全外连接

  • 先在Power Query编辑器里加载好Table A和Table B
  • 点开始选项卡 → 合并查询 → 合并查询作为新查询
  • 左表选Table A,右表选Table B,两个表都选ID列当连接键,连接类型选全外连接(所有行),点确定

步骤2:合并Col2列,提取有效值

  • 合并后会多出一列带Table B数据的列(默认叫Table B),点列右侧的展开按钮,只勾Col 2,取消“使用原始列名作为前缀”,确定
  • 这时会有两列Col2(比如Col2和Col2.1),添加自定义列,公式写:if [Col 2] <> null then [Col 2] else [Col 2.1]
  • 把这个自定义列重命名成Col 2,删掉原来的两列Col2

步骤3:清理重复行(可选)

  • 全外连接后ID1-3可能会各留一行,直接点ID列 → 开始选项卡 → 删除重复项,确保每个ID只保留一行

如果习惯用M代码直接写,也可以用这段:

let
    SourceA = Table.FromRecords({
        [ID=1, Col2="A"],
        [ID=2, Col2="B"],
        [ID=3, Col2="C"]
    }),
    SourceB = Table.FromRecords({
        [ID=1, Col2=null],
        [ID=2, Col2=null],
        [ID=3, Col2=null],
        [ID=4, Col2="D"],
        [ID=5, Col2="E"]
    }),
    FullJoin = Table.FullOuterJoin(SourceA, "ID", SourceB, "ID"),
    MergeCol2 = Table.AddColumn(FullJoin, "Col 2", each if [Col2] <> null then [Col2] else [Col2.1]),
    CleanTable = Table.Distinct(Table.SelectColumns(MergeCol2, {"ID", "Col 2"}))
in
    CleanTable

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:01:54