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

如何使用ARRAYFORMULA按条件跨列合并单元格?

问题

我需要按条件合并依赖其他单元格的内容,用逗号分隔——当A2:A区域有重复值时,合并对应的B2:B区域所有单元格内容。而且单元格内容没法预先确定,不能在C或D列指定具体内容当条件。

原始表格:

Column AColumn B
JhonOne
JhonTwo
MarcosZero
MonicaTwo

想要的结果:

Column CColumn D
JhonOne, Two
MarcosZero
MonicaTwo

我试着改了之前的参考公式:
原参考公式:

=ARRAYFORMULA(JOIN(", ",FILTER(B3:P3,NOT(B3:P3=""))))

改成了下面这个,但运行报错:

=ARRAYFORMULA((SE(A2:A=A2:A,B2:B & B2:B))
解决方案

方法1:分两步生成结果

  1. 先在C2单元格获取A列的唯一值:
=UNIQUE(A2:A)
  1. 再在D2单元格输入数组公式,自动合并对应B列的内容:
=ARRAYFORMULA(TEXTJOIN(", ", TRUE, FILTER(B$2:B, A$2:A=C2:C)))

这个公式会针对C列的每个唯一值,筛选A列里匹配的行,然后用逗号把对应的B列内容连起来。

方法2:一步生成完整两列结果

如果想在一个单元格直接输出所有结果(比如在C2输入),用这个QUERY公式:

=ARRAYFORMULA(
  QUERY(
    {A2:A, B2:B},
    "select Col1, GROUP_CONCAT(Col2, ', ') where Col1 is not null group by Col1",
    0
  )
)

它用QUERY的分组合并功能,直接把A列相同值对应的B列内容拼起来,一次性生成你要的两列。

你之前公式出错的原因

  1. SE是西语版的IF函数,在中文/英文环境的表格里得用IF;
  2. A2:A=A2:A这个条件永远成立,根本起不到分组筛选的作用;
  3. 不仅缺了闭合括号,还没用到能合并多个单元格的函数(比如TEXTJOIN),只是把同一个单元格内容重复拼接,自然达不到合并不同行的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:57:15