在统计员工信息时,根据生日批量计算年龄是HR常遇到的需求,Excel的DATEDIF函数可以快速搞定不同精度的年龄计算,本文整理了实用的操作方法,从常规周岁计算到精确年龄显示,再到异常数据处理都有覆盖。
如果我们需要根据员工的出生日期计算准确的当前年龄,Excel中的DATEDIF函数可以按年、月、日分段输出日期差值,适配不同的使用需求,以下就是具体的实现方法:
一、用DATEDIF计算常规周岁年龄
DATEDIF函数支持通过参数“y”返回两个日期之间的完整整年数,计算时自动忽略月和日的差值,非常适合日常的员工年龄统计场景。该方法会自动适配闰年、月份天数不统一的问题,最终得到的是截止到当前日期已经年满的周岁。
1、在需要输出结果的目标单元格输入公式:=DATEDIF(B2,TODAY(),”y”),其中B2是员工出生日期所在的单元格,可根据你的表格实际位置调整。
2、输入完成后按回车键,单元格就会显示该员工对应的周岁年龄。
3、把公式向下填充到其他员工对应的行,就能一次性完成整列员工年龄的计算。
二、年/月/日分段,显示精确完整年龄
如果想要呈现“X岁Y个月Z天”的完整精确年龄,我们可以分别调用“y”、“ym”、“md”三个单位参数,分别提取间隔整年数、扣除整年之后的剩余月数、扣除整月之后的剩余天数,避免简单日期减法带来的跨月计算误差。
1、在目标单元格中输入组合公式:=DATEDIF(B2,TODAY(),”y”)&”岁”&DATEDIF(B2,TODAY(),”ym”)&”个月”&DATEDIF(B2,TODAY(),”md”)&”天”。
2、需要确认存放出生日期的B2单元格是有效日期格式(比如2000/5/15或2000-05-15都符合要求),如果是非法日期,DATEDIF会返回#VALUE!错误。
3、按下Enter确认后,就能得到目标结果,示例输出为:24岁3个月12天。
三、出生日期异常时的容错公式写法
如果原始员工数据里存在空单元格、文本型日期或者0000-00-0这类无效日期,直接使用DATEDIF计算会返回错误值。我们可以嵌套IF和逻辑判断函数做前置校验,解决这个问题。
1、输入带容错逻辑的公式:=IF(OR(B2=””,NOT(ISNUMBER(B2)),B2>TODAY()),””,DATEDIF(B2,TODAY(),”y”))。
2、这个公式会提前过滤掉空值、非数值类型的非法日期以及未来日期,只对合法的过去日期执行DATEDIF计算。
3、复制公式填充到所有员工行后,出生日期空白或者异常的单元格会显示为空白,而非错误值。
1

