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

Power Query中分号分隔多值列如何从其他查询匹配替换对应值

Power Query 分号分隔多值ID批量映射为姓名方案

方法1:纯界面操作(无需写M代码)

  • 首先确保你已经将源列表、Vlookup_list都加载到Power Query编辑器中
  • 选中源列表的Assignees_ID列,依次点击【转换】选项卡-【拆分列】-【按分隔符】
    • 分隔符选择「分号」,展开【高级选项】,勾选【拆分为行】,点击确定
  • 拆分完成后,点击【主页】选项卡-【合并查询】,选择和Vlookup_list合并,匹配列为两侧的Assignees_ID,联接种类选「左外部」
  • 合并后点击结果列右上角的扩展按钮,仅勾选Assignees_Names列,取消勾选「使用原始列名作为前缀」,点击确定
  • 按住Ctrl选中Unique ID、Name两列,右键点击【分组依据】
    • 新列名输入Assignees_Names,操作选择【将值连接起来】,分隔符输入; (分号加空格),列选择Assignees_Names,点击确定即可得到预期结果

方法2:自定义列一步实现(效率更高,无需改动表结构)

首先添加一个自定义步骤,将映射表转为内存查找记录,步骤公式为:
IDNameMap = Record.FromList(Vlookup_list[Assignees_Names], Text.FromList(Vlookup_list[Assignees_ID]))

随后在源表中添加自定义列,输入公式:

Text.Combine(
    List.Transform(
        Text.Split([Assignees_ID], ";"),
        each try Record.Field(IDNameMap, _) otherwise _
    ),
    "; "
)

公式说明:先把多值ID按分号拆分为列表,遍历每个ID从预存的映射记录中匹配对应姓名,最后把匹配到的姓名用分号加空格拼接,加try otherwise是为了避免映射表没有对应ID时报错,缺失的ID会直接保留原值。

最后删除原来的Assignees_ID列即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:06:01