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

Google Sheets:返回匹配值第N个实例并添加列标题前缀

Google Sheets 匹配第N个实例并添加列首行前缀的公式方案

核心需求拆解

  • 从Task List表的A2:A100区域中,找到与A$1匹配的第N个实例
  • 返回该实例对应B2:H100区域的内容,每个列内容前添加对应列首行(B1:H1的文本)作为前缀
  • 所有内容用换行符分隔

通用公式(支持第N个实例)

将公式中的n替换为你需要的实例序号(1、2、3...)即可:

=TEXTJOIN(CHAR(10), TRUE, ARRAYFORMULA('Task List'!$B$1:$H$1&": "&INDEX('Task List'!$B$2:$H$100, SMALL(IF('Task List'!$A$2:$A$100=A$1, ROW('Task List'!$A$2:$A$100)-ROW('Task List'!$A$2)+1), n), )))

公式各部分说明

  • IF('Task List'!$A$2:$A$100=A$1, ROW('Task List'!$A$2:$A$100)-ROW('Task List'!$A$2)+1):筛选出所有匹配A$1的行,返回其在B2:H100区域内的相对行号(从1开始计数)
  • SMALL(..., n):从筛选出的相对行号中,提取第n个匹配项的行号
  • ARRAYFORMULA('Task List'!$B$1:$H$1&": "&INDEX(...)):自动将对应列的首行文本与该行单元格内容拼接为「列标题: 内容」的格式
  • TEXTJOIN(CHAR(10), TRUE, ...):用换行符连接所有拼接后的内容,自动忽略空值

实例化公式示例

返回第1个匹配实例

=TEXTJOIN(CHAR(10), TRUE, ARRAYFORMULA('Task List'!$B$1:$H$1&": "&INDEX('Task List'!$B$2:$H$100, SMALL(IF('Task List'!$A$2:$A$100=A$1, ROW('Task List'!$A$2:$A$100)-ROW('Task List'!$A$2)+1), 1), )))

返回第2个匹配实例

=TEXTJOIN(CHAR(10), TRUE, ARRAYFORMULA('Task List'!$B$1:$H$1&": "&INDEX('Task List'!$B$2:$H$100, SMALL(IF('Task List'!$A$2:$A$100=A$1, ROW('Task List'!$A$2:$A$100)-ROW('Task List'!$A$2)+1), 2), )))

返回第3个匹配实例

=TEXTJOIN(CHAR(10), TRUE, ARRAYFORMULA('Task List'!$B$1:$H$1&": "&INDEX('Task List'!$B$2:$H$100, SMALL(IF('Task List'!$A$2:$A$100=A$1, ROW('Task List'!$A$2:$A$100)-ROW('Task List'!$A$2)+1), 3), )))

错误处理优化

如果目标序号的匹配实例不存在,公式会返回#NUM!错误,可以用IFERROR包裹公式,返回空值或自定义提示:

=IFERROR(TEXTJOIN(CHAR(10), TRUE, ARRAYFORMULA('Task List'!$B$1:$H$1&": "&INDEX('Task List'!$B$2:$H$100, SMALL(IF('Task List'!$A$2:$A$100=A$1, ROW('Task List'!$A$2:$A$100)-ROW('Task List'!$A$2)+1), n), ))), "无匹配项")

内容的提问来源于stack exchange,提问作者David J. Myers

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 17:10:28