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

如何在Google Sheets中按条件合并(JOIN)记录?

Google Sheets 实现同县市政机构合并(类JOINIF功能)

你的表格数据(A列=县名,B列=市政机构)如下:

Alameda | Rowan City Council
Alameda | Rowan Mayor
Alameda | Chester School Board
Jones | Fillips School Board
Jones | Smith School Board
Carol | Apple City Council
Carol | Pear City Council

你之前尝试的公式无效,核心问题是JOIN函数不支持条件筛选逻辑,直接嵌套IF会把全表符合条件的结果一次性合并,而非针对每行的县名单独计算。


一、实现每行对应县的机构合并(匹配你的期望输出)

在C2单元格输入以下公式,自动覆盖所有行:

=BYROW(A2:A, LAMBDA(x, IF(x="", "", TEXTJOIN(", ", TRUE, FILTER(B2:B, A2:A=x)))))

说明:

  • BYROW(A2:A, LAMBDA(x, ...)):遍历A列每个单元格(变量x为当前行县名)
  • FILTER(B2:B, A2:A=x):筛选出当前县名下的所有机构
  • TEXTJOIN(", ", TRUE, ...):用逗号分隔合并结果,TRUE用于忽略空值

若你的Google Sheets版本不支持LAMBDA,改用数组公式(输入后按Ctrl+Shift+Enter):

=ARRAYFORMULA(IF(A2:A="", "", TEXTJOIN(", ", TRUE, IF(A2:A=TRANSPOSE(A2:A), B2:B, ""))))

二、实现最终目标:去重后每个县一行的合并列表

用QUERY函数一步完成分组、合并、去重,在空白单元格(如E1)输入:

=QUERY(A2:B, "SELECT A, GROUP_CONCAT(B, ', ') WHERE A != '' GROUP BY A", 0)

说明:

  • SELECT A, GROUP_CONCAT(B, ', '):提取县名并合并对应机构
  • WHERE A != '':过滤空行
  • GROUP BY A:按县名自动去重分组

也可以分两步操作:

  1. 获取唯一县名:在E2输入 =UNIQUE(A2:A)
  2. 合并对应机构:在F2输入 =BYROW(E2:E, LAMBDA(x, TEXTJOIN(", ", TRUE, FILTER(B2:B, A2:A=x))))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:01:20