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

如何在Power Query中不拆分城市列生成拼接友好城市自定义列?

Power Query 保留原拼接格式生成对应友好城市列的最优实现

核心思路

不用拆分Cities列再做关联合并,而是通过构建城市-友好城市映射记录,直接在自定义列中完成拆分、查找、拼接的全流程,既保留原格式,又保证查询效率。

步骤1:构建高效查找映射

先将Table2转换成记录格式(键为城市名,值为对应友好城市),相比反复调用Table.SelectRows,记录的查找速度更快,尤其适合大数据量场景:

// 在Power Query的高级编辑器中,先定义这个映射
citySisterMap = Record.FromTable(
    Table.RenameColumns(Table2, {"City", "Name", "Sister_Cities", "Value"})
)

步骤2:添加自定义列

给Table1添加Custom.Sister_Cities列,表达式如下:

Table.AddColumn(Table1, "Custom.Sister_Cities", each 
    let
        // 拆分当前行的逗号分隔城市为列表
        cityList = Text.Split([Cities], ","),
        // 遍历列表,查找每个城市的友好城市,自动处理城市名前后空格
        sisterList = List.Transform(cityList, (city) => 
            let trimmedCity = Text.Trim(city)
            in
                if Record.HasFields(citySisterMap, trimmedCity) then 
                    citySisterMap[trimmedCity] 
                else 
                    "" // 可根据需求修改:比如写 trimmedCity 表示找不到时保留原城市名
        ),
        // 将结果列表拼接回逗号分隔格式
        result = Text.Combine(sisterList, ",")
    in
        result
)

优势说明

  1. 格式保留:全程无需拆分原Cities列,直接输出与原格式一致的逗号分隔文本
  2. 效率最优:用记录映射替代多次表查询,避免重复遍历Table2,数据量越大优势越明显
  3. 灵活性强:可自定义处理无匹配友好城市的场景(返回空、原城市名等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:49:54