我们都知道,一个人的身份证号码中包含了一个人非常多的隐私信息,如户籍地、出生日期、年龄、性别等。如果我们想要知道某个人的部分信息,只需要将相关部分的代码提取出来进行处理就可以得到结果了。
从身份证号码中提取户籍地信息
首先回答题主的问题,如何快速从身份证号码中提取户籍地信息?要做到这一点,我们必须要有一个“全国身份证归属地”数据库表,相关数据内容已经放在Excel表格里了。如下图所示:
我们该如何利用身份证号码从右侧表格中提取户籍地信息呢?我们都知道,身份证号码的前6位代表的是出生地信息。因此,
1.提取身份证号码前6位。利用left函数来做:
=left(B2,6)
2.利用提取出来的代码到数据库中查询户籍地信息:
=vlookup(left(B2,6),I:J,2,)
3.我们发现并没有查询到正确的结果,这是怎么回事呢?原来提取出来的代码只有6位,会被默认为数字,用数字到文本中进行查询显然是无法做到的,因此我们可以在提取到的代码后面链接一个空文本将其强制转化为文本。
=left(b2,6)&""
以同样的方法处理一下:I:J列的数据库。
=I:J&""
因此最终公式为:
{=VLOOKUP(LEFT(B2,6)&"",I:J&"",2,)}
最终效果图如下:
从身份证号码中提取出生日期
应该说,这个需求要比题主的需求更加普遍,应用得更加广泛,当然关于这一点做起来也不难。前面还用到了数组公式,搞定这个需求则完全不需要。不局限于函数的方法,用分列的方法更加简单。
1.分列法
方法,选中B2:B86,单击数据选项卡,分列,在打开的分列向导中第一步勾选固定宽度,第二步骤设置分隔线在第6位和第14位后面,第三步骤设置第1、3部分为“不导入此列”,中间列设置为YMD的日期格式,目标区域设置为C2单元格,单击完成即可。如下图的演示:
2.函数法
思路:
1.利用Mid函数提取身份证号码的第7位到14位(出生日期)
=mid(B2,7,8)
2.利用text函数将提取到的出生日期转为看起来像日期:
=text(--mid(B2,7,8),"0-00-00")
3.由于text的结果为文本,我们需要再其前面加两个负号,将其强制转化为数字(日期):
=--text(--mid(B2,7,8),"0-00-00")
设置单元格的格式为短日期即可。
从身份证号码知晓一个人的性别
身份证号码的第17位为一个人的性别信息,奇数为男,偶数为女。
1.提取身份证号码第17位数字。
=mid(b2,17,1)
2.判断提取的数字的奇偶
=mod(mid(b2,17,1),2)
结果为1则是奇数,返回结果男,否则返回结果女。
3.外层嵌套if函数
=if(mod(mid(b2,17,1),2),"男","女")
我们即可得到正确的结果。
如下图所示:
我的回答就到这里,更多精彩内容,敬请关注头条号:傲看今朝。