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

如何快速在Excel数组中匹配指定值并提取对应上方单元格文本合并?

快速提取Project行中Orientation对应的上方内容并合并字符串

针对Excel 365/2021(支持动态数组)

直接用以下公式,无需手动逐个指定Project行:

=TEXTJOIN(", ", TRUE, IF(
    (ISNUMBER(MATCH(ROW(C4:G53), SEQUENCE(ROUNDUP((52-7)/5+1,0),1,7,5), 0))
    * (C4:G53="Orientation")),
    INDEX(C4:G53, ROW(C4:G53)-ROW(C4)+1-3, COLUMN(C4:G53)-COLUMN(C4)+1),
    ""
))

公式拆解:

  • SEQUENCE(ROUNDUP((52-7)/5+1,0),1,7,5):自动生成所有Project行的行号(从7开始,步长5,到52为止),后续若Project行范围变化,只需调整括号内的起止行号(7和52)即可。
  • ISNUMBER(MATCH(...)):判断当前单元格是否处于Project行内。
  • *(C4:G53="Orientation"):同时筛选出内容为“Orientation”的单元格。
  • INDEX(...):提取符合条件单元格向上3行的内容,用INDEX而非OFFSET避免易失性问题。
  • TEXTJOIN:将所有提取到的内容用, 分隔合并成字符串,自动忽略空值。

针对旧版Excel(不支持动态数组)

按Ctrl+Shift+Enter输入数组公式:

=TEXTJOIN(", ", TRUE, IF(
    (ISNUMBER(MATCH(ROW(C4:G53), {7,12,17,22,27,32,37,42,47,52}, 0))
    * (C4:G53="Orientation")),
    INDEX(C4:G53, ROW(C4:G53)-ROW(C4)+1-3, COLUMN(C4:G53)-COLUMN(C4)+1),
    ""
))

也可以把Project行号做成命名范围(比如命名为ProjectRows,值设为{7,12,17,22,27,32,37,42,47,52}),让公式更简洁易维护:

=TEXTJOIN(", ", TRUE, IF(
    (ISNUMBER(MATCH(ROW(C4:G53), ProjectRows, 0))
    * (C4:G53="Orientation")),
    INDEX(C4:G53, ROW(C4:G53)-ROW(C4)+1-3, COLUMN(C4:G53)-COLUMN(C4)+1),
    ""
))

跨工作表使用

只需将区域引用加上工作表名称前缀,比如目标数据在Sheet2中,公式改为:

=TEXTJOIN(", ", TRUE, IF(
    (ISNUMBER(MATCH(ROW(Sheet2!C4:G53), SEQUENCE(ROUNDUP((52-7)/5+1,0),1,7,5), 0))
    * (Sheet2!C4:G53="Orientation")),
    INDEX(Sheet2!C4:G53, ROW(Sheet2!C4:G53)-ROW(Sheet2!C4)+1-3, COLUMN(Sheet2!C4:G53)-COLUMN(Sheet2!C4)+1),
    ""
))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:47:37