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

如何修改Power Query代码实现跨表双列匹配并提取CODE_T值

问题需求

现有两张输入表TblA和TblB:

  • 当前代码已实现通过TblA[NUM]匹配TblB[VALUES],获取对应的CODE_T值
  • 需要修改Table.AddColumn步骤,新增以下逻辑并合并结果:
    1. 提取TblA[STR]中的数字部分
    2. 将提取的数字按从右到左顺序拼接为新字符串
    3. 用该字符串匹配TblB[CODE_M],获取对应结果
    4. 合并两类匹配的结果(过滤空值后合并)

核心逻辑实现

1. 逆序数字提取的自定义函数

先封装提取并逆序拼接数字的逻辑,方便复用:

Get_Reverse_Number = (str as text) => 
    let
        // 筛选字符串中的数字字符
        numChars = List.Select(Text.ToList(str), each Value.Is(Value.FromText(_), type number)),
        // 逆序列表后拼接成字符串
        reversedNum = Text.Combine(List.Reverse(numChars))
    in
        reversedNum

2. 修改后的完整查询代码

将原匹配逻辑与新增逻辑整合,在Table.AddColumn中同时处理两类匹配并合并结果:

let
    Source = TblA,
    // 定义逆序数字提取函数
    Get_Reverse_Number = (str as text) => 
        let
            numChars = List.Select(Text.ToList(str), each Value.Is(Value.FromText(_), type number)),
            reversedNum = Text.Combine(List.Reverse(numChars))
        in
            reversedNum,
    // 新增/修改列:合并两类匹配结果
    Add_Combined_Results = Table.AddColumn(Source, "匹配结果", (row) => 
        let
            // 原逻辑:NUM匹配VALUES获取CODE_T
            matchedCodeT = Table.SelectRows(TblB, each [VALUES] = row[NUM]),
            codeT = if Table.RowCount(matchedCodeT) > 0 then matchedCodeT{0}[CODE_T] else null,
            // 新增逻辑:STR逆序数字匹配CODE_M获取对应结果
            reversedNum = Get_Reverse_Number(row[STR]),
            matchedCodeM = Table.SelectRows(TblB, each [CODE_M] = reversedNum),
            codeM = if Table.RowCount(matchedCodeM) > 0 then matchedCodeM{0}[CODE_M对应目标列] else null, // 替换为TblB中CODE_M关联的实际列名
            // 合并结果:移除空值后用逗号分隔
            combinedResult = Text.Combine(List.RemoveNulls({codeT, codeM}), ", ")
        in
            combinedResult
    )
in
    Add_Combined_Results

预期输出示例

假设TblA和TblB的测试数据如下:

TblA

NUMSTR
123AB45CD67
456XYZ89
789ABC

TblB

VALUESCODE_TCODE_MCODE_M对应目标列
123T17654M7654
456T298M98
789T3

最终输出表:

NUMSTR匹配结果
123AB45CD67T1, M7654
456XYZ89T2, M98
789ABCT3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:15:50