ARTICLE · 1155287
Excel日期函数DATEDIF计算年龄、工龄怎么用
DATEDIF 是 Excel 里专门用来计算两个日期之间间隔的函数,算年龄和工龄最省事:只要一个出生日期、一个今天,写 =DATEDIF(A2,TODAY(),"Y") 就能得到周岁。它属于隐藏函数,输入时没有参数提示,但语法记牢就很好用。
一、DATEDIF 的语法
=DATEDIF(开始日期, 结束日期, 返回单位)
开始日期必须小于等于结束日期,否则会返回 #NUM! 错误。 结束日期写成 TODAY(),年龄和工龄每天都会自动更新。
第三个参数「返回单位」是重点,常用取值如下:
二、算年龄:精确到周岁
假设 A2 是出生日期 1990/05/20,在 B2 输入:
=DATEDIF(A2,TODAY(),"Y")
结果就是周岁,比 =YEAR(TODAY())-YEAR(A2) 准确得多——后者遇到今年生日还没过的人会多算一岁。
想显示成「35岁3个月」,把两段结果拼起来:
=DATEDIF(A2,TODAY(),"Y")&"岁"&DATEDIF(A2,TODAY(),"YM")&"个月"
注意连接符 & 后面的中文要用英文双引号包起来,写成 &"岁" 才不会报错。
三、算工龄:入职日期到今天
假设 B2 是入职日期,按整年算工龄:
=DATEDIF(B2,TODAY(),"Y")
想精确到月,用整月数除以 12:
=DATEDIF(B2,TODAY(),"M")/12
把单元格格式设为「数字」并保留 2 位小数,就能看到 3.42 年这样的结果。想按「满几年几个月」展示:
=DATEDIF(B2,TODAY(),"Y")&"年"&DATEDIF(B2,TODAY(),"YM")&"个月"
再进一步,还可以顺带算司龄补贴:=DATEDIF(B2,TODAY(),"Y")*100,满一年加 100 元。
四、三种算法的对比
假设 A2 是入职日期,折算年数写 =YEARFRAC(A2,TODAY()),返回 3.42 这样的数值。
再提醒一点:DATEDIF 的三个参数都可以引用单元格。把「统计截止日期」单独放在 F1,写成 =DATEDIF(A2,$F$1,"Y"),就能随时改成月末或年末口径重新计算,比直接写 TODAY() 更灵活,做年度报表时特别顺手。
五、常见问题
公式算出 #NUM!?先检查开始日期是不是晚于结束日期,再看单元格里是不是文本格式的日期。文本日期可以用 DATEVALUE 转换,或者用「数据-分列」直接刷成日期格式。
结果显示成一串数字?把单元格格式改回「常规」或「数字」。DATEDIF 返回的是数值,不是日期,被套上日期格式就会显示成序号。
WPS 表格支持吗?支持。DATEDIF 在 WPS 表格里的写法和单位取值与 Excel 一致,TODAY() 同样会自动刷新。
小结:算年龄、工龄优先用 DATEDIF 配 TODAY(),"Y" 取整年、"YM" 取剩余月;拼接字符串时别忘记 & 和英文双引号,报错先查日期顺序和格式。