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

Excel 2019:获取矩阵最小行中首个1所在列的替代公式

解决Excel 2019大区域下找最小行首个1所在列的问题

替代公式1:数组公式(需按Ctrl+Shift+Enter输入)

=MATCH(1,INDEX(MyRange,MIN(IF(MyRange=1,ROW(MyRange)-ROW(INDEX(MyRange,1,1))+1,"")),0),0)+COLUMN(INDEX(MyRange,1,1))-1

公式说明:

  • ROW(INDEX(MyRange,1,1)) 获取区域首行行号,以此计算每个单元格在区域内的相对行号
  • IF(MyRange=1,ROW(MyRange)-ROW(INDEX(MyRange,1,1))+1,"") 筛选出所有值为1的单元格对应的相对行号,非1单元格返回空文本
  • MIN(...) 从筛选结果中取最小值,得到存在1的最小行(区域内相对行)
  • INDEX(MyRange,相对行号,0) 提取该行的所有列数据
  • MATCH(1,提取的行数据,0) 找到该行中首个1的相对列号
  • 最后加上区域首列列号减1,转换为绝对列号(若只需区域内相对列号,可去掉+COLUMN(INDEX(MyRange,1,1))-1部分)

替代公式2:无需数组输入(用AGGREGATE函数)

=MATCH(1,INDEX(MyRange,AGGREGATE(15,6,(ROW(MyRange)-ROW(INDEX(MyRange,1,1))+1)/(MyRange=1),1),0),0)+COLUMN(INDEX(MyRange,1,1))-1

公式说明:

  • AGGREGATE(15,6,(ROW(MyRange)-ROW(INDEX(MyRange,1,1))+1)/(MyRange=1),1) 利用AGGREGATE忽略错误值的特性,直接提取存在1的最小相对行号(无需数组输入)
  • 后续步骤和公式1一致,提取目标行并找到首个1的列号,转换为绝对列号

示例验证(以A2:G5为例)

  • 区域中存在1的最小行是第3行(对应区域内相对行2)
  • 提取该行(A3:G3)后,MATCH找到首个1在第5列(E列),加上首列列号1减1,最终结果为5,符合需求

这两个公式都避开了TEXTJOIN的字符数限制,可轻松处理包含10000+元素的大区域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:53:18