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

如何在单元格区域中找到最后一个非空单元格(兼顾行与列)

解决Google Sheets二维区域最后一个非空单元格取值问题

问题根源

你之前使用的公式 =INDEX(B2:H5,COUNTA(B2:B),COUNTA(B:H)) 无法满足需求,问题出在:

  • COUNTA(B2:B) 仅统计B列(周一列)的非空行数,不能定位整个区域中最后一行有数据的位置
  • COUNTA(B:H) 统计的是B-H区域所有非空单元格的总数,而非最后一个非空单元格的列索引,导致INDEX无法正确匹配目标单元格

可行解决方案

方法1:FLATTEN + LOOKUP(最简实现)

直接将二维区域转为一维数组,匹配最后一个数值型非空值:

=LOOKUP(9^9,FLATTEN(B2:H5))

逻辑说明:

  • FLATTEN(B2:H5) 把B2:H5的所有单元格按行优先顺序转成纵向一维数组
  • LOOKUP(9^9, ...) 用极大值匹配数组中最后一个数值型单元格(体重均为数值,完全适配)
  • 新增数据(同一行后续列/下一行任意列)时,公式会自动更新结果

方法2:INDEX + MAX + IF(精确行/列定位)

如果需要明确获取最后一个非空单元格的行、列位置,可使用数组公式:

=INDEX(B2:H5,MAX(IF(B2:H5<>"",ROW(B2:H5)-ROW(B2)+1)),MAX(IF(B2:H5<>"",COLUMN(B2:H5)-COLUMN(B2)+1)))

逻辑说明:

  • IF(B2:H5<>"",ROW(B2:H5)-ROW(B2)+1) 遍历区域,为非空单元格返回其在B2:H5内的行索引(B2对应行1,B3对应行2)
  • MAX(...) 提取最大行索引,即最后一个非空单元格的区域行位置
  • 列部分同理,通过COLUMN函数获取区域内列索引,取最大值得到目标列位置
  • 最终INDEX通过行、列索引定位到目标值

效果验证

当前表格最后一个值为182.7,两个公式均会返回该值;在周四列新增数值后,J2会自动更新为新值;下周切换到下一行输入数据时,也能正确返回最新体重。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 04:50:12