当前位置: 来榜家园首页 > 生活资讯 

excel表格中如何判断身份证号码的数字校验码是否正确

=IF(MID("10X98765432",MOD(SUMPRODUCT(MID(I2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=MID(I2,18,1),"","错误")

说明:1、上面公式可以判断身份证号码是否有逻辑性错误,由于残疾证是身份证号码后面加两位,此公式对残疾证号的身份证判断同样适用。

2、操作前请将上面公式中的两处A1替换成电子表格中身份证号码所在的单元格。

3、如果身份证号码的最后一位校验码没问题,在表格中将显示空,如果校验码发现错误,单元格中将会出现“错误”两字。

=IF(MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=MID(A1,18,1),"","错误")

说明:1、上面公式可以判断身份证号码是否有逻辑性错误,由于残疾证是身份证号码后面加两位,此公式对残疾证号的身份证判断同样适用。

2、操作前请将上面公式中的两处A1替换成电子表格中身份证号码所在的单元格。

3、如果身份证号码的最后一位校验码没问题,在表格中将显示空,如果校验码发现错误,单元格中将会出现“错误”两字。

扩展阅读:

身份证号码中的校验码是身份证号码的最后一位,是根据〖中华人民共和国国家标准GB 11643-1999〗中有关公民身份号码的规定,根据精密的计算公式计算出来的,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码。

校验码依据:

身份证最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。

计算公式:

在PHP网页脚本语言中的 计算公式:

$card="xxx";//身份证号码

$map=array(1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2);

$sum = 0;

for($i = 17; $i > 0; $i--){

$s=pow(2, $i) % 11;

$sum += $s * $card[17-$i];

}

echo $map[$sum % 11];//这里显示最后一位校验码

Excel:

请在A1单元格输入18位身份证号码.

有的时候需要修改单元格的格式为文本,否则数字会被取近似值.

然后在任意单元格输入下面的公式就可以得到校验码.

看看是否与最后一位相符.就知道身份证号码是否符合编码规则了.

=LOOKUP(MOD(MID($A$1,1,1)*MOD(2^17,11)+MID($A$1,2,1)*MOD(2^16,11)+MID($A$1,3,1)*MOD(2^15,11)+MID($A$1,4,1)*MOD(2^14,11)+MID($A$1,5,1)*MOD(2^13,11)+MID($A$1,6,1)*MOD(2^12,11)+MID($A$1,7,1)*MOD(2^11,11)+MID($A$1,8,1)*MOD(2^10,11)+MID($A$1,9,1)*MOD(2^9,11)+MID($A$1,10,1)*MOD(2^8,11)+MID($A$1,11,1)*MOD(2^7,11)+MID($A$1,12,1)*MOD(2^6,11)+MID($A$1,13,1)*MOD(2^5,11)+MID($A$1,14,1)*MOD(2^4,11)+MID($A$1,15,1)*MOD(2^3,11)+MID($A$1,16,1)*MOD(2^2,11)+MID($A$1,17,1)*MOD(2^1,11),11),{0;1;2;3;4;5;6;7;8;9;10},{1;0;"X";9;8;7;6;5;4;3;2})

用数组公式计算:=MID("10X98765432",MOD(SUM(MID($A$1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1) 按ctrl+shift+Enter 计算

除以公式外

可以直接使用的简化参考公式如下两种:(以下皆为数组公式,身份证号码在B2单元格)

一、按规则

文字表达:将2的17次幂+2的16次幂+……+2的1次幂分别对应乘以身份证号码的1-17位数字,最后求和,再除以11,余数对应相应的字符

{=LOOKUP(MOD(SUM(2^{17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1}*MID($B2,ROW($1:$17),1)),11),{0,1;1,0;2,"X";3,9;4,8;5,7;6,6;7,5;8,4;9,3;10,2})}

二、按规律取数

文字表达:将身份证号码1-17位数字,分别乘以给定数字后求和,再除以11,余数对应相应的字符

{=LOOKUP(MOD(SUM(MID($B2,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})}

残疾证后两位

1代表视力;2听力;3言语;4肢体;5智力;6精神;7多重。

4代表级别;1为一级,2为二级,3为三级,4为四级,1-2级为重度残疾。

早 班 车   魅力老区   生活信息  生活资讯

猜你喜欢

热门资讯

最新更新

关注我们

微信扫描关注来榜家园公众号