乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > EXCEL中如何校验身份证号码的有效性?-excel检查身份证,excel输入身份证后四位变成0

EXCEL中如何校验身份证号码的有效性?-excel检查身份证,excel输入身份证后四位变成0

作者:乔山办公网日期:

返回目录:excel表格制作


在单元格中,输入身份证号码,有15或18位两种,由于输入过多导致输入错误,请问如何检验?
1、身份证位数(是否为15位或18位)

2、日期是否合法(主要是判断月份是否在1-12之间,日期是否超出当月的天数等)

3、身份证号是否重复。
数据有效性公式如下:
=NOT(OR(AND(LEN(A1)<>15,LEN(A1)<>18),COUNTIF(A:A,A1)<>1,ISERROR(1*TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"))))
可以设置提示内容为:
“身份证位数或者日期有误,或者身份证号有重复,请核准后重新输入!”

这样设置好后有以上三错误就不能输入了。
但还有个缺点,就是不知道和上面那个身份证号重复了。

所以e79fa5e98193e58685e5aeb9336建议采用如下方法:
在数据有效性中只判断位数和日期问题,公式如下:
=NOT(OR(AND(LEN(A1)<>15,LEN(A1)<>18),ISERROR(1*TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"))))
提示内容为:
“身份证位数或者日期有误,请核准后重新输入!”
然后在A列用条件格式显示重复的身份证号码,条件格式的条件设为:
公式=COUNTIF(A:A,A1)>1
将字体设为红色。
这样设置后,位数和日期有问题不能输入,重复的可以输入,但会显示为红色字体,以便你检查。

1、这里有一个Excel文件,里面录入了一组身份证号码(非真实人的身份证号)其中一个为错误号码,在没有认真核对以前很难发现。

2、新建一列校验结列,双击单元格,粘贴以下公式代码

=IF(A3="","",(IF(MID("10X98765432",MOD(SUMPRODUCT(MID(A3,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=MID(A3,18,18),"正确","错误")))

将公式中三处 A3 修改为你要校验的身份证号码所在单元格名,然后按回车键,公式自动完成校验。

3、鼠标放单元格右下角变十字时,按住下拉,完成所有行身份证号的校验,或双击本单元格右下角完成所有行校验。

4、认真核对显示校验错误的身份证号码,更正后校验列会变为“正确”。

5、身份证最后一位为校验位,但不能完全保证身份证号码的正确性,如果同时出现两位或多位号码错误,校验结果也可能显示“正确”,如图,




H2输入公式
=IF(AND(LEN(G2)=18,CHOOSE(MOD(SUMPRODUCT(MID(G2,ROW($1:$17),1)*2^(18-ROW($1:$17))),11)+1,1,0,"X",9,8,7,6,5,4,3,2)&""=RIGHT(G2)),"正确","错误")
下拉即可标记出来

===============
其实上面只是针对18位身份证的校验公式
如果既有15又有18位的话公zd式就长多了

=IF(LEN(A2)=18,IF(CHOOSE(MOD(SUMPRODUCT(MID(A2,ROW($1:$17),1)*2^(18-ROW($1:$17))),11)+1,1,0,"X",9,8,7,6,5,4,3,2)&""=RIGHT(A2),"正确","错误"),IF(LEN(A2)=15,IF(CHOOSE(MOD(SUMPRODUCT(MID(A2,ROW($1:$14),1)*2^(15-ROW($1:$14))),11)+1,1,0,"X",9,8,7,6,5,4,3,2)&""=RIGHT(A2),"正确","错误"),"错误"))

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网