Excel里搜不到的函数:DATEDIF,算工龄、算年龄全靠它
- 2026-11-10 11:00:10
Excel里搜不到的函数:DATEDIF,算工龄、算年龄全靠它前面我们聊了取整函数(ROUND、INT、MOD、TRUNC),今天来聊聊日期计算里一个非常实用、但很多人不知道的函数——DATEDIF。 为什么说“很多人不知道”? 因为你在Excel的函数列表里根本搜不到它。输入=DATEDIF的时候,Excel也不会给你任何参数提示。它是一个“隐藏函数”——存在,能用,但微软从来不宣传它。 但它能做的事,恰恰是职场里高频到不能再高频的需求: 算工龄:入职到现在,多少年几个月? 算年龄:出生日期到现在,几岁? 算账期:合同签了多久?还有多少天到期? 算项目周期:从启动到交付,一共几个月? 今天一篇讲透。 =DATEDIF(开始日期, 结束日期, 返回类型) 三个参数: 
返回类型有6种,常用的就4种: 
最常用的组合: "Y"和"YM"一起用,算出“X年Y个月”。 ⚠️最重要的一条规则:开始日期必须早于结束日期。如果开始日期晚于结束日期,DATEDIF会直接返回 `#NUM!` 错误。这条规则后面会反复用到。 📖需求:根据入职日期,算出截至今天的工龄,精确到“几年几个月”。 假设A2是入职日期: 先算整年数: =DATEDIF(A2, TODAY(), "Y") 再算去掉整年后的剩余月数: =DATEDIF(A2, TODAY(), "YM") 拼接起来: =DATEDIF(A2, TODAY(), "Y") & "年" & DATEDIF(A2, TODAY(), "YM") & "个月" 结果就是:6年6个月 💡为什么要用TODAY()?因为TODAY()会自动更新为当天日期,明天打开表格,工龄自动加一天。不用手动改。 📖需求:根据出生日期,算出截至今天的年龄。 假设A2是出生日期: =DATEDIF(A2, TODAY(), "Y") 结果就是周岁年龄。 ⚠️注意:DATEDIF算的是周岁,不是虚岁。它严格按照“满一年才算一岁”的规则计算,比用YEAR(TODAY())-YEAR(A2)更准确——因为后者不考虑生日有没有过。 📖需求:合同到期日已知,算还有多少天到期,过期了要提醒。 假设A2是合同到期日。 先写第一版(踩坑版): =IF(DATEDIF(TODAY(), A2, "D")<0, "已过期", DATEDIF(TODAY(), A2, "D") & "天后到期") 这个公式是错的。 DATEDIF要求开始日期必须早于结束日期。合同一旦过期,TODAY()就晚于A2,DATEDIF直接报#NUM!错误——根本轮不到IF去判断它是不是小于0。整个公式返回的是错误值,而不是“已过期”。 正确写法,用DAYS函数: =IF(DAYS(A2, TODAY())<0, "已过期", DAYS(A2, TODAY()) & "天后到期") 逻辑拆解: - DAYS(A2, TODAY())<0 → 判断合同是否过期 - 过期了,直接显示“已过期” - 没过期,DAYS(A2, TODAY()) 算出剩余天数,拼上“天后到期” 📖需求:项目从启动到交付,一共用了多少个月。 假设A2是启动日,B2是交付日: =DATEDIF(A2, B2, "M") 结果就是总月数。 因为它是微软为了兼容Lotus 1-2-3(一个古老的电子表格软件)而保留的“隐藏函数”。它不在函数列表里,输入时也没有参数提示,但完全能用。 所以:你没法通过“插入函数”找到它,也没法通过搜索找到它。只能手动敲=DATEDIF,然后凭记忆写参数。 ⚠️函数搜不到 原因:DATEDIF是隐藏函数 解决方案:手动输入=DATEDIF,不用管提示 ⚠️返回#NUM! 原因:开始日期晚于结束日期 解决方案:确认两个日期的先后顺序,算剩余天数改用DAYS ⚠️返回#VALUE! 原因:日期是文本格式 解决方案:用=ISNUMBER()检查,先转成日期 ⚠️"MD"或"YD"结果不对 原因:这两个参数有已知bug,所以没有讲解 解决方案:精度要求高时改用"D",或手动计算 ⚠️年龄算出来比实际大1岁 原因:用了YEAR相减而不是DATEDIF 解决方案:改用DATEDIF的"Y"参数 ⚠️用DATEDIF算剩余天数,过期就报错 原因:DATEDIF要求开始日期早于结束日期 解决方案:算天数改用DAYS 
结论:算天数可以用减法或DAYS,但算年、月、以及“几年几个月”这种复合需求,必须用DATEDIF。 💡记住一句话:DATEDIF是Excel里的“隐藏高手”,算工龄、算年龄、算账期,一个函数全搞定。 它不在函数列表里,但只要你记住语法,它就是日期计算里最稳的那把刀。 你学会了吗?如果觉得有用,记得点赞和在看,分享给更多需要的朋友!
📢下期预告:TODAY、NOW、EOMONTH、EDATE——让Excel自动记住“今天几号”,报表每天自动更新 👆 怕错过下期的朋友,点个「关注」不迷路,周六早上,一篇硬核Excel干货准时等你。 有Excel难题,欢迎留言交流,我们下期见!
一、DATEDIF的语法


二、算工龄(最经典)
三、算年龄
四、算合同剩余天数
五、算项目周期
六、为什么搜不到这个函数?
七、常见错误避坑 ⚠️
八、DATEDIF vs 直接减法

本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。