身份证最后一位校验码算法如下:
1. 将身份证号码前17位数分别乘以不同的系数,从第1位到第17位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
2. 将得到的17个乘积相加。
3. 将相加后的和除以11并得到余数。
4. 余数可能为0 1 2 3 4 5 6 7 8 9 10这些个数字,其对应的身份证最后一位校验码为1 0 X 9 8 7 6 5 4 3 2。
excel公式:
=IF(LOOKUP(MOD(SUMPRODUCT(--MID(A1,COLUMN($A:$Q),1)*{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}),11),{0,1,2,3,4,5,6,7,8,9,10},{"1","0","X","9","8","7","6","5","4","3","2"})=RIGHT(A1),"真实","伪造")
或简化:
=IF(MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A1,1),"真实","伪造")
不明白,示例