You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel公式求助:获取最后一个大于0值的单元格位置序号

Excel公式求助:获取最后一个大于0值的单元格位置序号

嘿,这个需求我之前也碰到过,给你几个实用的公式方案,分情况来看:


适用于Excel 365/2021(支持动态数组)

如果你用的是新版本Excel,推荐用XLOOKUP公式,写法更直观,不需要按数组快捷键:

=XLOOKUP(TRUE,A1:J1>0,COLUMN(A1:J1)-COLUMN(A1)+1,,0,-1)

解释

  • XLOOKUP(TRUE,A1:J1>0,...) 用来匹配“单元格值大于0”的条件
  • 最后一个参数-1表示从后往前查找,刚好定位到最后一个满足条件的单元格
  • COLUMN(A1:J1)-COLUMN(A1)+1 是计算单元格在当前区域内的相对位置(从1开始计数),如果需要绝对列号,直接写COLUMN(A1:J1)就行

兼容旧版Excel(无动态数组支持)

要是你用的是旧版本Excel,用数组公式就能解决,输入完公式后要按Ctrl+Shift+Enter确认(不要直接回车):

=MAX(IF(A1:J1>0,COLUMN(A1:J1)-COLUMN(A1)+1))

解释

  • IF(A1:J1>0, 位置序号) 会把所有大于0的单元格替换成对应的位置,其余返回FALSE
  • MAX函数会自动忽略FALSE,取最大的那个位置序号,也就是最后一个大于0的单元格位置

特殊情况处理

如果你的目标区域里没有任何大于0的数值,上面的公式会返回#N/A,可以加个IFERROR来优化:

=IFERROR(XLOOKUP(TRUE,A1:J1>0,COLUMN(A1:J1)-COLUMN(A1)+1,,0,-1),0)

这样没找到符合条件的单元格时,会返回0,结果更友好。

用你的例子测试:把A1到J1设为0,1,7,0,0,1,3,4,0,0,不管用哪个公式,都会返回8,完全符合你的需求~

备注:内容来源于stack exchange,提问作者niklas

火山引擎 最新活动