如何验证检查Excel表中身份证号码的正误

如题所述

我们现在通行的身份证号为十八位号,前六位是地区代码,第七至十四位是出生年月日代码,第十五、十六位是乡镇代码,第十七位是性别识别码,男单女双,同时又是同地区、同出生日期、同性别人员的区别码,第十八位尾号则是前十七位号码的识别码,它是判断身份证号是否正确的重要依据。尾号设置的专门规则是:用前十七位号码,依次加权乘以7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2,再将得出的加权总和除以11,得出的余数,从0到10十一种,依次对应尾号:1、0、X、9、8、7、6、5、4、3、2。

现在,我们来设置相关公式和函数。在EXCEL表的B、C、D、E四列中,分别设立身份证号、尾号、参数、检验结果四个项目。

第一步:在身份证号列,将整列设为文本格式,在身份证号项目名称下的单元格中(如B3单元格),输入一个十八位的第二代身份证号;

第二步:在参数项目下的同行单元格内(D3单元格),输入如下函数公式:=12-(MID(B3,1,1)*7+MID(B3,2,1)*9+MID(B3,3,1)*10+MID(B3,4,1)*5+MID(B3,5,1)*8+MID(B3,6,1)*4+MID(B3,7,1)*2+MID(B3,8,1)*1+MID(B3,9,1)*6+MID(B3,10,1)*3+MID(B3,11,1)*7+MID(B3,12,1)*9+MID(B3,13,1)*10+MID(B3,14,1)*5+MID(B3,15,1)*8+MID(B3,16,1)*4+MID(B3,17,1)*2)+INT((MID(B3,1,1)*7+MID(B3,2,1)*9+MID(B3,3,1)*10+MID(B3,4,1)*5+MID(B3,5,1)*8+MID(B3,6,1)*4+MID(B3,7,1)*2+MID(B3,8,1)*1+MID(B3,9,1)*6+MID(B3,10,1)*3+MID(B3,11,1)*7+MID(B3,12,1)*9+MID(B3,13,1)*10+MID(B3,14,1)*5+MID(B3,15,1)*8+MID(B3,16,1)*4+MID(B3,17,1)*2)/11)*11,目的是将B3单元格的身份证号计算出加权总和后除以11得出余数,并用12相减得出参数;

第三步:在尾号项目列的同行单元格内(C3单元格)输入以下公式函数:=IF(D3=12,1,IF(D3=11,0,IF(D3=10,"X",D3))),目的是按照尾号的专用编码规则,将第二步D3单元格的参数计算结果转化为正确尾号;

第四步:在检验项目下的单元格(E3单元格)内输入公式函数:=IF(MID(B3,18,1)-D3=0,"正确","错误"),目的是将B3身份证的尾号与计算出的正确尾号相对比,标示正确与否。

第五步:批量检验。将批量身份证号码输入或复制到B3以下的B列中,选定C3:E3,将光标放置到右下角,显黑十字时,按住鼠标左键,双击之后,你所输入的身份证号之后三列,即刻就能出现你想得到的一切结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-16

第2个回答  2015-11-23
身份证的最后一位为效验位,可以进行身份证的验证,公式:
=IF(RIGHT(A1)=INDEX({0;"X";9;8;7;6;5;4;3;2;1},MOD(SUMPRODUCT(MID(A1,ROW($1:$17),1)*{7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11)),"正确","不正确")本回答被网友采纳
第3个回答  2015-11-23
这个你不能验证正误,只能判断位数够不够。追问

位数都是18位,但不能保证全部正确,毕竟有好几万,输入时一不小心就容易出错,看看有没有好的验证方法

第4个回答  2017-06-21
可以用if函数进行判断

=if(a1<18,"错误","正确")
相似回答