搜索你感兴趣的问题
身份证的含义及构成和校验方法
左顾右看 2024-06-02 09:33:44
推荐回答
左顾右看 2024-06-07 10:14:37

身份证是人的一生中唯一的验证码,不论在什么地方,什么场合都离不开它,但对很多人来说,身份证的含义以及他的构成和它的验证是不甚了解的,特别是在大批量数据处理的过程中对身份证的依赖性很大,为了能使我们输入的身份证有效正确,能够自动判别我们输入的身份证是否有误,很有必要对身份证的结构和验证作进一步的深入了解。
现在我就身份证的构成和验证,给大家介绍一种简单的方法。
但在学习之前,必须对基本的常用函数要有一定的了解并熟悉掌握和应用它。公式中的F11代表身份证所在的单元格地址。如果对函数熟悉的,可以将各个函数组合使用。

操作方法

公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。地址码(前六位数) 表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行;出生日期码(第七位至十四位) 表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符;顺序码(第十五位至十七位) 表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性;校验码(第十八位数) 作为尾号的校验码,是由号码编制单位按统一的公式计算出来的。

将身份证号码前17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。公式入输入公式:MID(F11,1,1)*7,MID(F11,2,1)*9,MID(F11,3,1)*10,MID(F11,4,1)*5,MID(F11,5,1)*8,MID(F11,6,1)*4,MID(F11,7,1)*2,MID(F11,8,1)*1,MID(F11,9,1)*6,MID(F11,10,1)*3,MID(F11,11,1)*7,MID(F11,12,1)*9,MID(F11,13,1)*10,MID(F11,14,1)*5,MID(F11,15,1)*8,MID(F11,16,1)*4,MID(F11,17,1)*2

将身份证号码前17位数分别乘以不同的系数求和(介绍两种简单的求和方法),个人可以根据自己的需要进行选择:1、=MID(F11,1,1)*7+MID(F11,2,1)*9+MID(F11,3,1)*10+MID(F11,4,1)*5+MID(F11,5,1)*8+MID(F11,6,1)*4+MID(F11,7,1)*2+MID(F11,8,1)*1+MID(F11,9,1)*6+MID(F11,10,1)*3+MID(F11,11,1)*7+MID(F11,12,1)*9+MID(F11,13,1)*10+MID(F11,14,1)*5+MID(F11,15,1)*8+MID(F11,16,1)*4+MID(F11,17,1)*22、=SUM(MID(F11,1,1)*7,MID(F11,2,1)*9,MID(F11,3,1)*10,MID(F11,4,1)*5,MID(F11,5,1)*8,MID(F11,6,1)*4,MID(F11,7,1)*2,MID(F11,8,1)*1,MID(F11,9,1)*6,MID(F11,10,1)*3,MID(F11,11,1)*7,MID(F11,12,1)*9,MID(F11,13,1)*10,MID(F11,14,1)*5,MID(F11,15,1)*8,MID(F11,16,1)*4,MID(F11,17,1)*2)

将身份证号码前17位数乘以的系数之和除以11,看余数是多少?余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。输入公式:MOD(G11,11)=“”*“”。“”*“”代表除以11后取的余数。

将所得的余数与相应的对应码对应起来。其分别对应的最后一位身份证的号码为1-0-X -9-8-7-6-5-4-3-2。比如:余数为0,其最后一位对应码为1;余数为1,其最后一位对应码为0等。输入公式:=IF(MOD(G11,11)=0,1,IF(MOD(G11,11)=1,0,IF(MOD(G11,11)=2,"x"IF(MOD(G11,11)=3,9,IF(MOD(G11,11)=4,8,IF(MOD(G11,11)=5,7,IF(MOD(G11,11)=6,6,)))))))&IF(MOD(G11,11)=7,5,IF(MOD(G11,11)=8,4,IF(MOD(G11,11)=9,3,IF(MOD(G11,11)=10,2,""))))这是if函数和mod函数的组合函数使用方法。“&”是连接符号,因为if函数只能连用7次,而判断身份证取余后共有11位,为此,必须将7个以上的if函数用“&”连起来。

最后来验证所得的对应码与身份证最后一位数字是否一致,如果一致,说明输入身份证有效,反正,则输入的身份证有误。输入公式:=IF(AND(MID(F11,18,1)=I11,LEN(F11)=18),"身份证校验正确""身份证校验有误")

这里在给他大家介绍另一种组合验证身份证的函数。=IF(LEN(F11)=18,IF(RIGHT(F11,1)="X"IF(CHOOSE(MOD(SUM(LEFT(RIGHT(F11,18))*7+LEFT(RIGHT(F11,17))*9+LEFT(RIGHT(F11,16))*10+LEFT(RIGHT(F11,15))*5+LEFT(RIGHT(F11,14))*8+LEFT(RIGHT(F11,13))*4+LEFT(RIGHT(F11,12))*2+LEFT(RIGHT(F11,11))*1+LEFT(RIGHT(F11,10))*6+LEFT(RIGHT(F11,9))*3+LEFT(RIGHT(F11,8))*7+LEFT(RIGHT(F11,7))*9+LEFT(RIGHT(F11,6))*10+LEFT(RIGHT(F11,5))*5+LEFT(RIGHT(F11,4))*8+LEFT(RIGHT(F11,3))*4+LEFT(RIGHT(F11,2))*2),11)+1,1,0,"X"9,8,7,6,5,4,3,2)=LEFT(RIGHT(F11,1)),"身份证校验正确""身份证校验错误!"),IF(CHOOSE(MOD(SUM(LEFT(RIGHT(F11,18))*7+LEFT(RIGHT(F11,17))*9+LEFT(RIGHT(F11,16))*10+LEFT(RIGHT(F11,15))*5+LEFT(RIGHT(F11,14))*8+LEFT(RIGHT(F11,13))*4+LEFT(RIGHT(F11,12))*2+LEFT(RIGHT(F11,11))*1+LEFT(RIGHT(F11,10))*6+LEFT(RIGHT(F11,9))*3+LEFT(RIGHT(F11,8))*7+LEFT(RIGHT(F11,7))*9+LEFT(RIGHT(F11,6))*10+LEFT(RIGHT(F11,5))*5+LEFT(RIGHT(F11,4))*8+LEFT(RIGHT(F11,3))*4+LEFT(RIGHT(F11,2))*2),11)+1,1,0,"X"9,8,7,6,5,4,3,2)=LEFT(RIGHT(F11,1))*1,"身份证校验正确""身份证校验有误")),IF(LEN(F11)=15,"老号,请注意"IF(LEN(F11)=0,"缺号码""位数不对")))

特别提示

F11只是身份证所在单元格,是动态的

大家都关注
有问题 @爱问
Powered by iask.com