You need to enable JavaScript to run this app. Google Sheets如何输出/引用指定月份范围内最底部单元格的值
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets如何输出/引用指定月份范围内最底部单元格的值

Google Sheets按月份/年份筛选取时间段最后一个单元格值解决方案

原公式失效原因

  1. 仅按月份筛选的公式错误点:你使用ROWS(FILTER(History!Q2500:Q, NOT(ISBLANK(History!Q2500:Q))))计算的是整个Q列从2500行开始的所有非空单元格总数,并非指定月份筛选结果的行数。7月作为最近月份,筛选结果的最后一行刚好是全列最后一个非空行,因此公式碰巧生效,切换到更早月份时筛选结果长度小于这个行数,INDEX索引越界就会报错。
  2. 加年份筛选的公式错误点:MATCH(143^143,HISTORY!$B:B)是匹配整个B列的最后一个数值位置,和前面按年月筛选出的结果数组没有关联,索引完全不对应,因此无法正常运行。同时你原来的year($B$2&1)写法存在逻辑问题,拼接出来的字符串无法正确转换为对应年份的日期。

修正方案

仅按月份筛选版本

逻辑:先筛选出指定月份的非空值,按日期倒序排序后直接取第一个结果,无需计算行数,兼容性更强。

=INDEX(SORT(FILTER(History!Q2500:Q, 
  MONTH(History!A2500:A)=MONTH(C25&1), 
  NOT(ISBLANK(History!Q2500:Q))
), History!A2500:A, FALSE), 1)

替换C25为你存放月份缩写(JUN/JUL等)的单元格即可直接使用。

支持年份+月份筛选版本

假设$B$2存放纯年份数字(如2024),B4存放月份缩写,公式如下:

=INDEX(SORT(FILTER(History!B:B, 
  MONTH(History!A:A)=MONTH(B4&1), 
  YEAR(History!A:A)=$B$2, 
  NOT(ISBLANK(History!B:B))
), History!A:A, FALSE), 1)

如果你的日期列不是按升序排列,可以把排序依据改为行号,确保取到的是符合条件的最后一行数据:

=INDEX(SORT(FILTER(History!B:B, 
  MONTH(History!A:A)=MONTH(B4&1), 
  YEAR(History!A:A)=$B$2, 
  NOT(ISBLANK(History!B:B))
), ROW(History!A:A), FALSE), 1)

额外优化建议

可以用IFERROR包裹公式,避免对应时间段无数据时返回错误值:

=IFERROR(INDEX(SORT(FILTER(History!Q2500:Q, 
  MONTH(History!A2500:A)=MONTH(C25&1), 
  NOT(ISBLANK(History!Q2500:Q))
), History!A2500:A, FALSE), 1), "无匹配数据")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 04:42:02