Excel中计算工龄和年龄推荐使用DATEDIF函数:一、工龄用=DATEDIF(入职日期,TODAY(),"y")&"年"&DATEDIF(入职日期,TODAY(),"ym")&"个月";二、年龄用=DATEDIF(出生日期,TODAY(),"y")得周岁。

如果您需要在Excel中计算员工工龄或根据出生日期自动得出年龄,可使用内置函数快速完成。以下是多种准确、稳定且适用于HR日常操作的公式方法:
一、用DATEDIF函数计算精确工龄(入职日期至当前)
DATEDIF函数可按年、月、日分段返回两个日期间的差值,避免闰年与月末日期导致的误差,是HR最常采用的工龄计算方式。
1、在目标单元格输入公式:=DATEDIF(入职日期单元格,"TODAY()","y")&"年"&DATEDIF(入职日期单元格,"TODAY()","ym")&"个月"
2、若入职日期位于B2单元格,则完整公式为:=DATEDIF(B2,TODAY(),"y")&"年"&DATEDIF(B2,TODAY(),"ym")&"个月"
3、按下回车键,结果即显示为“X年Y个月”格式的工龄。
二、用YEARFRAC函数计算带小数的工龄(精确到年)
YEARFRAC函数返回两个日期之间的整年数加小数部分,适用于需参与薪资系数、年假天数折算等需数值型工龄的场景。
1、在目标单元格输入公式:=ROUND(YEARFRAC(入职日期单元格,TODAY(),1),2)
2、若入职日期在C2单元格,则写为:=ROUND(YEARFRAC(C2,TODAY(),1),2)
3、参数“1”表示按实际天数/365天计算,结果保留两位小数,如“5.23年”。
三、用DATEDIF函数根据出生日期计算周岁年龄
该方法严格遵循“满一年才算一岁”的中国法定年龄定义,排除虚岁干扰,适用于劳动合同签订、退休资格核查等合规场景。
1、在目标单元格输入公式:=DATEDIF(出生日期单元格,TODAY(),"y")
2、若出生日期位于D2单元格,则公式为:=DATEDIF(D2,TODAY(),"y")
3、该公式仅返回整年数,不四舍五入,例如生日未到则自动减1岁。
四、用TEXT+DATEDIF组合实现“X岁X月X天”完整年龄显示
当需向员工或档案系统提供更详尽的年龄信息时,此方法可逐级拆解至天数,提升数据颗粒度。
1、在目标单元格输入公式:=DATEDIF(出生日期单元格,TODAY(),"y")&"岁"&DATEDIF(出生日期单元格,TODAY(),"ym")&"个月"&DATEDIF(出生日期单元格,TODAY(),"md")&"天"
2、若出生日期在E2单元格,则公式为:=DATEDIF(E2,TODAY(),"y")&"岁"&DATEDIF(E2,TODAY(),"ym")&"个月"&DATEDIF(E2,TODAY(),"md")&"天"
3、注意:“md”参数会精确计算剩余天数,不受月份天数差异影响。
五、用YEAR函数配合逻辑判断处理跨年未过生日情况
该方法不依赖DATEDIF(部分旧版Excel中可能隐藏),仅用基础函数构建,兼容性高且逻辑透明。
1、在目标单元格输入公式:=YEAR(TODAY())-YEAR(出生日期单元格)-IF(DATE(YEAR(TODAY()),MONTH(出生日期单元格),DAY(出生日期单元格))>TODAY(),1,0)
2、若出生日期在F2单元格,则公式为:=YEAR(TODAY())-YEAR(F2)-IF(DATE(YEAR(TODAY()),MONTH(F2),DAY(F2))>TODAY(),1,0)
3、公式先算年份差,再用IF判断今年生日是否已过,未过则减1,确保结果为准确周岁。










