身份证号码校验也可以利用excel函数公式完成,无需vba编程。
一、18位身份证号码校验函数公式:
=IF(LEN(B2)=18,IF(MID(“10X98765432”,MOD(SUM(MID(LEFT(B2,17),ROW(INDIRECT(“1:17”)),1)*2^(18-ROW(INDIRECT(“1:17″)))),11)+1,1)=RIGHT(B2,1),”通过”,”校验未通过”),””)
二、15位身份证号码升18位函数公式:
=IF(LEN(B2)=15,REPLACE(B2,7,,19)&MID(“10X98765432”,MOD(SUM(MID(REPLACE(B2,7,,19),ROW(INDIRECT(“1:17”)),1)*2^(18-ROW(INDIRECT(“1:17″)))),11)+1,1),””)
三、同时完成15位升位或18位校验的函数公式:
=IF(LEN(B2)=18,IF(MID(“10X98765432”,MOD(SUM(MID(LEFT(B2,17),ROW(INDIRECT(“1:17”)),1)*2^(18-ROW(INDIRECT(“1:17″)))),11)+1,1)=RIGHT(B2,1),”通过”,”校验未通过”),IF(LEN(B2)=15,REPLACE(B2,7,,19)&MID(“10X98765432”,MOD(SUM(MID(REPLACE(B2,7,,19),ROW(INDIRECT(“1:17”)),1)*2^(18-ROW(INDIRECT(“1:17″)))),11)+1,1),””))
以上公式中B2为身份证号码所在单元格。录入公式后按 ctrl + shift + 回车结束公式,使公式处于{}括号之内方能计算正确,但不能直接在公式两边录入{} 。
评论前必须登录!
注册