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

求助:在Excel中实现Oracle LISTAGG等价的按键合并功能

Excel 实现类似Oracle LISTAGG 的分组拼接功能

源数据

Col1Col2
key1123
key1234
key1345
key2abc
key2pqr
key3xyz

预期结果

Col1Concatvalues
key1123;234;345
key2abc;pqr
key3xyz

简化实现方法

方法1:Excel 365/2021+ 动态数组版(最简便)

  1. 提取唯一键:在空白单元格(如D2)输入公式:

    =UNIQUE(A2:A7)
    

    公式会自动溢出生成所有唯一的Col1值(key1、key2、key3)。

  2. 批量拼接对应值:在E2单元格输入公式,直接生成所有拼接结果:

    =BYROW(UNIQUE(A2:A7), LAMBDA(x, TEXTJOIN(";", TRUE, FILTER(B2:B7, A2:A7=x))))
    

    逻辑说明:

    • UNIQUE提取唯一分组键
    • BYROW遍历每个唯一键,执行拼接逻辑
    • FILTER筛选出当前键对应的Col2值
    • TEXTJOIN用分号;拼接筛选结果,TRUE参数忽略空值

方法2:旧版Excel(无动态数组)

  1. 手动提取唯一键:通过「数据」选项卡的「高级筛选」提取Col1的唯一值,放到D列。
  2. 逐个拼接值:在E2单元格输入数组公式,按Ctrl+Shift+Enter确认,然后下拉填充:
    =TEXTJOIN(";", TRUE, IF(A$2:A$7=D2, B$2:B$7, ""))
    
    逻辑说明:IF函数匹配当前键对应的Col2值,TEXTJOIN完成拼接,数组公式会遍历所有数据行。

注:你的预期结果中key1的拼接值写为123;246;345,但源数据对应是123;234;345,若需对Col2值做计算(如234→246),可在公式中对B列数据做对应修改即可。

内容的提问来源于stack exchange,提问作者Ra-V

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:45:33