Pcsafer

  • 首页
  • 实用工具
    • 杀毒软件
    • 漏洞补丁
    • 协同办公
    • 多媒体
    • 常用软件
    • 浏览器
    • 图像图像
    • 系统软件
    • 开发工具
    • 上传下载
    • 网络软件
    • 系统驱动
    • 卸载优化
    • 编程开发
    • 文本工具
    • 备份还原
    • 人工智能
  • 技术博客
    • 安全公告
    • 游戏目录
    • 教育教学
  • 开源项目
    • 开源网站代码
    • 服务器软件
  • Android
    • 手机系统软件
    • 手机图像
    • 手机音乐播放器
    • 手机视频
  • macOS应用
Pcsafer:专注电脑软件安全,重塑清爽阅读环境。
  1. 首页
  2. 电脑软件
  3. 正文

利用Excel函数公式 验证18位身份证号码对错

2019年12月6日 4532点热度 7人点赞 0条评论

从上图的编辑栏中可以看到公式(默认的全部都是二代18位的身份证号码)

=IF(B2='','',IF(MID('10X98765432',MOD(SUMPRODUCT(MID(B2,ROW($1:$17),1)*{7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11)+1,1)=RIGHT(B2),'正确','错误'))

那么这个公式表达的是什么意思呢?其实呀,我们身份证号码的编制,是遵循了一定规则的,并不是按顺序随便取的。从倒数第二位可以判断性别一样,这就是其中一个编制规则。只是今天我们要说的这个规则,不像判断性别那样普及,不是每个人都知道的。

二代身份证是由18位数字组成的,它的编制有一个规律:将前17位数字进行一种特定的运算,这个运算的结果必定等于第18位数字。那到底是什么样的特定运算呢?

1.身份证号码有一组固定的17位系数,分别对应身份证号码的前17位数字。这组固定的系数是:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。(别问我是怎么知道的,我网上查的。也别问为什么偏偏是这17位,而不是其他的,因为就是这样定下的,是固定的,详情网上可以查到。)

2.将该系数分别与身份证号码的前17位数字相乘,再把17个相乘的结果相加。

3.用相加的结果除以11,看余数是多少,再给它加上1,余数+1。

4.身份证号码还有一组固定的11位校验码:1、0、X、9、8、7、6、5、4、3、2。(与上面所说的系数一样,也是固定的。)

5.通过前三步的计算,得出的是几,就取第四步中校验码的第几位。所取出的校验码,与身份证号码的第18位做比较,如果相等,则说明符合校验规则,号码输入正确。否则,号码输入错误。

而这个公式,只是使用函数将以上的计算规则翻译了出来,所以学习这个公式,需要两点,第一,要认识这些函数;第二,要知道这个规则。如果不了解这个规则,光认识函数,也是搞不懂的。

例如, 370125197608157443,前面17位数字分别乘以17位固定的系数,然后将17个乘积加起来,得出结果是383

然后使用MOD函数求余数,383除以11的余数是9

下一步就是对照这个余数对应1、0、X、9、8、7、6、5、4、3、2这一组校验码的位数了,余数是9,感觉应该是对应第9位,但并不是,因为除以11的余数只可能是0~10这11个数字,但是并没有第0位这种说法啊,我们需要的是第1位到第11位,所以要在余数后面加1之后,再去对照。9+1=10,校验码的第十位是3, 正好等于370125197608157443这组身份证号码的最后一位,所以是正确的,没有输入错误。

大家可以自行验证,欢乐的很

图一中的红色删除线,是使用的条件格式

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Excel函数公式
最后更新:2019年12月6日

guest

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
注意事项
建议从官方渠道下载,避免第三方修改版植入恶意代码,保障数据安全。

Copyright © 2022 - 2026 PcSafer.com. All Rights Reserved.

探索安全、开源与实用的数字边界 / Exploring the Boundaries of Security, Open Source, and Utility.

关于我们 / About | 免责声明 / Disclaimer | 隐私政策 / Privacy | 联系我们 / Contact | 网站地图 / Sitemap
粤ICP备2022024228号 | 粤公网安备 44190002006251号