分享

身份证号码校验也可以利用excel函数公式完成

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多