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

如何将Google Sheet按相同字段合并行并拼接唯一数据到同一单元格

Google Sheet 班级参与记录汇总方案

问题1:提取唯一Class ID的实现优化

你当前使用的=UNIQUE(Sheet1!I2:I)已经是Google Sheet原生最简洁的唯一值提取方案,如果需要额外兼容空值过滤、结果排序的场景,可以使用优化版本:

=SORT(UNIQUE(FILTER(Sheet1!I2:I, Sheet1!I2:I<>"")))

各参数作用:

  • FILTER 过滤掉Sheet1 I列的空行,避免返回无效的空唯一值
  • SORT 对提取到的Class ID做升序排序,方便后续查找
    如果不需要排序和空值处理,原有公式完全可用,无性能缺陷。

问题2:按Class ID拼接对应Employee ID

VLOOKUP本身设计仅返回首个匹配结果,无法直接输出所有匹配值数组,推荐两种适配不同场景的实现方案:

方案1:逐行匹配(可读性高,适配中小数据量)

不需要手动下拉,单公式自动溢出所有结果,直接在Sheet2的C2单元格输入:

=BYROW(B2:B, LAMBDA(cid, IF(cid="",, TEXTJOIN(" ", TRUE, FILTER(Sheet1!B2:B, Sheet1!I2:I=cid)))))

逻辑说明:

  • BYROW 遍历B列的每一个Class ID,逐行触发计算
  • FILTER 筛选Sheet1中所有Class ID匹配的Employee ID
  • TEXTJOIN 用空格拼接筛选结果,自动跳过空的Employee ID
  • 外层IF判断如果当前行无Class ID,返回空值,避免输出错误信息

方案2:QUERY分组计算(性能更高,适配大数据量)

如果数据量超过10万行,推荐使用QUERY一步完成去重+拼接,不需要单独在B2单元格写UNIQUE公式,直接在Sheet2的B2单元格输入即可自动溢出B、C两列的所有结果:

=QUERY(Sheet1!B2:I, "SELECT I, GROUP_CONCAT(B, ' ') WHERE I IS NOT NULL GROUP BY I ORDER BY I", 0)

逻辑说明:

  • GROUP BY I 按Class ID分组
  • GROUP_CONCAT(B, ' ') 把同组的Employee ID用空格拼接
  • 自带空值过滤和结果排序,计算效率比逐行遍历的BYROW方案高30%以上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:45:11