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

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

相关推荐
吃我两拳15 分钟前
EasyExcel停止当前Sheet的读取,且不影响主线程及其他Sheet读取的方法
excel
qq_393828224 小时前
办公文档批量打印器 Word、PPT、Excel、PDF、图片和文本,它都支持批量打印。
windows·word·powerpoint·excel·软件需求
过期的秋刀鱼!5 小时前
用“做饭”理解数据分析流程(Excel三件套实战)
数据挖掘·数据分析·excel·powerbi·数据分析入门
挑战者6668886 小时前
如何将Excel表的内容转化为json格式呢?
excel
干净的坏蛋6 小时前
EasyExcel实现Excel复杂格式导出:合并单元格与样式设置实战
excel
张太行_10 天前
MySQL与Excel比较
数据库·mysql·excel
cwtlw10 天前
Excel学习03
笔记·学习·其他·excel
郭优秀的笔记10 天前
计算本地Excel某两列的差异值
excel
涔溪10 天前
实现 el-table 中键盘方向键导航功能vue2+vue3(类似 Excel)
前端·vue.js·excel