如何在Excel中判断某日期是否为起始日期后的第1/2/3年
解决Excel日期年份判断的闰年问题
直接用(Today - Start_date)/365确实会因为闰年的2月29日导致年份计算偏差,以下是两种精准的解决方案,完全规避闰年影响:
方案1:按精确周年日期判断
这个方案严格匹配起始日期的月日,比如2020年2月29日的1周年会自动调整为2021年3月1日(因为2021年2月没有29日),公式如下:
=IFS( B2 < A2, "未开始", B2 < DATE(YEAR(A2)+1, MONTH(A2), DAY(A2)), "第1年", B2 < DATE(YEAR(A2)+2, MONTH(A2), DAY(A2)), "第2年", B2 < DATE(YEAR(A2)+3, MONTH(A2), DAY(A2)), "第3年", TRUE, "超过3年" )
- 说明:A2为起始日期(Start_date),B2为待判断日期(Today);如果用当前系统日期,直接把B2替换成
TODAY()即可。
方案2:按12个月周期判断
如果希望以“满12个月”为一个周期(比如2020年2月29日的12个月后是2021年2月28日),推荐用EDATE函数,更符合日常“周年”的认知:
=IFS( B2 < A2, "未开始", B2 < EDATE(A2, 12), "第1年", B2 < EDATE(A2, 24), "第2年", B2 < EDATE(A2, 36), "第3年", TRUE, "超过3年" )
- 说明:
EDATE(A2,12)表示A2日期往后推12个月,自动处理闰年的月末日期问题,无需手动调整。
简化版公式(仅返回1-3年区间)
如果只需要返回对应的年份区间,不需要额外提示,可以用更简洁的写法:
=CHOOSE(MIN(DATEDIF(A2,B2,"Y")+1,3),"第1年","第2年","第3年")
- 说明:
DATEDIF(A2,B2,"Y")直接返回两个日期的完整年数,+1后匹配对应的年份区间,MIN(...,3)确保超过3年时仍返回“第3年”。
内容的提问来源于stack exchange,提问作者navafolk
相关产品推荐
相关产品推荐

