
如果您在Excel中需要根据员工的入职日期计算当前工龄(以年为单位),DATEDIF函数是专门用于计算两个日期之间差值的隐藏函数。以下是使用DATEDIF函数准确计算工龄的具体操作方法:
一、确认入职日期与当前日期格式正确
DATEDIF函数要求起始日期和结束日期均为有效的Excel日期序列值,若日期显示为文本或格式错误,将导致#VALUE!错误。需确保入职日期单元格为“日期”格式,且未被存储为纯数字或文本字符串。
1、选中入职日期所在列(例如B2:B100)。
2、右键选择“设置单元格格式”,在“数字”选项卡中选择“日期”,并确认类型显示为带年月日的格式(如2020/3/15)。
3、在空白单元格输入=TODAY(),确认返回的是当前系统日期而非0或乱码。
二、使用DATEDIF函数计算完整工龄年数
DATEDIF函数语法为DATEDIF(开始日期,结束日期,参数),其中参数"y"表示忽略月和日,仅返回整年数。该方式可避免因未满一年而产生小数,直接输出员工已服务的完整年份。
1、在工龄结果列的第一个单元格(例如C2)中输入公式:=DATEDIF(B2,TODAY(),"y")。
2、按Enter确认,C2将显示B2对应入职日期到今天的整年数。
3、选中C2单元格,拖动填充柄向下复制公式至其他行。
三、用DATEDIF组合参数获取更精细工龄(年+月)
若需同时呈现“X年Y个月”的工龄结构,可分别调用"y"(年)和"ym"(忽略年后的剩余月数)参数,并通过连接符合并结果,提升信息可读性。
1、在C2单元格输入公式:=DATEDIF(B2,TODAY(),"y")&"年"&DATEDIF(B2,TODAY(),"ym")&"个月"。
2、按Enter后,C2显示类似“3年5个月”的文本结果。
3、双击C2右下角填充柄,自动填充至对应数据行末尾。
四、处理入职日期为空时的错误防护
当部分员工入职日期尚未录入(即单元格为空),DATEDIF会返回#NUM!错误,影响整体表格整洁性。需嵌套IF函数提前判断,使空值返回空白或提示文本。
1、在C2单元格输入公式:=IF(B2="","",DATEDIF(B2,TODAY(),"y"))。
2、按Enter后,B2为空时C2显示为空白,非空时正常计算年数。
3、拖拽填充至全部目标行。
五、替代方案:用YEARFRAC函数配合INT取整
YEARFRAC函数返回两个日期间的实际年分数(含小数),结合INT函数可截去小数部分,效果等同于DATEDIF("y"),且对部分早期Excel版本兼容性更高。
1、在C2单元格输入公式:=INT(YEARFRAC(B2,TODAY()))。
2、按Enter确认结果与DATEDIF一致。
3、向下填充公式至所有记录行。









