EXCEL中如何校验身份证号码的有效性?

需在某一单元格中录入身份证号码,如何才能判断所录入的身份证号码是正确的?
具体的录入方式如下:
当A1为0时,A2则必须录入18位的身份证号码;此时需校验A2的有效性
当A1非0时,A2则为非身份证号码,此时不需校验A2的有效性。

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-09
可用“数据有效性”进行简单校验。
方法:
选定单元格区域,点菜单“数据”——“有效性”,点“设置”标签,在“允许”中选择“自定义”,在后面“公式”中输入=and(len(a1)=18,countif(s:s,left(a1,6)))。点“出错警告”标签,点中“出错警告”,在“样式”中选“停止”,在“标题”中输入“你输入的身份证号有误!请重新输入!”。
说明:该办法只检查了输入的身份证位数是否为18位和地区编号(事先在S列建立地区编码表)是否正确,对顺序码和数字校验码的检查,需要用VBA或其他开发工具。
第2个回答  2013-03-31
假设身份证号码(18位,文本格式)在D2单元格,则有效性检验公式为:
=IF(LEFT(D2,17)&MID("10X98765432",MOD(SUM(MID(D2,1,1)*2^17,MID(D2,2,1)*2^16,MID(D2,3,1)*2^15,MID(D2,4,1)*2^14,MID(D2,5,1)*2^13,MID(D2,6,1)*2^12,MID(D2,7,1)*2^11,MID(D2,8,1)*2^10,MID(D2,9,1)*2^9,MID(D2,10,1)*2^8,MID(D2,11,1)*2^7,MID(D2,12,1)*2^6,MID(D2,13,1)*2^5,MID(D2,14,1)*2^4,MID(D2,15,1)*2^3,MID(D2,16,1)*2^2,MID(D2,17,1)*2^1),11)+1,1)=D2,"真实","此身份证号码为错")追问

试了一下,不行喔。我录入的单元格位置是N7,已把公式上的D2全改为了N7。
是在有效性那是设,是吗?

追答

不是,直接作为公式输入你想要显示结果的单元格。此单元格格式必须是常规格式。

追问

这样不行啊!我是需在N7上录入身份证号码,录入完毕后必须马上提示出错,不能在另外的单元格显示出错。有办法实现吗?
再次感谢!

第3个回答  2020-02-03
330702197108020812
第4个回答  2013-03-31
需要显示在哪里?追问

就在录入的单元格内显示出错,如果正确就不需提示,有办法实现吗?谢谢!

追答

在任意单元格显示"有效","无效!!"
公式
=IF(A1=0,IF(AND(LEN(A2)=18,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)),"有效","无效!!"),"")
-----------------------------------------------------------------
"就在录入的单元格内显示出错,如果正确就不需提示"

用 =OR(A10,AND(LEN(A2)=18,CHOOSE(MOD(SUMPRODUCT((0&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)))
设置数据有效性

公式中的A1 , A2 可以根据实际需要调整

追问

试了一下第二种的,只能是当A1为空时,才对A2作校验;当如A1有值时,则不作校验。请问该如何,请再指教,谢谢!

追答

"当A1为0时,A2则必须录入18位的身份证号码;此时需校验A2的有效性
当A1非0时,A2则为非身份证号码,此时不需校验A2的有效性。"

按你上面的这个要求,
当A1为0 时,对A2作校验;
当A1非0 时,不作校验

本回答被提问者采纳