Excel中验证身份证号码有效性的最佳方法

来源:本站整理 作者:网络笔记

最佳答案先跟大家分享一个小编百度来的公式吧!公式:=IF(TEXT(IF(MOD(12-(MID(B2,1,1)*7+MID(B2,2,1)*9+MID(B2,3,1)*10+MID(B2,4,1)*5+MID(B2,5,1)*8+MID(B2,6,1)*4+MID(B2,7,1)*2+MID(B2,8,1......

先跟大家分享一个小编百度来的公式吧!

公式:

=IF(TEXT(IF(MOD(12-(MID(B2,1,1)*7+MID(B2,2,1)*9+MID(B2,3,1)*10+MID(B2,4,1)*5+MID(B2,5,1)*8+MID(B2,6,1)*4+MID(B2,7,1)*2+MID(B2,8,1)*1+MID(B2,9,1)*6+MID(B2,10,1)*3+MID(B2,11,1)*7+MID(B2,12,1)*9+MID(B2,13,1)*10+MID(B2,14,1)*5+MID(B2,15,1)*8+MID(B2,16,1)*4+MID(B2,17,1)*2),11)=10,”X”,MOD(12-(MID(B2,1,1)*7+MID(B2,2,1)*9+MID(B2,3,1)*10+MID(B2,4,1)*5+MID(B2,5,1)*8+MID(B2,6,1)*4+MID(B2,7,1)*2+MID(B2,8,1)*1+MID(B2,9,1)*6+MID(B2,10,1)*3+MID(B2,11,1)*7+MID(B2,12,1)*9+MID(B2,13,1)*10+MID(B2,14,1)*5+MID(B2,15,1)*8+MID(B2,16,1)*4+MID(B2,17,1)*2),11)),0)=MID(B2,18,1),”对”,”错”)

 

小编研究了一下,这个判断方法不错,缺点是公式太长,而且小编发现这个公式存在局限性。如上图,姓名E的身份证号写成了19位(中间多出一个数),这个公式会判定它是错的,而当姓名F的身份证号写成了19位(最后多出了一个数),这个公式却依旧判定它是对的;并且当身份证号为空或者位数不对时,这个公式也只是显示计算错误“#VALUE!”,而无法得知错在哪儿。

所以小编深入研究了一下,得出另一个公式。

公式:

=IF(LEN(B2)=0,”空”,IF(LEN(B2)=15,”老号”,IF(LEN(B2)<>18,”位数不对”,IF(CHOOSE(MOD(SUM(MID(B2,1,1)*7+MID(B2,2,1)*9+MID(B2,3,1)*10+MID(B2,4,1)*5+MID(B2,5,1)*8+MID(B2,6,1)*4+MID(B2,7,1)*2+MID(B2,8,1)*1+MID(B2,9,1)*6+MID(B2,10,1)*3+MID(B2,11,1)*7+MID(B2,12,1)*9+MID(B2,13,1)*10+MID(B2,14,1)*5+MID(B2,15,1)*8+MID(B2,16,1)*4+MID(B2,17,1)*2),11)+1,1,0,”X”,9,8,7,6,5,4,3,2)=IF(ISNUMBER(RIGHT(B2,1)*1),RIGHT(B2,1)*1,”X”),”正确”,”错误”))))

网络笔记 学习文库

我这一生没什么理想,能治愈我的,从来都不是时间,而是内心的那份释怀和明白!

热门分类

热门工具

联系客服QQ:+