在年龄、工龄等时长的计算中,大家一贯的做法都是当前年份或者离职年份减去出生年份或者上班年份,这样计算也并无大错,但准确度不高,如果要计算出准确的年龄、工龄等时长,就要用到Excel系统的隐藏函数Datedif,为什么是系统隐藏函数呢?是因为在函数列表或者帮助文档中都没有它的身影,但确实存在并可以使用。
一、Datedif函数功能、语法结构。
功能:按照指定的类型统计两个时间的差值。
语法结构:=Datedif(开始日期,结束日期,统计方式)。
1、参数“开始日期”和“结束日期”就是两个日期值,并且“开始日期”≤“结束日期”。例如计算年龄时,出生日期就是“开始日期”,而当前的日期就是“结束日期”。
2、统计方式“Y、M、D、MD、YM、YD”六种,其中,最常用的为“Y、M、D”三种,字母分别是“年、月、日”英文字母的首字母,也就是按“年、月、日”等方式统计时长。具体请参阅下表。
统计方式 | 解读 |
Y | 按整年计数 |
M | 按整月计数 |
D | 按整日计数 |
MD | 忽略年份和月份、按日计数 |
YM | 忽略年份和日期,按月份计数 |
YD | 忽略年份,按日计数 |
注意事项:
Datedif函数只能用于16以上版本及WPS中,低版本的Excel系统无法使用哦!
二、案例解读
目的1:计算年龄。
方法:
在目标单元格中输入公式:=DATEDIF(D3,TODAY(),"y")。
解读:
1、公式中的第二个参数为Today(),目的就是为了获取当前的日期,不管什么时候使用表格数据,“终止日期”都是最新的,年龄也是最新的。可以达到“一次统计、终生使用”的目的。
2、如果数据源中没有“出生年月”列,则公式为:=DATEDIF(TEXT(MID(C3,7,8),"00-00-00"),TODAY(),"y"),看起来有点儿复杂,其实TEXT(MID(C3,7,8),"00-00-00")的作用就是从身份证号码中提取出生年月并将其设置为日期格式,具体案例可以查阅历史消息中关于“身份证技巧”的相关文章。
3、除了按年(Y)统计之外,还可以按月(M)或按日(D)统计。只是年龄的表述上我们习惯于用年份表示而已。
目的2:计算工龄。
方法:
在目标单元格中输入公式:=DATEDIF(I3,J3,"y")。
解读:
在计算工龄时,参数“结束日期”为什么不用Today()替代,而用固定的日期了?其实这就涉及到一个常识性的问题了,人不去世,“年龄”是自动增加的,但“工龄”并不一定自动增加。所以,在计算工龄时,参数“结束日期”不能用Today()替代,只能是“离职日期”。