可使用DATEDIF、YEARFRAC或基础日期函数组合计算动态工龄:DATEDIF分段返回“X年Y月Z日”;YEARFRAC返回带两位小数的年数;基础函数组合通过YEAR/MONTH/DAY与逻辑判断手动拆解。

如果需要在Excel中根据员工入职日期自动计算当前工龄,可借助内置日期函数实现精确到年、月、日的动态更新。以下是几种常用且互为补充的实现方法:
一、使用DATEDIF函数计算完整工龄(年+月+日)
DATEDIF函数专用于计算两个日期之间的差值,支持按“年”“月”“日”分段提取,结果为整数,适用于标准工龄统计场景。
1、在工龄列首单元格(如C2)输入公式:=DATEDIF(B2,TODAY(),"y")&"年"&DATEDIF(B2,TODAY(),"ym")&"月"&DATEDIF(B2,TODAY(),"md")&"日",其中B2为入职日期所在单元格。
2、按Enter确认,显示类似“5年3月12日”的格式化结果。
3、选中C2单元格,拖拽填充柄向下复制公式至其他员工行。
二、使用YEARFRAC函数计算带小数的工龄年数
YEARFRAC函数返回两个日期间的完整年份占比,结果为十进制数值,便于后续参与薪资系数、绩效折算等量化运算。
1、在目标单元格输入公式:=ROUND(YEARFRAC(B2,TODAY(),1),2),其中B2为入职日期,第三个参数“1”表示按实际天数/365天计算,ROUND保留两位小数。
2、按Enter后显示如“5.28”形式的工龄年数。
3、双击填充柄将公式应用至整列。
三、使用TODAY与YEAR/MONTH/DAY组合手动拆解年月日
该方法不依赖DATEDIF(部分旧版Excel中可能不可用),通过基础函数逐级计算年、月、日差异,并处理跨月借位逻辑。
1、在单元格中输入公式:=YEAR(TODAY())-YEAR(B2)-IF(OR(MONTH(TODAY())
2、另起一列计算剩余月数:=MONTH(TODAY())-MONTH(B2)+IF(DAY(TODAY())
3、再起一列计算剩余日数:=DAY(TODAY())-DAY(B2)+IF(DAY(TODAY())
四、设置条件格式高亮超长工龄人员
为便于识别服务满10年、15年等关键节点的员工,可对工龄列应用基于公式的条件格式。
1、选中工龄数据区域(如C2:C100),点击【开始】→【条件格式】→【新建规则】→【使用公式确定要设置格式的单元格】。
2、输入公式:=C2>=10,设置填充色为浅黄色,点击【确定】。
3、再次新建规则,输入公式:=C2>=15,设置字体加粗并填充橙色背景。
五、处理入职日期为空或格式错误的容错方案
当原始数据存在空值、文本型日期或非法日期时,直接套用上述函数将返回错误值,需嵌套IFERROR或ISNUMBER进行拦截。
1、在工龄单元格使用容错公式:=IFERROR(DATEDIF(B2,TODAY(),"y")&"年"&DATEDIF(B2,TODAY(),"ym")&"月", "日期无效")。
2、若B2内容非合法日期,公式返回“日期无效”,避免#VALUE!或#NUM!错误干扰表格阅读。
3、进一步增强判断,可先用ISNUMBER(B2)验证是否为数值型日期,再嵌套执行DATEDIF计算。










