ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 函数与公式 > 15位身份证变为18位方法

15位身份证变为18位方法

作者:绿色风 分类: 时间:2022-08-18 浏览:4670
楼主
健康快乐123
看到网上有很多关于15位身份证如何变为18位的方法,但是讲的不是很通俗,因此自己进行一些研究用比较通俗的方法进行了讲解,由于本人水平有限因此有不完善的地方,敬请高手指点,这里先谢谢了。
 
一、18位身份证号码的意义

334622        19780215        001        2
六位数字地址码        八位数字出生日期码        三位数字顺序码        一位数字校验码

1、前六位表示地址。
2、其次八位表示出生年月日。
3、再其次三位表示顺序码,顺序码的奇数表示男性,偶数表示女性。
4、最后一位表示效验码。

二、15位和18位比较

334622        780215        001         
334622        19780215        001        2
                       
1、15位身份证的年用两位数表示,18位则用四位数表示,并且都是加19。
2、15位身份证没有效验码,18位身份证有效验码。

三、如何将19加入到15位号码中

因为身份证是90年代的事,并且二代身份证也是90年代后期开始执行的,所以15位身份证在改为18位时只加19就可以了。
用=REPLACE(a1,7,,19)公式可以将19加入到身份证中,根据身份证中数字的的意义可以找到加入的位置是7,假设15位身份证号码输入在a1单元格中,用上面的公式可以将19插入其中
2楼
eliane_lei
水哥,我来给你顶一下**
3楼
健康快乐123
谢谢雷雷
4楼
健康快乐123
四、最后一位校验码如何计算
校验码 是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。通俗的讲就是把第三步中变为17位的号码中的每个位置上的数值乘以每个位置的加权因子,然后对这些乘积求和,然后再对这个和进行求余数,所有的身份证中求和的余数只能有11种结果就是0,1,2,3,4,5,6,7,8,9,10。最后根据求和的余数的结果和效验码对照表进行比对,可以查出最后一位效验码的数值是多少。
1、每位号码的加权因子计算方法
每位号码加权因子,从左到右依次为2的17、16、15………次方的模(余数)
‘=mod(2^17,11)        7
‘=mod(2^16,11)        9
‘=mod(2^15,11)        10
‘=mod(2^14,11)        5
‘=mod(2^13,11)        8
‘=mod(2^12,16)        4
‘=mod(2^11,11)        2
‘=mod(2^10,11)        1
‘=mod(2^9,11)        6
‘=mod(2^8,11)        3
‘=mod(2^7,11)        7
‘=mod(2^6,11)        9
‘=mod(2^5,11)        10
‘=mod(2^4,11)        5
‘=mod(2^3,11)        8
‘=mod(2^2,11)        4
‘=mod(2^1,11)        2
对应公式中的2^(18-row($1:$17))部分
得到的结果就是每位号码的加权因子,这个值是固定值
5楼
健康快乐123
2、求17位号码中每位号码与加权因子的乘积的和
如上述号码
3        7        21
3        9        27
4        10        40
6        5        30
2        8        16
2        4        8
1        2        2
9        1        9
7        6        42
8        3        24
0        7        0
2        9        18
1        10        10
5        5        25
0        8        0
0        4        0
1        2        2
身份证每位号码        加权因子        274
对应公式中的
SUM(MID(REPLACE(A1,7,,19),ROW($1:$17),1)*MOD(2^(18-ROW($1:$17)),11))
3、对红色的结果进行求模
=MOD(274,11)
求模结果是10
6楼
健康快乐123
五、验证码对照表
如前所讲求模的结果只能有11中结果,即0,1,2,3,4,5,6,7,8,9,10,和验证码的对照表如下

求模结果        0        1        2        3        4        5        6        7        8        9        10
                                                                                                   
验证码表        1        0        x        9        8        7        6        5        4        3        2
对应公式中的部分:
MOD(SUM(MID(REPLACE(A1,7,,19),ROW($1:$17),1)*MOD(2^(18-ROW($1:$17)),11)),11)
六、根据求模的结果上下对应查找的验证码
例子中的身份证号码经过计算后查找的结果应该是2
那么上面的身份证号变为18位就是
334622197802150012
七、公式中的一点说明
1、由于公式中MOD(SUM(MID(REPLACE(A1,7,,19),ROW($1:$17),1)*MOD(2^(18-ROW($1:$17)),11)),11)求模的结果是10,而它的位置数是11因此要在结果后面加1得到它的位置数,这样就可以找到它的验证码对应的数值了,用mid("10x98765432",位置数,1)就可以得到我们想要的验证码数值。

2、这是个数组公式,输入的时候要注意,要用ctrl+shift+enter结束。
3、将你想改变的身份证号码输入到a列,选择b1单元格当出现填充柄时双击可以向下填充公式到a列有数据的位置。
7楼
健康快乐123
15位自动变为18位.rar
这是压缩文件,前面讲的有的部分没有对正,大家可以看压缩文件
8楼
健康快乐123
有一种情况不知道如何进行处理,就是两个人的15位身份证号码完全相同,因为现实中有。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap