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

Power Query实现XLOOKUP等价功能遇列未更新问题求助

Power Query 更新主表数据问题排查与修正

你的代码核心问题是在列更新步骤错误地引用了已被展开的嵌套表列,导致替换逻辑没有生效。以下是具体问题分析和修正方案:

问题原因

  1. 你已经通过Table.ExpandTableColumn将嵌套的Source2Data表展开为Source2_Title、Source2_Description等独立列,但后续更新列时仍然试图访问[Source2Data][Title]这类嵌套表中的值——此时Source2Data是一个表对象,直接访问其列值无法正确获取到展开后的内容,导致替换逻辑失效。
  2. 判断是否匹配成功的逻辑应该基于展开后的列是否为null(左连接无匹配时,展开列都会是null),而非判断[Source2Data] <> null。

修正后的代码

let
    // 左连接两个表,基于ID Number
    MergedTables = Table.NestedJoin(Source1, {"ID Number"}, Source2, {"ID Number"}, "Source2Data", JoinKind.LeftOuter),

    // 展开需要更新的列,命名为Source2_前缀区分
    ExpandedSource2Data = Table.ExpandTableColumn(MergedTables, "Source2Data", 
        {"Title", "Description", "Status", "Disposition"}, 
        {"Source2_Title", "Source2_Description", "Source2_Status", "Source2_Disposition"}), 

    // 用Source2的列更新Source1对应列,仅当Source2有数据且内容不同时替换
    UpdatedColumns = Table.TransformColumns(ExpandedSource2Data, {
        {"Title", each if [Source2_Title] <> null and (try Text.From(_) <> [Source2_Title] otherwise false) then [Source2_Title] else _, type text},
        {"Description", each if [Source2_Description] <> null and _ <> [Source2_Description] then [Source2_Description] else _, type text},
        {"Status", each if [Source2_Status] <> null and _ <> [Source2_Status] then [Source2_Status] else _, type text},
        {"Disposition", each if [Source2_Disposition] <> null and _ <> [Source2_Disposition] then [Source2_Disposition] else _, type text}
    }),

    // 删除临时的Source2前缀列和原嵌套列
    FinalTable = Table.RemoveColumns(UpdatedColumns,
        {"Source2Data", "Source2_Title", "Source2_Description", "Source2_Status", "Source2_Disposition"})

in
    if Table.RowCount(FinalTable) > 0 then FinalTable else null

关键改动说明

  • 更新列时使用展开后的Source2_Title等列,而非嵌套表Source2Data的列,确保能正确获取到更新值
  • 用_代替重复的[Title]/[Description]等,简化代码(_在Table.TransformColumns中代表当前列的原始值)
  • 增加删除Source2Data嵌套列的操作,避免最终表残留无用列
  • 调整匹配判断逻辑为检查Source2_xxx是否为null,更准确反映是否匹配到更新数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:37:02