大多数人身份证号最后一位都是数字,但有个别号码最后一位却是"X"。
如果你查百度,会得到如下答案:
当最后一位编码是10的时候,因为多出一位,所以就用X替换。
可大多数人不知道的是,这个10是怎么来的?是随机抽取的?
No! 它是用前17位号码算出来的:
如果你看上表有点头晕,兰色就用Excel表格一步步算给你看。
把身份证前17位拆分开来
在后面输入系列,然后相乘并求和
对D列求和并计算除以数字11后余数
=MOD(SUM(D2:D18),11)
再从下表查找8对应的编码,结果为4。
所以也可以看出韦小宝的身份证号是编造的假证件号。
看了这么多计算步骤是不是感觉有点麻烦,其实一个Excel公式就可以搞定!
=VLOOKUP(MOD(SUM(MID(A1,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1){7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11),{0,1;1,0;2,"X";3,9;4,8;5,7;6,6;7,5;8,4;9,3;10,2},2,0)或=LOOKUP(MOD(SUM(MID(A2,ROW(1:17),1) {7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11),{0,1;1,0;2,"X";3,9;4,8;5,7;6,6;7,5;8,4;9,3;10,2})
如果想验证一个身份证号码是否正确,还可以使用另一个公式A1中为身份证号码:(下面公式为数组公式,非365版本按Ctrl+shift+enter输入)=MOD(SUM(MID(A1,ROW(1:17),1)*{7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2})+IF(RIGHT(A1)="X",10,RIGHT(A1)),11)只要结果为1,身份证号码正确,否则错误
这几个公式同学们要收藏起来,将来可以用来验证身份证号码真伪,必竟最后一位计算过程复杂,如果胡编乱造最后一位很大机率是不对应的。