Excel怎么计算工龄?入职日期自动计算工龄
- 2026-09-22 20:36:48
HR 小伙伴每个月都要更新员工工龄:年假天数、工龄工资都跟它挂钩。手动算一人 30 秒,100 人就是一下午。今天教你用公式自动算工龄,入职日期一填,几年几月自动蹦出来,而且每天打开表格都会自动更新。
场景举例
员工花名册里存着入职日期,要自动算出每人工龄(以今天 2026/9/13 打开文件为例):
| 姓名 | 入职日期 | 工龄 |
|---|---|---|
| 张伟 | 2022/3/15 | 4年5个月 |
| 李娜 | 2020/7/1 | 6年2个月 |
| 王强 | 2024/12/1 | 1年9个月 |
| 赵敏 | 2026/2/20 | 0年6个月 |
目标:C 列只写公式,工龄随日期自动更新,永不手动算。
方法一:只算整年工龄
操作步骤
- 在 C2 输入:
=DATEDIF(B2,TODAY(),"Y")
- 回车下拉,得到 4、6、1、0。
TODAY() 自动取今天,DATEDIF 用 "Y" 算出完整年数。算年假(满 1 年 5 天、满 10 年 10 天)够用了。
方法二:X年X个月(最常用)
在 C2 输入:
=DATEDIF(B2,TODAY(),"Y")&"年"&DATEDIF(B2,TODAY(),"YM")&"个月"
结果就是表里的「4年5个月」「1年9个月」。注意用 "YM" 而不是 "M"——"M" 会把整年也折成月,张伟会变成 53 个月,不是你要的 5 个月。
方法三:连天数都算上
工龄工资要精确到天?在 C2 输入:
=DATEDIF(B2,TODAY(),"Y")&"年"&DATEDIF(B2,TODAY(),"YM")&"个月"&DATEDIF(B2,TODAY(),"MD")&"天"
赵敏会显示「0年6个月24天」,按天折算补贴时用它。
💡 公式里的 TODAY() 每天自动变,工龄也每天自动长,设置一次永久生效。
公式说明
| 参数 | 含义 | 示例取值 |
|---|---|---|
| B2 | 开始日期(入职日期) | 2022/3/15 |
| TODAY() | 结束日期,自动取今天 | 2026/9/13 |
| "Y" | 完整年数 | 4 |
| "YM" | 忽略整年后剩余的月数 | 5 |
| "MD" | 忽略年和月后剩余的天数 | 29 |
常见问题
Q1:方法一的结果显示成 1900/1/4 这种日期? 答:工龄列被设成了日期格式,把数字 4 当成了日期序列号。选中 C 列 → 右键 →「设置单元格格式」→「常规」即可。
Q2:新员工算出 #NUM! 错误? 答:入职日期晚于今天了,要么是日期录错,要么是还没入职的预留行。DATEDIF 要求开始日期在前,核对一下。
Q3:想在年底统一按 12/31 算工龄怎么办?
答:把 TODAY() 换成固定日期,例如 =DATEDIF(B2,DATE(2026,12,31),"Y")&"年",结果就固定不变了。
避坑指南
- 入职日期必须是标准日期格式,「2022年3月15日」这种文本先用「分列」转成真日期,否则 DATEDIF 不认;
- TODAY() 是动态的,交出去存档的报表建议先复制粘贴成「值」,或改用固定日期;
- 入职不满整月的员工,"Y" 会返回 0,是正常现象,别当成公式错了。
写在最后
| 方法 | 适用场景 | 难度 |
|---|---|---|
| DATEDIF "Y" | 算年假、按整年定福利 | ⭐ |
| "Y"+"YM" 组合 | 花名册显示「X年X个月」 | ⭐⭐ |
| 加 "MD" | 精确到天的工龄工资 | ⭐⭐ |
方法二的组合写法是 HR 表格的万能模板,建议存好,换公司都能用。
💡 觉得有用的话,记得点赞、在看、转发三连,让更多职场同事看到。关注我,每天更新一个实用办公技巧!下一篇教你「Excel怎么计算年龄?根据出生日期自动计算」,和工龄是一个套路。
如果这篇内容帮到你,欢迎点赞、在看和转发给需要的同事朋友~后续会持续更新实用技巧,记得关注不迷路。