分享

用Excel校验身份证号码的真伪

 L罗乐 2017-08-19

【2】工作实际运用Excel案例,带你从入门走向技巧帝;

【3】开设Excel培训班,为需要人的提供顶级的最专业服务;

【4】承接不同类型的定制开发业务。


上能玩转函数公式,下能调戏vba代码,左能做得村里的主,右能修得了手机!


不要迷恋哥,哥只是个传说!


传说中的土豆哥除了不会生孩子(娃从他肚中出来),其他啥都会!


言归正传,一起来看看今天土豆哥给咱带啥好玩的了!


话说土豆哥有个好差事—村官,本是兼职,做着做着成本职工作了。

因上了个新系统,土豆哥需要将手里好几个村的数据都导入进去,结果好多都显示“公民身份证号码格式错误!

没办法,土豆哥找来户口本核对,原来是一开始录数据的妹子将身份证号码录错了,导致数据无法导进系统。

好几个村几十万的数据,如何验证身份证的真假,这能难倒咱们的土豆哥吗?函数公式、自定义函数齐上阵,就是这么犀利!


简化模拟数据如下:



身份证号码的最后一位就是校验码,是根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,根据精密的计算公式计算出来的。


最后一位数字校验码是由前17位唯一确定的,随便乱填的身份证号就不能通过校验。


身份证号码校验码的计算:


(1)17位数字本体码加权之和

S = SUM(Ai * Wi) i = 0,1,2,...,16即17位数字

Ai:表示第i位置上的身份证号码数字的值

Wi:表示第i位置上的加权因子

即:Wi数位:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2


(2)17位数字值加权之和取模

T= S MOD 11


(3)取模得到对应的数位值:0 1 2 3 4 5 6 7 8 9 10,即11位

VerTi 校验码值:1 0 X 9 8 7 6 5 4 3 2 ,即11位 一一对应


  • 方法一:函数公式



公式:

=MID('10X98765432',MOD(SUMPRODUCT(MID(A2,ROW($1:$17),1)*2^(18-ROW($1:$17))),11) 1,1)=RIGHT(A2)


算法思路解析:


比如身份证号码:510122200001116815


(1)算出加权之和



(2)17位数字值加权之和取模



(3)根据余数与校验码对应



余数7对应的校验码是5,该身份证号最后一位数是5,所以该身份证是真的。


  • 方法二:自定义函数



赶紧拿出自己的身份证验证下吧!


作者:犀利土豆哥

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多