可使用datedif函数精确计算工龄:用“y”得整年数,用“ym”得剩余月数,组合为“x年y个月”,配合iferror处理空值,或用yearfrac获取带小数的年份比例。

如果您需要在Excel中计算员工从入职日期到当前日期的工作年限,可使用DATEDIF函数进行精确计算。以下是具体操作步骤:
一、理解DATEDIF函数语法与参数含义
DATEDIF函数是Excel中用于计算两个日期之间年、月、日差值的隐藏函数,虽未在函数向导中显示,但支持完整调用。其语法为:DATEDIF(起始日期, 结束日期, 单位),单位可取“y”(整年)、“m”(整月)、“d”(天数)等。
1、起始日期必须早于或等于结束日期,否则返回错误值#VALUE!。
2、“y”单位返回的是两个日期之间的完整年数,不考虑月和日的差异;例如2020年3月15日到2025年3月14日返回4,而非5。
3、函数对日期格式敏感,输入的起始日期和结束日期必须为Excel可识别的日期序列值,不可为文本型数字(如“20200315”)。
二、使用DATEDIF计算整年工龄
该方法适用于仅需显示完整工作年数的场景,结果为向下取整的整数年。
1、在目标单元格(如C2)中输入公式:=DATEDIF(B2,TODAY(),"y"),其中B2为入职日期所在单元格,TODAY()自动获取当前系统日期。
2、按Enter确认后,C2将显示从B2日期至今日的整年数。
3、选中C2单元格右下角填充柄,向下拖拽以批量应用至其他员工行。
三、组合DATEDIF计算“X年Y个月”工龄
为呈现更直观的工龄表达(如“5年3个月”),需分别提取年份和剩余月份,再拼接为文本。
1、在目标单元格中输入公式:=DATEDIF(B2,TODAY(),"y")&"年"&DATEDIF(B2,TODAY(),"ym")&"个月"。
2、“ym”单位表示忽略年份后的月数差,确保月份部分不跨年累加。
3、若入职日期为2022年11月20日,当前日期为2026年3月3日,则返回3年4个月(2022.11.20–2025.11.20为3整年;2025.11.20–2026.3.3为4个月零12天,取整月为4)。
四、处理入职日期为空或无效时的容错写法
当原始数据中存在空单元格或非日期值时,直接使用DATEDIF会引发错误,需嵌套IFERROR或ISDATE逻辑进行防护。
1、在目标单元格中输入公式:=IFERROR(DATEDIF(B2,TODAY(),"y"),"未入职")。
2、该公式在B2为空、文本、或日期非法时,统一返回“未入职”,避免显示错误值干扰报表阅读。
3、如需进一步区分空值与错误类型,可改用:=IF(ISBLANK(B2),"",IFERROR(DATEDIF(B2,TODAY(),"y"),"日期无效"))。
五、替代方案:用YEARFRAC函数计算带小数的工龄
YEARFRAC函数返回两个日期间的完整年份比例(含小数),适用于需精确到天数折算的薪酬或考核场景。
1、在目标单元格中输入公式:=YEARFRAC(B2,TODAY(),1),第三个参数“1”表示按实际天数/365天计算(实际/实际基准)。
2、结果保留小数(如5.28),表示约5年3个月10天;如需四舍五入到小数点后1位,可嵌套ROUND:=ROUND(YEARFRAC(B2,TODAY(),1),1)。
3、注意:YEARFRAC结果可能因闰年及天数基准不同而与DATEDIF存在微小差异,二者不可混用作同一报表的工龄依据。









