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

如何在Google Sheets中合并多行列数组中的重复值

嘿,这个需求确实可以用Excel函数搞定,而且我给你准备了两种实用方案,适配不同版本的Excel:

方法1:Excel 365/2021 动态数组解法(最简洁)

如果你用的是支持动态数组的新版本Excel,直接用这个公式就行,不需要复杂的数组操作:

=TEXTJOIN("-",TRUE,IF(ISNUMBER(MATCH(A1:F1,A2:F2,0)),A1:F1,""))

公式拆解:

  • MATCH(A1:F1,A2:F2,0):逐一检查第一行的每个值在第二行中是否存在,存在返回对应列号,不存在返回错误值
  • ISNUMBER(...):把上面的结果转成布尔值(存在=TRUE,不存在=FALSE)
  • IF(...):只保留第一行中在第二行存在的值,其余留空
  • TEXTJOIN("-",TRUE,...):用-作为分隔符,把所有非空的匹配值连接起来

直接回车就能得到你要的Mice-Frog,是不是很省心?

方法2:兼容旧版Excel(基于INDEX/MATCH的数组公式)

如果你的Excel版本不支持动态数组,那就用INDEX/MATCH配合数组公式来实现:

=TEXTJOIN("-",TRUE,INDEX(A1:F1,,SMALL(IF(ISNUMBER(MATCH(A1:F1,A2:F2,0)),COLUMN(A1:F1)-COLUMN(A1)+1,""),ROW(INDIRECT("1:"&SUMPRODUCT(--ISNUMBER(MATCH(A1:F1,A2:F2,0))))))))

注意:

输入完公式后,**必须按Ctrl+Shift+Enter**触发数组公式(旧版Excel的要求),不能直接回车。

公式拆解:

  • SUMPRODUCT(--ISNUMBER(MATCH(...))):先统计出两行之间匹配值的数量
  • ROW(INDIRECT("1:"&数量)):生成从1到匹配数量的序列,用来逐个提取匹配值
  • SMALL(IF(...), 序列):提取所有匹配值所在的列号
  • INDEX(A1:F1,,列号):根据列号取出第一行对应的匹配值
  • 最后用TEXTJOIN把这些值用-连接起来

如果你的旧版Excel连TEXTJOIN都没有,也可以用&手动拼接,但需要判断匹配项的数量,相对麻烦一点,优先推荐上面的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:30:59