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

Power Query M构建Final result列的逻辑匹配问题求助

Power Query M 构建Final Result列的解决方案

问题根源

你第一段代码的核心错误是筛选逻辑的上下文引用错误:Table.SelectRows(#"PromotedHeaders", each [ID] = [corr_ID])里的[corr_ID]指的是筛选过程中遍历到的表行的corr_ID,不是当前正在计算Final Result列的那一行的corr_ID,导致筛选条件完全偏离预期,自然匹配不到结果。

正确的M代码实现

添加自定义列时,使用以下代码:

let
    currentType = [Type],
    currentCorrID = [corr_ID],
    currentValue = [Value]
in
    if currentType = "type 2" then currentValue
    else if currentType = "type 1" then
        try Table.SelectRows(#"PromotedHeaders", each [ID] = currentCorrID){0}[Value] otherwise null
    else null

关键修改点

  • 先把当前行的Type、corr_ID、Value存为变量,避免筛选时上下文混淆
  • 保留try...otherwise,防止corr_ID找不到对应ID时触发报错
  • 明确用当前行的corr_ID变量(currentCorrID)作为筛选条件,匹配目标ID行

额外排查步骤

如果还是无法匹配,可做以下验证:

  • 检查ID和corr_ID的数据类型:比如一个是数字、一个是文本,即使显示内容一致也无法匹配。可统一转文本后比较,修改筛选条件为each Text.From([ID]) = Text.From(currentCorrID)
  • 单条测试:针对某一行的具体corr_ID值,手动写Table.SelectRows(#"PromotedHeaders", each [ID] = "你的corr_ID值"),看是否能返回正确行

内容的提问来源于stack exchange,提问作者A.carillon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 15:07:16