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

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

相关推荐
_大龄13 小时前
前端解析excel
前端·excel
johnny2331 天前
智能电子表格:Airtable、NocoDB、teable、APITable
excel
2501_930707781 天前
如何使用C#代码在Excel 文件中添加工作表
excel
shouchaobao2 天前
免费PDF工具:PDF转Word/Excel/图片+AI总结+合并拆分+OCR识别,多端无广告!
pdf·word·excel
allbs2 天前
spring boot项目excel导出功能封装——4.导入
spring boot·后端·excel
m5655bj2 天前
使用 Python 高效复制 Excel 行、列、单元格
开发语言·python·excel
温轻舟3 天前
Python自动办公工具01-Excel文件编辑器
开发语言·python·编辑器·excel·温轻舟
WarPigs3 天前
Unity编辑器开发笔记
unity·编辑器·excel
allbs3 天前
spring boot项目excel导出功能封装——3.图表导出
spring boot·后端·excel
lqz19933 天前
根据html导出excel和word
html·word·excel