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

如何在单个Excel单元格中获取二维数组最后非空单元格的行索引?

解决Excel单单元格获取最后非空单元格行索引的问题

关于内联数组的判断

你的判断是对的,旧版Excel(非365/2021动态数组版本)不支持直接用{..;..}这种垂直内联数组写法嵌套公式,这种格式仅适用于常量数组,无法直接嵌套单元格公式或函数运算结果。

单单元格实现方案

方案一:兼容多数Excel版本(INDEX+AGGREGATE思路延伸)

利用INDEX提取每行非空单元格的列号,再结合MAX和MATCH定位目标行:

=MATCH(MAX(INDEX(MATCH(FALSE,ISBLANK($A1:$Z1),0),,)),INDEX(MATCH(FALSE,ISBLANK($A1:$Z5),0),,),0)

如果是分号作为参数分隔符的区域设置(如欧版Excel),替换逗号为分号:

=MATCH(MAX(INDEX(MATCH(FALSE;ISBLANK($A1:$Z1);0);;));INDEX(MATCH(FALSE;ISBLANK($A1:$Z5);0);;);0)

原理:

  • INDEX(MATCH(FALSE,ISBLANK($A1:$Z5),0),,) 生成包含每行非空单元格列号的数组(例如{2,5,3,7,1})
  • MAX提取数组中的最大值,即最后一个非空单元格的列号
  • MATCH找到该最大值在数组中的位置,对应目标行索引

方案二:动态数组版本(Excel 365/2021专属)

支持动态数组的Excel版本无需额外包装,写法更简洁:

=MATCH(MAX(MATCH(FALSE,ISBLANK($A1:$Z5),0)),MATCH(FALSE,ISBLANK($A1:$Z5),0),0)

这里MATCH(FALSE,ISBLANK($A1:$Z5),0)会直接返回垂直数组,省去INDEX的包装步骤。

方案三:SUMPRODUCT直接定位

用SUMPRODUCT跳过嵌套MATCH的步骤,直接计算目标行号:

=SUMPRODUCT((MATCH(FALSE,ISBLANK($A1:$Z5),0)=MAX(MATCH(FALSE,ISBLANK($A1:$Z5),0)))*ROW($1:$5))

分号版本:

=SUMPRODUCT((MATCH(FALSE;ISBLANK($A1:$Z5);0)=MAX(MATCH(FALSE;ISBLANK($A1:$Z5);0)))*ROW($1:$5))

原理:匹配列号等于最大值的行,将对应行号相乘后求和,直接得到目标行索引。

内容的提问来源于stack exchange,提问作者Duret-Robert Louis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:22:11