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

Excel:查找指定区域内-1的所有实例并返回对应首行值

提取表格中值为-1的单元格对应A列与首行值的公式方案

已实现的A列值提取

你现用的公式可以正确返回对应-1单元格的A列内容:

=IFERROR(INDEX($A$2:$A$8,SMALL(IF($B$2:$G$8=-1,ROW($B$2:$G$8)-1),ROW(1:1))),"")

核心逻辑是用IF定位所有值为-1的单元格行号,SMALL按顺序提取行号偏移量,最后通过INDEX匹配A列数据,IFERROR处理无结果的情况。

提取对应首行值的公式

要匹配-1单元格对应的首行(第1行)标题,用列号匹配逻辑即可,公式如下:

=IFERROR(INDEX($B$1:$G$1,SMALL(IF($B$2:$G$8=-1,COLUMN($B$2:$G$8)-COLUMN($B$1)+1),ROW(1:1))),"")

公式拆解:

  • IF($B$2:$G$8=-1,COLUMN($B$2:$G$8)-COLUMN($B$1)+1):定位值为-1的单元格,计算其在首行区域(B1:G1)内的列位置(避免硬编码减1,适配不同起始列)
  • SMALL(...,ROW(1:1)):按顺序提取符合条件的列位置
  • INDEX($B$1:$G$1,...):根据列位置匹配首行标题
  • IFERROR:无更多结果时返回空值

动态数组简化方案(Excel 365/2021)

如果你的Excel支持动态数组,无需下拉填充,可一次性生成所有结果:

提取所有A列对应值:

=FILTER($A$2:$A$8,$B$2:$G$8=-1,"")

提取所有首行对应值:

=FILTER(TRANSPOSE($B$1:$G$1),TRANSPOSE($B$2:$G$8)=-1,"")

或者直接生成两列结果:

=HSTACK(TOCOL(IF($B$2:$G$8=-1,$A$2:$A$8,""),3),TOCOL(IF($B$2:$G$8=-1,$B$1:$G$1,""),3))

这个公式会自动遍历表格,把所有值为-1的单元格对应的A列值和首行标题整理成两列。

示例输出

假设原始表格:

AQ1Q2Q3
产品A10-115
产品B-1205
产品C812-1

最终结果会是:

A列值首行值
产品AQ2
产品BQ1
产品CQ3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:42:51