身份证号码校验也可以利用excel函数公式完成
一、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 + 回车结束公式,使公式处于{}括号之内方能计算正确,但不能直接在公式两边录入{} 。