推荐使用DATEDIF函数计算工龄,公式为=DATEDIF(A2,TODAY(),"y")得整年数,或=DATEDIF(A2,TODAY(),"y")&"年"&DATEDIF(A2,TODAY(),"ym")&"个月"显示年月。

如果您在Excel中需要根据员工的入职日期自动计算当前工龄,则需利用日期函数处理时间差并转换为年份单位。以下是多种可行的计算方法:
一、使用DATEDIF函数(推荐)
DATEDIF函数专用于计算两个日期之间的完整年数、月数或天数,适用于工龄这类“整年累计”场景,结果精确且不四舍五入。
1、在目标单元格(如B2)中输入公式:=DATEDIF(A2,TODAY(),"y"),其中A2为入职日期所在单元格,TODAY()返回当前日期,“y”表示计算整年数。
2、按Enter确认,得到该员工截至今日的完整工龄年数。
3、如需同时显示年月(例如“3年5个月”),可扩展公式:=DATEDIF(A2,TODAY(),"y")&"年"&DATEDIF(A2,TODAY(),"ym")&"个月"。
二、使用YEARFRAC函数配合INT取整
YEARFRAC函数计算两个日期之间的实际年份占比(含小数),再用INT函数截去小数部分,可得整年工龄,适用于需考虑闰年及具体天数权重的场景。
1、在目标单元格中输入公式:=INT(YEARFRAC(A2,TODAY(),1)),其中第三个参数“1”表示按实际天数/365天计算,确保精度。
2、按Enter确认,结果为向下取整后的整年数。
3、若需保留一位小数体现近似工龄(如3.8年),可改用:=ROUND(YEARFRAC(A2,TODAY(),1),1)。
三、用TODAY减去入职日期后除以365.25
该方法基于日期序列值相减获得总天数,再折算为年份,操作直观但精度略低于前两种,适合快速估算。
1、确保入职日期单元格格式为“日期”,如A2为2020/5/10。
2、在目标单元格输入公式:=INT((TODAY()-A2)/365.25)。
3、按Enter确认,得到整年工龄数值。
4、注意:该方式未区分闰年分布,长期跨度下可能产生±1天误差,不建议用于正式人事报表。
四、结合IF判断实现“未满1年显示月份”
当工龄不足1年时,直接显示“X个月”更符合阅读习惯,可通过嵌套IF与DATEDIF实现动态格式切换。
1、在目标单元格输入公式:=IF(DATEDIF(A2,TODAY(),"y")=0,DATEDIF(A2,TODAY(),"m")&"个月",DATEDIF(A2,TODAY(),"y")&"年")。
2、按Enter确认,若工龄为0年则显示月数,否则显示年数。
3、如需进一步细化(如满1年但不足2年显示“1年X个月”),可替换为:=DATEDIF(A2,TODAY(),"y")&"年"&DATEDIF(A2,TODAY(),"ym")&"个月",该式始终显示年+月。
五、使用TEXT函数生成中文描述型工龄
TEXT函数可将数值结果格式化为指定文本样式,便于直接用于汇报材料或打印标签,无需额外拼接符号。
1、在目标单元格输入公式:=TEXT(YEARFRAC(A2,TODAY(),1),"0年0个月"),但此式仅作示意,实际需配合DATEDIF组合使用。
2、正确写法为:=DATEDIF(A2,TODAY(),"y")&TEXT(DATEDIF(A2,TODAY(),"ym"),"0")&"个月",确保个位月数前不漏零(如“5个月”而非“5个月”已满足,但“05个月”需额外处理)。
3、如需强制两位月数(如“05个月”),改为:=DATEDIF(A2,TODAY(),"y")&TEXT(DATEDIF(A2,TODAY(),"ym"),"00")&"个月"。










