咱们每个人都有一个唯一的身份证号,其实身份证号中包含了很多的个人信息,你知道怎么从身份证号中提取个人的生日、年龄、性别、籍贯等信息吗?技巧君今天和大家分享一下如何利用Excel从身份证号中提取个人信息!
文末有示例文件获取方法哦身份证号的构成身份证号有18位,排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。顺序码的奇数分给男性,偶数分给女性。
身份证号构成
从这个构成中,我们可以发现,只需要提取对应的编码就可以提取出身份证号中的个人信息!
提取性别=IF(MOD(MID(B2,17,1),2),\"男\",\"女\")
身份证号提取性别
说明:MID(B2,17,1),提取第17位数字MOD(MID(B2,17,1),2),对2取余,奇数余数得1,偶数余数为0提取出生年月
=--TEXT(MID(B2,7,8),\"0-00-00\")
提取出身年月
说明:MID(B2,7,8),提取第7位开始后面的8位数字,即出生年月日编码TEXT(MID(B2,7,8),\"0-00-00\"),转换为年-月-日的格式--TEXT(MID(B2,7,8),\"0-00-00\"),减负运算换算为真正的日期提取实岁
=DATEDIF(TEXT(MID(B2,7,8),\"0-00-00\"),TODAY(),\"Y\")
提取实岁
说明:DATEDIF(TEXT(MID(B2,7,8),\"0-00-00\"),TODAY(),\"Y\"),计算当前日期和出生日期的年差值,即实际岁数提取虚岁
=(YEAR(NOW())-MID(B2,7,4))
提取虚岁
说明:MID(B2,7,4):提取第7位数开始的4位数字,即出生年份YEAR(NOW()):计算当前日期的年份(YEAR(NOW())-MID(B2,7,4)):虚岁=当前年份-出生年份提取籍贯
=VLOOKUP(--MID(B2,1,6),籍贯编码!B:C,2,0)
提取籍贯
说明:--MID(B2,1,6),提取前六位地址编码VLOOKUP(--MID(B2,1,6),籍贯编码!B:C,2,0),在地址编码表里找到籍贯示例文件获取:
点击右上角红色按钮关注“Excel精选技巧”,然后私信发送【身份证号提取个人信息】即可
关注Excel精选技巧,每天学习3分钟,坚持一个月,你将大不同!一、任务需求:根据员工信息表中的身份证号码,精确计算每位员工的实际年龄。
根据身份证号码精准计算实际年龄
二、任务难点:
1、数据量大,无法单个员工计算。
2、需要计算的是员工实际的年龄(即30岁差一天也只能算是29岁),不是虚岁。
三、解决思路:
1、身份证内包含出生年月,可以提取出来。
2、用当前的时间减去出生年月可以得出实际的年龄。
四、具体方法:
(一)提取出生年月日
身份证号码的第7-14位是个人的出生年月日,利用MID()函数可以把出生年月日从身份证号码里提取出来。
MID()函数解析:
MID()函数
作用:从字符串中提取一定长度的字符串。
参数解析:
1.Text:指定所要提取的字符串。
2.Star_num:准备提取的第一个字符的位置,按从左到右的顺序由1开始计算。
3.Num_chars:指定所要提取的字符串的长度。
本例在“提取出生年月日”列下第一行(C2)单元格中输入公式=MID(B2,7,8),然后向下填充即可将所有人的出生年月日从身份证号码中提取出来。(B2是商鞅的身份证号码,从第7位开始,提取8位)
提取出生年月日
(二)转化为日期格式
由MID()函数提取出来的出生年月日是字符串型数据,需要利用TEXT()函数转为Excel能识别的日期格式。
TEXT()函数解析:
TEXT()函数
作用:将数值转换为按指定数字格式。
参数解析:
1.Value:要转化的数据。
2.Format_text:想要转化的数值格式。
如下为TEXT()函数常用的一些格式:
TEXT()函数常用格式
本例在“转化为日期格式”列下第一行(D2)单元格内添加公式=TEXT(C2,"0000-00-00"),然后向下填充即可将“出生年月日”转化为日期格式。(C2是商鞅的出身年月日,"0000-00-00"是日期的格式)
将提取的“出生年月日”转为“日期格式”
(三)获取当前系统日期
为增加表格的灵活性,使用TODAY()函数获取当前系统日期。
TODAY()函数解析:该函数是没有参数的可以直接使用。
TODAY()函数
本例在“获取当前系统日期”列下第一行(E2)单元格内添加公式= TODAY(),然后向下填充即可获取到当前系统日期。
获取当前系统日期
(四)计算实际年龄
实际年龄等于当前系统时间和出身时间的年份差,利用DATEDIF()函数可以计算出两个日期之间的年份差。
DATEDIF(start_date,end_date,unit)函数解析:
作用:Excel隐藏函数,插入公式里面没有。可以返回两个日期之间的年\月\日间隔数,常使用DATEDIF()函数计算两日期之差。
参数解析:
1.Start_date:起始日期(必须是1900年之后)
2.End_date:结束日期(结束日期必须大于起始日期)
3.Unit:返回的日期类型,即要计算的是年、月、日中的哪一个的差,具体类型如下:
“Y”计算年数差;
“M”计算月数差;
“D”计算天数差。
本例在“年龄”列第一个单元格中输入公式:=DATEDIF(D2,E2,"Y"),然后向下填充即可计算出实际的年龄。(D2是商鞅的出生年月日,E2是当前系统日期,“Y”表示计算年数差)
五、拓展创新
在实际中,以上方法步骤过多,不太方便。可以将所有的公式合并为一条公式:=DATEDIF(TEXT(MID(B2,7,8),"0000-00-00"),TODAY(),"Y"),迅速计算出实际的年龄。
以上就是根据身份证号码精准计算实际年龄的方法,总结如下:
1、利用MID()函数从身份证号码中提取出生年月日。
2、利用TEXT()函数把提取的出生年月日转为日期格式。
3、利用TODAY()函数获取到当前系统日期。
4、利用DATEDIF()函数计算出当前系统日期和出生日期的年份差(即实际年龄)。
该计算思路和公式能让工作效率大大提高,把困难的问题变得简单轻松,你学“废”了吗?
我是今日Excel与编程,想了解更多的Excel与编程知识请关注我