【Excel】身份证号最后一位“X”怎么计算

大多数人身份证号最后一位都是数字,但有个别号码最后一位却是"X"。
如果你查百度,会得到如下答案:

当最后一位编码是10的时候,因为多出一位,所以就用X替换。

可大多数人不知道的是,这个10是怎么来的?是随机抽取的?

No! 它是用前17位号码算出来的:

如果你看上表有点头晕,兰色就用Excel表格一步步算给你看。

把身份证前17位拆分开来

在后面输入系列,然后相乘并求和

对D列求和并计算除以数字11后余数

=MOD(SUM(D2:D18),11)

再从下表查找8对应的编码,结果为4。

所以也可以看出韦小宝的身份证号是编造的假证件号。

看了这么多计算步骤是不是感觉有点麻烦,其实一个Excel公式就可以搞定!

=VLOOKUP(MOD(SUM(MID(A1,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1){7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11),{0,1;1,0;2,"X";3,9;4,8;5,7;6,6;7,5;8,4;9,3;10,2},2,0)或=LOOKUP(MOD(SUM(MID(A2,ROW(1:17),1) {7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11),{0,1;1,0;2,"X";3,9;4,8;5,7;6,6;7,5;8,4;9,3;10,2})

如果想验证一个身份证号码是否正确,还可以使用另一个公式A1中为身份证号码:(下面公式为数组公式,非365版本按Ctrl+shift+enter输入)=MOD(SUM(MID(A1,ROW(1:17),1)*{7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2})+IF(RIGHT(A1)="X",10,RIGHT(A1)),11)只要结果为1,身份证号码正确,否则错误

这几个公式同学们要收藏起来,将来可以用来验证身份证号码真伪,必竟最后一位计算过程复杂,如果胡编乱造最后一位很大机率是不对应的。

相关推荐
测试老哥8 小时前
python+requests+excel 接口测试
自动化测试·软件测试·python·测试工具·测试用例·excel·接口测试
屹奕16 小时前
基于EasyExcel实现Excel导出功能
java·开发语言·spring boot·excel
我只会写Bug啊1 天前
Vue文件预览终极方案:PNG/EXCEL/PDF/DOCX/OFD等10+格式一键渲染,开源即用!
前端·vue.js·pdf·excel·预览
谅望者2 天前
Linux文件查看命令完全指南:cat、less、head、tail、grep使用详解
linux·excel·less·shell·文件操作·命令行·系统运维
众纳2 天前
SpringBoot + EasyExcel 实现导入Excel并支持Excel中图片也能导入
excel
m5655bj2 天前
如何使用 Python 转换 Excel 工作表到 PDF 文档
开发语言·c#·excel
Eiceblue2 天前
使用 Java 将 Excel 工作表转换为 CSV 格式
java·intellij-idea·excel·myeclipse
Bianca4272 天前
Excel正则表达式.获取字符
正则表达式·excel
办公解码器2 天前
Excel怎么在下拉菜单中选择计算方式?
excel
梦里不知身是客112 天前
kettle的mysql 根据条件,导出到不同的excel中
数据库·mysql·excel