【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,身份证号码正确,否则错误

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

相关推荐
Data-Miner5 小时前
商品ABC分类分析怎么用AI做?脚本复用+图表可编辑的一次完整实操
人工智能·数据分析·excel
E-iceblue3 天前
Excel 列转行/行列转换全指南:从 4 种常见解法到 Python 批量自动化
python·excel·python库·spire.xls
Data-Miner3 天前
AI处理数据的脚本复用与逻辑复用有什么区别?哪种方式更能沉淀工作成果
数据分析·excel
福兮说3 天前
在浏览器里写一个“够用就好“的 Excel 公式求值器
前端·javascript·excel·编译原理
慧都小妮子4 天前
标签打印如何减少手工抄数?用Bartender 直连 Excel 批量打印
excel·bartender·条码打印·标签打印软件·数据驱动打印·工业打印机
SunnyDays10114 天前
Java 设置 Excel 数据验证:整数、日期、文本长度、下拉列表和时间
java·excel·数据验证·下拉列表
Metaphor6924 天前
使用 Python 设置 Excel 行列自适应 【代码示例】
python·excel
用户0332126663675 天前
使用 Python 设置 Excel 行列自适应 【代码示例】
python·excel
企业数字化笔记5 天前
固定资产Excel批量导入怎么防重复?资产编码、重复检查和错误回执
java·后端·excel
CORNERSTONE3655 天前
低代码开发有哪些应用场景?
低代码·excel·erp·mes·企业数字化