当前位置:文档之家› Excel判断身份证号校验码

Excel判断身份证号校验码

Excel判断身份证号校验码
假设在一个工作表中:A列是姓名,B列是身份证号码,C列是备注。

在B列中输入18位身份证号码后,在C2单元格中输入计算数组公式:
=RIGHT(B2,1)=MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1) 然后再将该公式复制给C列其他单元格。

公式的计算结果是一个逻辑值,True表示校验正确,即计算出来的校验码与输入的相同,而False则表示校验错误。

值得注意的是,使用校验码进行校验判断为正确的身份证号码未必是正确的,但判断为错误的则肯定是错误的,即通过校验的只是身份证号码正确的必要条件而非充分条件。

当然,在实际输入中,身份证号码输入错误而校验正确的情况很少见。

在大多数情况下,使用校验码进行校验可以大大提高身份证号码输入的正确性。

RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。

MID 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。

MOD 返回两数相除的余数。

SUM 返回某一单元格区域中所有数字之和。

ROW 返回引用的行号。

INDIRECT 返回由文本字符串指定的引用。

或者输入数组公式:
=IF(LEN(B2)<>18,"错误
",IF(MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=MID(B2,18,1), "正确","错误"))。

相关主题