身份证由18位组成,第18位(最后一位)为校验码。
一、计算原理
步骤1:十七位数字本体码加权求和,从左到右编号为1到17
先对前17位数字的权求和,S = Sum(Ai * Wi), i =1, ... , 17
Ai:表示第i位置上的身份证号码数字值
Wi:表示第i位置上的加权因子,Wi=[7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2];
步骤2:校验码 =mod((12-mod(sum(Ai * Wi),11),11),得到0,1,2,……,10。如果是10则用X代替。
说明:余数为0-1-2-3-4-5-6-7-8-9-10这11个数字。其对应的校验码为1-0-X-9-8-7-6-5-4-3-2。也就是,A18=mod(12-余数,11)。
举例:某身份证号码是34052419800101001X。
前17位乘积和,S=3*7+4*9+5*5+2*8+4*4+1*2+9*1+8*6+1*9+1*5+1*2=189
余数=189 mod 11=2
效验码=12-余数=10,对应X
二、使用Excel进行计算校验码
设身份证号码位于A1,单元格格式为文本。
A1=34052419800101001X,则校验码=MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*{7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11)+1,1)=X
联系客服