Google Sheets公式需求:获取指定日期范围内列J的最后值
解决Excel动态获取指定日期范围最后一行对应列值的问题
适用Excel 365/2021(支持动态数组)的公式
在Summary工作表的A1单元格输入以下公式:
=XLOOKUP(TRUE, (Final Tracker!B:B>=Summary!G8)*(Final Tracker!B:B<=Summary!G9), Final Tracker!J:J, "", 0, -1)
- 公式逻辑:利用
XLOOKUP的反向查找特性(最后一个参数-1),从Final Tracker的B列末尾往前找第一个满足「日期在Summary!G8到G9之间」的行,返回对应J列的值 - 优势:整列引用会自动识别新增的数据,无需手动调整范围
兼容旧版Excel的公式
如果你的Excel版本不支持XLOOKUP,可以使用INDEX+LOOKUP组合公式:
=INDEX(Final Tracker!J:J, LOOKUP(2, 1/((Final Tracker!B:B>=Summary!G8)*(Final Tracker!B:B<=Summary!G9)), ROW(Final Tracker!B:B)))
- 公式逻辑:
1/((条件1)*(条件2))会将符合日期范围的行转换为1,不符合的行返回错误值;LOOKUP(2, 数组)会定位到最后一个非错误值的行号,再通过INDEX提取J列对应值
关键注意事项
- 确保
Final Tracker的B列是标准日期格式,如果是文本格式,日期范围判断会失效 - 若日期范围内无匹配数据,公式会返回空值(XLOOKUP)或错误值(旧版公式),可添加
IFERROR包装处理,例如:=IFERROR(XLOOKUP(TRUE, (Final Tracker!B:B>=Summary!G8)*(Final Tracker!B:B<=Summary!G9), Final Tracker!J:J, "", 0, -1), "无匹配数据")
内容的提问来源于stack exchange,提问作者Sweepster
相关产品推荐
相关产品推荐

