Excel如何获取指定列最后一行值且新增数据时自动更新
实现方法
通用兼容方案(支持所有版本Excel、WPS表格、Google Sheets)
直接在D1单元格输入以下公式即可:=LOOKUP(1,0/(B:B<>""),B:B)
- 公式原理:
B:B<>""会判断B列每个单元格是否非空,返回TRUE/FALSE数组;用0除以该数组后,非空单元格对应结果为0,空单元格对应结果为错误值;LOOKUP函数搜索时会自动忽略错误值,找到最后一个匹配1的位置,返回对应B列的内容。 - 优势:即使B列中间存在空白单元格,也能正确返回最后一个非空值,不需要手动调整数据范围。
新版工具简化方案(支持Excel 365、新版WPS、Google Sheets)
可以用效率更高的XLOOKUP实现:=XLOOKUP(TRUE,B:B<>"",B:B,,-1,-1)
- 公式原理:最后两个参数分别指定从后往前搜索、匹配模式为精确匹配,直接返回B列从下往上数第一个非空值。
数值列专用方案(仅适用于B列全为数值、且数据连续无空值的场景)
如果B列只有数值、没有文本、也没有中间空白行,可以用更简单的公式:=INDEX(B:B,COUNTA(B:B))
注意:如果B列第一行是表头不需要统计,只需要把公式里的
B:B替换为B2:B1048576(Excel/WPS)或者B2:B100000(Google Sheets)即可,新增数据时公式会自动识别最后一行的值。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

