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

如何获取Google Sheets中包含公式的列的最后一个值?

问题根源

你原来的公式存在三个核心问题导致始终返回空值:

  • 括号位置错误:你把统计筛选后结果数量的AANTALARG(国际版Excel对应COUNTA函数)放在了FILTER函数的第三个参数(无匹配结果时的返回值)位置,而非INDEX函数的行号参数位置,导致取值逻辑完全失效
  • 引号格式错误:判断空值时使用了中文格式的””,Excel无法识别为标准的空文本标识
  • IF公式返回的零长度空文本""本身可以被<>""条件正常识别,不是本次问题的核心诱因

解决方案

方案1:Excel 365/2021 极简写法(推荐)

直接用XLOOKUP倒序匹配最后一个非空值,公式简洁稳定性高:

=XLOOKUP("*";INDIRECT(A2&"!F4:F");INDIRECT(A2&"!F4:F");;2;-1)

参数说明:

  • 通配符"*"匹配任意文本、数字内容
  • 最后一位参数-1指定从列末尾倒序查找,第一个匹配到的非空值就是目标列最后一个有效值
  • 第五位参数2启用通配符匹配规则

方案2:原逻辑修正版

如果你需要沿用原来的INDEX+FILTER的实现逻辑,调整括号位置和符号格式即可生效:

=INDEX(FILTER(INDIRECT(A2&"!F4:F");INDIRECT(A2&"!F4:F")<>"");AANTALARG(FILTER(INDIRECT(A2&"!F4:F");INDIRECT(A2&"!F4:F")<>"")))

核心改动:将AANTALARG统计逻辑移至INDEX的第二个参数位置,作为读取筛选结果最后一行的行号,同时将中文引号替换为英文引号。

方案3:旧版Excel兼容写法

如果你的Excel版本不支持动态数组、无FILTER函数,可使用无需数组回车的LOOKUP写法:

=LOOKUP(2;1/(INDIRECT(A2&"!F4:F")<>"");INDIRECT(A2&"!F4:F"))

该写法会自动跳过所有空值(包括IF公式返回的空文本),直接返回列范围内最后一个非空有效值。


注意事项

如果A2存储的工作表名包含空格、特殊字符,需要给INDIRECT的参数加单引号包裹,写法改为INDIRECT("'"&A2&"'!F4:F"),避免读取工作表失败。
如果目标F列存在#N/A、#VALUE!等错误值,可在筛选条件中额外添加ISERROR(范围)=FALSE逻辑过滤错误值,避免公式报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:15:08