多语言展示
当前在线:743今日阅读:167今日分享:16

Excel中判断身份证号最优解决方案

今天跟大家分享一下excel中几种处理身份证号的方法,小编研究了一下,发现这个问题很深,值得深究!先跟大家分享一个小编百度搜集来的经验吧,加上一些小编自己的见解希望能帮助大家解决一些实际的问题
工具/原料

Microsoft Office 2010

Excel中判断身份证号是否合法第一招
1

首先我们先在B列输入一些有待验证的身份证号码,如下图所示这样

2

下面到了关键是时候了,看这个公式,我看了很多网络上的公式大部分都不对的,这个公式要按照上面说的身份证号码要在B列并且从B1开始,后续会有讲解的,公式:=IF(TEXT(IF(MOD(12-(MID(B1,1,1)*7+MID(B1,2,1)*9+MID(B1,3,1)*10+MID(B1,4,1)*5+MID(B1,5,1)*8+MID(B1,6,1)*4+MID(B1,7,1)*2+MID(B1,8,1)*1+MID(B1,9,1)*6+MID(B1,10,1)*3+MID(B1,11,1)*7+MID(B1,12,1)*9+MID(B1,13,1)*10+MID(B1,14,1)*5+MID(B1,15,1)*8+MID(B1,16,1)*4+MID(B1,17,1)*2),11)=10,'X',MOD(12-(MID(B1,1,1)*7+MID(B1,2,1)*9+MID(B1,3,1)*10+MID(B1,4,1)*5+MID(B1,5,1)*8+MID(B1,6,1)*4+MID(B1,7,1)*2+MID(B1,8,1)*1+MID(B1,9,1)*6+MID(B1,10,1)*3+MID(B1,11,1)*7+MID(B1,12,1)*9+MID(B1,13,1)*10+MID(B1,14,1)*5+MID(B1,15,1)*8+MID(B1,16,1)*4+MID(B1,17,1)*2),11)),0)=MID(B1,18,1),'对','错')

3

将上面的公式复制到你们身份证相同的行数,就像上图一样,其中D1中的公式就是判断身份证是否合法的公式,小编研究了一下,这个判断方法不错,缺点是公式太长,而且小编发现这个公式存在局限性。如上图,姓名E的身份证号写成了19位(中间多出一个数),这个公式会判定它是错的,而当姓名F的身份证号写成了19位(最后多出了一个数),这个公式却依旧判定它是对的;并且当身份证号为空或者位数不对时,这个公式也只是显示计算错误“#VALUE!”,而无法得知错在哪儿。希望大家能帮助改进,但是这个公式是需要另一个公式搭配的,就是C1栏中的公式搭配起来才能更全面的判断位数等错误。

Excel中判断身份证号是否合法第二招
1

公式如下:=IF(LEN(B1)=0,'空',IF(LEN(B1)=15,'老号',IF(LEN(B1)<>18,'位数不对',IF(CHOOSE(MOD(SUM(MID(B1,1,1)*7+MID(B1,2,1)*9+MID(B1,3,1)*10+MID(B1,4,1)*5+MID(B1,5,1)*8+MID(B1,6,1)*4+MID(B1,7,1)*2+MID(B1,8,1)*1+MID(B1,9,1)*6+MID(B1,10,1)*3+MID(B1,11,1)*7+MID(B1,12,1)*9+MID(B1,13,1)*10+MID(B1,14,1)*5+MID(B1,15,1)*8+MID(B1,16,1)*4+MID(B1,17,1)*2),11)+1,1,0,'X',9,8,7,6,5,4,3,2)=IF(ISNUMBER(RIGHT(B1,1)*1),RIGHT(B1,1)*1,'X'),'正确','错误')))),这个就是C1中的公式判断长度,是否为空,是否为老号等问题。

2

同样的,这个公式也包含了一些验证是否合法的步骤,虽然重复冗杂的一些,但是他的正确性是很高的。第一行就明确显示了两个公式都判断错误,就是有一位是错的,所以我用红笔表示出来了,让大家能更好的理解。

注意事项
1

一代身份证和二代身份证号码数分别为15、18

2

如果要使用的话,其中需要一些小的修改,看到公式大家都会理解的,有不能理解的请联系我,我们一起讨论

推荐信息