Excel判断身份证号校验码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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), "正确","错误"))。