如何在Google Sheets中用ARRAYFORMULA按条件分组合并文本?
在Google Sheets中用ARRAYFORMULA实现分组文本合并
完全可以实现,以下是两种可行的公式方案:
方案1(支持LAMBDA函数的新版Google Sheets)
假设你的文本列是A列(Col1),分组列是B列(Col2),在结果列的第一个单元格(比如C2)输入以下公式,即可批量生成所有分组的合并结果,无需下拉:
=ARRAYFORMULA(BYROW(B2:B, LAMBDA(group, IF(group="", "", TEXTJOIN(", ", TRUE, FILTER(A2:A, B2:B=group))))))
公式说明:
BYROW(B2:B, LAMBDA(group, ...)):逐个遍历B列的分组值IF(group="", "", ...):跳过空分组的行TEXTJOIN(", ", TRUE, FILTER(A2:A, B2:B=group)):筛选出当前分组对应的所有A列文本,用「逗号+空格」合并,自动忽略空值
方案2(兼容旧版Google Sheets)
如果你的Google Sheets版本不支持LAMBDA函数,可以用以下公式:
=ARRAYFORMULA(IFERROR(VLOOKUP(B2:B, {UNIQUE(B2:B), TEXTJOIN(", ", TRUE, IF(B2:B=TRANSPOSE(UNIQUE(B2:B)), A2:A&", ", ""))}, 2, FALSE)))
公式说明:
UNIQUE(B2:B):提取B列中所有不重复的分组值TEXTJOIN(...):针对每个唯一分组,合并对应的A列文本VLOOKUP(B2:B, ...):将每行的分组值匹配到对应的合并文本,IFERROR用来处理可能的匹配错误
以上两种方案都能实现同一分组的文本自动合并,且全程通过ARRAYFORMULA批量生成结果,不需要手动下拉公式。
内容的提问来源于stack exchange,提问作者helloworld
相关产品推荐
相关产品推荐

