从身份证号码计算年龄
原创作者 | 李锐
微信公众号 | Excel函数与公式(ID:ExcelLiRui)
个人微信号 | (ID:ExcelLiRui520)
从身份证号码计算年龄
工作中很多地方都需要用到年龄信息,比如根据年龄计算工龄,根据年龄计算工龄工资、人资HR在做员工年龄结构占比分析时等等,都需要用到年龄。
由于年龄是随着时间增长的,所以不同时期的员工年龄是在不断变化的,比起每次用到年龄时现从员工收集整理,不如一次性收集齐全员工的身份证号码,然后使用Excel公式从中提取,这样可以一劳永逸的保持结果自动更新。
只要你能找到规律,构建思路,确定方法,这些都不是难事。
今天要讲的就是从身份证号码中计算年龄的技术,看完觉得好的,记得去底部点个好看再分享给朋友,我会根据大家的反馈调整发文内容及写法。
案例描述
这个案例A列是员工姓名,B列是身份证号码,要求C列使用公式计算员工年龄。
黄色区域为公式返回结果所在区域,如下图所示。
(下图为案例示意图)
要求按照B列的身份证号码计算年龄,结果随着当前时间自动更新。
在看下面的解决方案之前,请你先独立思考,带着思路和问题继续向下看。
思路构建
思路提示:首先要了解身份证号码中的年龄信息位于哪里,然后从中提取出生日期,再将员工的出生日期和当前日期进行年份间隔的计算。
此案例的关键点一:身份证号码中哪一部分包含年龄信息。18位身份证号码中从第7位开始后面的8位数字依次代表出生年月日信息。
既然明确了年龄信息所在位置,我们就可以借助文本函数从中截取出生日期;
至于关键点二,要进行日期间隔的计算,可以借助隐藏日期函数DATEDIF第三参数写"y"。
思路构建完毕,可以在Excel中落地实现。
解决方案
思路提示:MID函数截取出来的8位字符串可以借助TEXT函数转为日期形式。
C2单元格输入如下公式,将公式向下向右填充:
=DATEDIF(--TEXT(MID(B2,7,8),"0-00-00"),TODAY(),"y")
如下图所示。
(下图为公式示意图)
一句话解析:
使用MID和TEXT函数从身份证号码中截取出生年月日,再使用--减负运算将其由文本转为数值格式,再传递给DATEDIF函数作为其第一参数;第二参数使用TODAY函数返回当前日期,最后使用DATEDIF函数实现从出生日期到当前日期的年份间隔数计算,即员工年龄。
DATEDIF(起始日期,截止止日期,"y")代表计算从起始日期到截止日期之间的年份间隔数(按满整年计算,不足整年不算入)
Excel函数公式方面的各种技术,我已经花18个月的时间整理到Excel特训营中超清视频讲解,并提供配套的课件方便同学们操作和练习。