根据出生日期计算年龄(根据入职日期计算司龄)
为什么要在excel中设置函数公式来计算年龄或司龄?是因为年龄或司龄会随着当前日期的变化而变化,不可能每年都手动改一次。
(当然现在像OA这类管理系统已经很强大了,已经不用费力编写excel函数,此分享仅供学习了解)
计算年龄,其实就是在计算前期日期和出生日期的差值。
举个例子:
当前日期是2019年8月5日,出生日期是1997年7月5日,如果只算粗略的年龄=2019-1997=22岁。
如果计算精确到月的年龄就会稍微麻烦一下,需要先判断当前月份和出生月份的大小。
若当前月份大于出生月份,当前日期是2019年8月5日,出生日期是1997年7月5日:
年龄计算:2019-1997=22岁,8-7=1月,=22岁1月。
若当前月份小于出生月份,如当前日期是2019年8月5日,出生日期是1997年9月5日:
则年龄计算需要把其中1年换算为12个月再计算:2019-1997-1=21岁,12+8-9=11月,=21岁11月。
为了方便理解,可以参考下例:

=YEAR(TODAY())-YEAR(L46)
公式解读:提取当前的日期的年份与L46单元格中的出生日期年份相减
1) TODAY日期函数的基本构架是TODAY(),其作用是返回当前日期。
2) YEAR函数的基本构架是YEAR(serial_number),其作用是查找日期值中的年份,Serial_number 为一个日期值。
补充:若要精确到月份,可以增加条件函数IF()判断。

=IF((MONTH(TODAY())-MONTH(L46))>=0,(YEAR(TODAY())-YEAR(L46))&"年"&(MONTH(TODAY())-MONTH(L46))&"月",(YEAR(TODAY())-YEAR(L46)-1)&"年"&(12+MONTH(TODAY())-MONTH(L46))&"月")
公式解读:如果当前日期月份大于等于出生日期月份,返回用当前日期年份减去出生日期年份和当前日期月份减去出生日期月份;否则返回当前日期年份减去出生日期年份再减一年和用12个月加上当前日期月份再减去出生年月月份。
1) IF条件函数的基本构型是
IF(logical_tes,[value_if_true],[value_if_false]),其作用是条件判断logical_tes,如果是真返回[value_if_true]值,如果是假[value_if_false]值。例如if(B2>=60, "合格","不合格"),如果B2单元格数字大于等于60,返回"合格"否则反馈"不合格"。
2) MONTH函数的基本构型是MONTH(serial_number),其作用是查找日期值中的月份,Serial_number 为一个日期值。
总结:根据出生日期计算年龄使用到的函数有
当前日期函数TODAY()
年份提取函数YEAR()
月份提取换算MONTH()
条件换算IF()
使用同样的方法,也可以根据入职日期计算司龄。