如何在EXCEL中批量将15位身份证号码变更为18位身份证号码?

如题所述

15位的老身份证号码插入年份即可升到17位:例如 B2 单元格中是这个17位的号码:=IF(LEN(A2)=15,MID(A2,1,6)&19&MID(A2,7,9))那么在 C2 中输入数组公式(公式输入后须同时按下 Ctrl+Shift+Enter 组合键方可完成):=B2&LOOKUP(MOD(SUM(MID(B2,ROW($1:$17),1)*MOD(2^(18-ROW($1:$17)),11)),11),{0,1,2,3,4,5,6,7,8,9,10},{1,0,X,9,8,7,6,5,4,3,2})即可得到18位(上述公式为函数大师 阵军 的作品).参考资料:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。校验方法:(1)十七位数字本体码加权求和公式S = Sum(Ai * Wi), i = 0, … , 16 ,先对前17位数字的权求和Ai:表示第i位置上的身份证号码数字值Wi:表示第i位置上的加权因子Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2(2)计算模Y = mod(S, 11)(3)通过模得到对应的校验码
温馨提示:答案为网友推荐,仅供参考
相似回答