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

Excel 2000:按指定年份查找对应日期列最后一行的余额值及单元格位置

Excel 2000:按指定年份查找对应日期列最后一行的余额值及单元格位置

嘿,我太懂你在Excel 2000里的难处了——老版本没那些花里胡哨的新函数,但咱们用现有工具完全能搞定这两个需求,不用愁!


1. 查找指定年份最后一个日期对应的余额值

直接用这个公式就行:

=LOOKUP(2,1/(YEAR(A23:A1000)=C1),B23:B1000)

我给你拆解下这个公式的逻辑,你就明白为啥它能成:

  • YEAR(A23:A1000)=C1:逐个检查A23到A1000的日期,提取年份后和C1里的目标年份对比,生成一堆TRUE(匹配)和FALSE(不匹配)
  • 1/(...):把TRUE转成1,FALSE转成#DIV/0!错误值,这样就得到一个只有1和错误的数组
  • LOOKUP(2, 这个数组, B23:B1000):LOOKUP会自动忽略错误值,而且2比所有的1都大,所以它会定位到数组里最后一个1的位置,然后返回对应B列的余额值——刚好就是你要的“最后一个匹配年份的余额”

要是输入公式后没出正确结果,记得按Ctrl+Shift+Enter触发数组计算(Excel 2000里这种数组操作得手动按这个组合键才行)。


2. 查找该余额对应的单元格位置

分两种情况,你可以按需选:

先拿最后匹配行的行号

用这个数组公式(同样要按Ctrl+Shift+Enter):

=MAX(IF(YEAR(A23:A1000)=C1,ROW(A23:A1000),0))

逻辑很简单:IF函数会把年份匹配的单元格行号保留下来,不匹配的就返回0,MAX函数一抓就得到最大的那个行号——也就是最后一个匹配日期所在的行。

直接获取完整的单元格地址(比如$B$567)

把上面的行号和ADDRESS函数结合就行,还是数组公式(按Ctrl+Shift+Enter):

=ADDRESS(MAX(IF(YEAR(A23:A1000)=C1,ROW(A23:A1000),0)),COLUMN(B:B))

这里COLUMN(B:B)是获取B列的列号(也就是2),ADDRESS会把行号和列号拼成标准的单元格地址格式,直接就能看到位置啦。


小提醒:确保A列的单元格是正经的日期格式,不是文本哦,不然YEAR函数会出错。要是不小心是文本的话,先把它转成日期格式再用公式~

备注:内容来源于stack exchange,提问作者Art

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:38:11