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

Google Sheets中类似sum()的字符串拼接聚合函数实现方法问询

Google Sheets 按Name分组合并Team字符串的实现方案

需求说明

需要将Google Sheets中的数据按Name分组,将对应Team列的字符串以逗号分隔合并,实现类似SQL中GROUP BY Name后聚合字符串的效果:

原数据:

NameTeam
AX
BX
AY
BZ
CX
AZ

目标结果:

NameTeam
AX,Y,Z
BX,Z
CX

方法1:UNIQUE + TEXTJOIN 组合(基础版)

  1. 获取唯一Name列表:在空白单元格(如D2)输入
=UNIQUE(A2:A7)
  1. 合并对应Team:在E2输入数组公式,自动匹配所有Name的合并结果
=ARRAYFORMULA(TEXTJOIN(",", TRUE, IF(A2:A7=D2:D, B2:B7, "")))

如果要一次性生成包含表头的完整结果,使用:

={{"Name", "Team"}, UNIQUE(A2:A7), ARRAYFORMULA(TEXTJOIN(",", TRUE, IF(A2:A7=UNIQUE(A2:A7), B2:B7, "")))}

方法2:LET + QUERY + BYROW 组合(简洁高效版)

适合新版Google Sheets(支持LET、LAMBDA函数),一次性生成排序后的完整结果:

=LET(
  rawData, A2:B7,
  uniqueNames, QUERY(rawData, "select Col1 where Col1 is not null group by Col1 order by Col1", 0),
  mergedTeams, BYROW(uniqueNames, LAMBDA(name, TEXTJOIN(",", TRUE, FILTER(INDEX(rawData,,2), INDEX(rawData,,1)=name)))),
  HSTACK(uniqueNames, mergedTeams)
)

额外优化:去重合并的Team值

如果同一个Name对应重复的Team(如A多次出现X),需要去重后再合并,修改mergedTeams部分:

mergedTeams, BYROW(uniqueNames, LAMBDA(name, TEXTJOIN(",", TRUE, UNIQUE(FILTER(INDEX(rawData,,2), INDEX(rawData,,1)=name)))))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:35:15