为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

EXCEL中如何提取身份证出生日期和性别信息以及检验身份证号码的正确性

2011-09-29 3页 doc 96KB 33阅读

用户头像

is_001942

暂无简介

举报
EXCEL中如何提取身份证出生日期和性别信息以及检验身份证号码的正确性  中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:   15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。   18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。   其中3位数字顺序码,是为同一地址码的同年同月同日出生人员编制的顺序号,偶数的为女性,奇数的为男性。   1、提取籍贯地区的行政区划代码(A2为身份证号,下同)   15与18位通用:=LEFT(A2,6)   如果有一个编码和省份地区的对照表,可以...
EXCEL中如何提取身份证出生日期和性别信息以及检验身份证号码的正确性
  中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:   15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。   18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。   其中3位数字顺序码,是为同一地址码的同年同月同日出生人员编制的顺序号,偶数的为女性,奇数的为男性。   1、提取籍贯地区的行政区划代码(A2为身份证号,下同)   15与18位通用:=LEFT(A2,6)   如果有一个编码和省份地区的对照,可以用VLOOKUP函数来提取地区信息。   2、提取出生日期信息    15位:=--TEXT(19&MID(A2,7,6),"#-00-00")   18位:=--TEXT(MID(A2,7,8),"#-00-00")   15与18位通用:=--TEXT(IF(LEN(A2)=15,19,"")&MID(A2,7,6+IF(LEN(A2)=18,2,0)),"#-00-00")   简化公式:=--TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00")     (请将输入公式的单元格格式设置为日期格式)   3、提取性别信息   15位:=IF(MOD(RIGHT(A2),2)=1,"男","女")   18位:=IF(MOD(MID(A2),17,1)=1,"男","女")   15与18位通用:=IF(MOD(MID(A2,IF(LEN(A2)=15,15,17),1),2)=1,"男","女")   简化公式:=IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女")   4、检验身份证号码的正确性   18位身份证号码的最后一位是检验码,它是根据身份证前17位数字依照规则计算出来的,其值0~9或X。一般情况只要有一位数字输入错误,依照规则计算后就会与第18位数不符。当然不排除按错误号码计算后恰好与检验码相符的情况,但这种情况出现的可能性较低。因此,对18位号码的验证采用如下公式:   =MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2,1)   对于15位身份证,由于没有检验码,我们只能简单地去判断出生日期代码是否是一个有效的日期,避免输入一些像“731302”或“980230“等这样不存在的日期。   =ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))   综合15位和18位后的通用公式为:   =IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))))   由于目前15位身份证号码已经很少了,如果对15位的号码不需要作进一步的判断,则公式可以简化成:   =IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),LEN(A2)=15)   将上面的公式放到B2单元格,如果结果为TRUE,则身份证号是正确的,结果为FALSE则是错误的。   你也可以将上述公式放在数据有效性中,防止录入错误的身份证号。操作方法:选择需要输入身份证的全部单元格区域,比如A2:A10,点菜单"数据"-"有效性",在"允许"的下拉框中选择"自定义",在"公式"输入上面的15位和18位通用公式,确定以后即可。注意:公式里的"A2"是你刚才选定要输入身份证的单元格区域的第一个单元格,如果你是要在C3:C20输入身份证号,则将公式里的"A2"改为"C3"。另外,你也可以先设置好某单个单元格的数据有效性(这时公式的A2改为选定的单元格),再用格式刷将其格式刷到其他需要相同设置的单元格。   5、15位升为18位   =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUMPRODUCT(MID(REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2)   6、18位转换为15位   =IF(LEN(A2)=18,LEFT(REPLACE(A2,7,2,),15),A2)   7、示例          表中公式:   B2 =IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))))   C2 =IF(A2<>"",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00")+0,)   D2 =IF(A2<>"",IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女"),)   E2 =IF(A2<>"",DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00"),TODAY(),"y"),)   F2 =IF(A2<>"",VLOOKUP(LEFT(A2,2),地区表!A:D,2,),)   H2 =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUMPRODUCT(MID(REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2)   I2 =IF(LEN(A2)=18,LEFT(REPLACE(A2,7,2,),15),A2)
/
本文档为【EXCEL中如何提取身份证出生日期和性别信息以及检验身份证号码的正确性】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索