1.8 身份证号码中包含多种信息
身份证号码中是包含多种信息的,它的第1、2位数字表示所在省份的代码;第3、4位数字表示所在城市的代码;第5、6位数字表示所在区县的代码;第7~14位数字表示8位的出生年、月、日;第15、16位数字表示所在地派出所的代码;第17位数字中奇数表示男性、偶数表示女性;第18位数字是校检码,校检码可以是0~9的数字,有时也用x表示。
如果在员工信息表中展示前述的各种信息,可以不用输入,直接在身份证号码中提取对应的数字再把它们转换或匹配出相应的结果即可。
在本例员工信息表中,性别和出生日期可以从身份证号码中提取出来。在F2单元格输入如下公式。
=IF(MOD(MID(G2,17,1),2)=1,"男","女")
在H2单元格输入如下公式。
=--TEXT(MID(G2,7,8),"0000-00-00")
若要向下填充公式,可以把鼠标放在定位单元格的右下角,当鼠标变成黑色十字后,双击即可快速填充公式,见图1-29。
●图1-29 性别和出生日期公式
专家解析
① IF(MOD(MID(G2,17,1),2)=1,"男","女")解析
MID(G2,17,1)是把G2单元格中的身份证号码第17位数字提取出来,MOD(MID(G2,17,1),2)=1中MOD函数是求余数,是判断第17位数字除以2余数是否等于1,它返回TRUE或FALSE的结果,如果是TRUE,代表第17位数字是奇数,返回“男”,否则代表第17位数字是偶数,返回“女”。
② --TEXT(MID(G2,7,8),"0000-00-00")解析
MID(G2,7,8)是把G2单元格中的身份证号码从第7位开始连续提取8位数字,也就是第7~14位数字,它们代表出生年、月、日。然后通过TEXT函数将这8位数字转换成如“1972-08-19”的形式,这虽说看起来是日期格式,但是它是文本型日期,再通过两个负号“- -”转换为日期型数值,不使用两个负号,在公式后面使用“+0、-0、*1、/1”也会实现一样的效果。