ARTICLE · 1323491
Excel日期计算用DATEDIF,工龄年假一键算准
Excel日期计算用DATEDIF,工龄年假一键算准
你是不是也遇到过:月底算工资要统计员工工龄,年底发年假要按工龄分档,合同到期要提前30天提醒,项目周期要算还剩多少天……这些活儿一旦手动算,不是漏了闰年就是算错月份,HR和行政同事光是核对就能熬到深夜。
其实 Excel 里藏着一个"老资格"函数——DATEDIF(Date Difference),它专门算两个日期之间的差,工龄、年假、合同期、项目倒计时,一行公式全部搞定。今天手把手教你,看完就能用。
一、DATEDIF 长什么样
基本语法只有三个参数:
``
=DATEDIF(开始日期, 结束日期, 单位代码)
开始日期:比如入职日期、合同开始日 结束日期:比如今天、离职日、合同到期日 单位代码:决定你想"差"成什么单位
💡 ⚠️ 注意:开始日期必须早于结束日期,否则会报错 #NUM!。
二、6个单位代码,各管一摊
| 代码 | 含义 | 例子(2020/1/15 → 2026/11/6) |
|------|------|------|
| "Y" | 完整年数 | 6(年) |
| "YM" | 忽略年份的月差 | 9(个月) |
| "MD" | 忽略年月的日差 | 22(天) |
| "YD" | 忽略年份的日差 | 295(天) |
记住最常用的三个:要"几年"用 Y,要"几年几个月"用 Y 配合 YM,要"精确天数"用 MD 或 YD。
三、实战1:算工龄(最常见)
假设 A2 是入职日期,想算到今天满多少年工龄:
`=DATEDIF(A2, TODAY(), "Y") & "年" & DATEDIF(A2, TODAY(), "YM") & "个月"
`下拉填充,全公司几十号人的工龄一秒算完。TODAY() 会自动取系统当天,明天打开也不用改公式。
四、实战2:算年假天数(按工龄分档)
很多单位年假规则是:满1年5天,满10年10天,满20年15天。配合 IF 就能自动判断:
`=IF(DATEDIF(A2,TODAY(),"Y")>=20,15,IF(DATEDIF(A2,TODAY(),"Y")>=10,10,IF(DATEDIF(A2,TODAY(),"Y")>=1,5,0)))
`把公式往下一拉,谁该休几天一目了然,再也不用翻台账。
五、实战3:合同到期 / 项目倒计时
想知道合同还剩多少天,用 "D" 配合具体日期:
`=DATEDIF(TODAY(), B2, "D")
`B2 是合同到期日,结果为正数就是还剩多少天,负数说明已经过期,提前预警妥妥的。
六、两个易踩的坑
- 日期要是真日期
:从别处粘来的"2020.1.15"如果看着像日期其实是文本,DATEDIF 会报 #VALUE!。选中列 → 数据 → 分列 → 完成,统一转成真日期。 - 开始晚于结束会报错
:比如离职日填错了早于入职日,公式直接 #NUM!,检查日期前后顺序即可。
七、想要更精确?用 YEARFRAC
如果领导要"精确到小数点后两位的工龄",用:
`=YEARFRAC(A2, TODAY(), 1)
`` 返回的是按实际天数算的年数(如 6.83 年),乘以应得年假比例更公平。
💡 💡 小提示:DATEDIF 在插入函数里搜不到,只能手敲,但它比任何手动计算都靠谱,建议收藏本文备用。
算工龄、算年假、算合同,这套 DATEDIF 组合拳学会了,月底那点破事再也不用心算到头秃。关注我,明天继续拆解一个被低估的 Excel 神函数。















































































