Google Sheets如何实现单单元格拼接多条匹配门名称数据
Google Sheets 多匹配值拼接方案
现有已知条件
- 源数据存储在表格A、B、C、D四列
- H2单元格已配置可正常运行的公式:
=UNIQUE(filter(C2:D,A2:A<>"")),作用是提取A列非空行对应的C、D列去重值组合,返回结果占H、I两列 - 原J2单元格公式
=ARRAYFORMULA(IF(H2:H=C2:C,B2:B))仅能返回首个匹配的B列值,无法实现同匹配项多值拼接 - 需求:不改动H列现有公式,J列自动匹配每行H+I对应的C、D组合,将所有匹配到的B列门名称用逗号拼接,支持重复值展示
实现步骤
直接清空J2原有内容,输入以下数组公式即可自动溢出所有行结果:
=ARRAYFORMULA( IF(H2:H="",, BYROW(H2:H&"|"&I2:I, LAMBDA(unique_key, TEXTJOIN(",",TRUE, FILTER(B:B, C:C&"|"&D:D=unique_key, A:A<>"" ) ) ) ) ) )
公式说明
- 外层判断
H2:H=""时返回空值,避免无数据行生成无效内容 - 用
|作为临时分隔符拼接H、I列内容生成唯一匹配键,避免单列内容匹配造成的误判 BYROW逐行遍历每个唯一键,筛选原表中C、D列拼接后与唯一键一致、且A列非空的所有B列值TEXTJOIN将筛选到的所有门名称用逗号拼接,第二个参数TRUE表示自动跳过空值- 若需要使用中文逗号分隔,将公式中
TEXTJOIN的第一个参数","替换为","即可
内容的提问来源于stack exchange,提问作者Jerome
相关产品推荐
相关产品推荐

