身份证号验证及末位验证码计算公式

合集下载

验证身份证号是否正确的公式、通过身份证号提取出生年月、性别、年龄等的公式汇总

验证身份证号是否正确的公式、通过身份证号提取出生年月、性别、年龄等的公式汇总

身份证号验证:=IF(LEN(身份证号所在单元格)=0,"空",IF(LEN(身份证号所在单元格)=15,"老号",IF(LEN(身份证号所在单元格)<>18,"位数不对",IF(CHOOSE(MOD(SUM(MID(身份证号所在单元格,1,1)*7+MID(身份证号所在单元格,2,1)*9+MID(身份证号所在单元格,3,1)*10+MID(身份证号所在单元格,4,1)*5+MID(身份证号所在单元格,5,1)*8+MID(身份证号所在单元格,6,1)*4+MID(身份证号所在单元格,7,1)*2+MID(身份证号所在单元格,8,1)*1+MID(身份证号所在单元格,9,1)*6+MID(身份证号所在单元格,10,1)*3+MID(身份证号所在单元格,11,1)*7+MID(身份证号所在单元格,12,1)*9+MID(身份证号所在单元格,13,1)*10+MID(身份证号所在单元格,14,1)*5+MID(身份证号所在单元格,15,1)*8+MID(身份证号所在单元格,16,1)*4+MID(身份证号所在单元格,17,1)*2),11)+1,1,0,"X",9,8,7,6,5,4,3,2)=IF(ISNUMBER(RIGHT(身份证号所在单元格,1)*1),RIGHT(身份证号所在单元格,1)*1,"X"),"正确","错误"))))性别:=IFERROR(IF(MOD(VALUE(MID(身份证号所在单元格,17,1)),2)=1,"男","女"),"")年龄:=IFERROR(YEAR(NOW())-VALUE(MID(身份证号所在单元格,7,4)),"")出生年月日:=CONCATENATE(MID(身份证号所在单元格,7,4),"-",MID(身份证号所在单元格,11,2),"-",MID(身份证号所在单元格,13,2))是否农村青壮年(女16至45、男16至50):=IF(户口性质<>"农业户口","否",IF(AND(性别="女",G4>=16,G4<=45),"是",IF(AND(性别="男",G4>=16,G4<=50),"是","否")))照片插入:第一步:新建一寸照文件夹为“目标文件夹”,照片命名例:99人以内(01+姓名),999人以内(001+姓名)第二步:在基础信息表内输入公式:=”照片源地址”&\”&序号栏&姓名栏&”.jpg”输入公式后,把公式内所有的“\”都换为“\\”;序号要求:99人以内从01开始,999人以内从001开始;第三步:到WORD文档,建立表格,并使光标在照片格“插入”→“文档部件”→“域”→“includepicture”→域属性输入“123”→FN+ALT+F9→把先前输入的“123”删除,在邮件合并内找输入合并域,选择“照片栏”→FN+F9。

身份证末位计算法

身份证末位计算法

身份证号的前6位表示公民常住所在市、县、区的划分代码。

然后是8位出生日期码、表示公民公历年月日生日、然后3位是顺序码、表示在同一地址码所标识的区域范围内、对同年、同月、同日生的人编定的顺序号、单数分配给男性、双数分配给女性、第18位、校验码、采用数据处理系统、根据前17位数字码计算出来的、可以用来判定身份号码是否合法、真伪。

身份证号前17数字分别对应不同的系数、这个系数是规定好的、由左往右依次是7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2
用上面的17位数依次乘你身份证前17位数、然后把所得的积相加在除以11得到的余数再对应校验码!
得到的余0、1、2、3、4、5、6、7、8、9、10依次对应1、0、X、9、8、7、6、5、4、3、2
也就是说你身份正前17位相乘的积加起来除以11的余数是2、那么对应的就是X,否则这个身份证就是不合法的
第17数男性为单数、女性为双数、也就是说不用看身份证只要看这个号就知道男女了!查夜店在登记处有人用这个。

以前单位一个同事身份证号第18位就是X,都不明白是怎么回事,这回才明白,校验码是1,0,X,9,8,7,6,5,4,3,2.十一个数,也就是012345678910,其中用XX代替10,如果算出你前17位余数是2,那么你身份尾数就是10,这样就变成19位不合法了,所以X用10代替,X也是罗马号10的意思,这样就还是18位。

身份证正确检验及验证公式

身份证正确检验及验证公式

验证公式一=IF(LEN(H20)=18,IF(RIGHT(H20,1)="X",IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18) )*7 LEFT(RIGHT(H20,17))*9 LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5 LEFT(RIGHT(H20,14))*8 LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3LEFT(RIGHT(H20,8))*7 LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10LEFT(RIGHT(H20,5))*5 LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4LEFT(RIGHT(H20,2))*2),11)1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1)),"正确!","出错啦!"),IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18))*7 LEFT(RIGHT(H20,17))*9LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5 LEFT(RIGHT(H20,14))*8 LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2 LEFT(RIGHT(H20,11))*1LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(H20,8))*7LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10 LEFT(RIGHT(H20,5))*5LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4 LEFT(RIGHT(H20,2))*2),11)1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1))*1,"正确!","出错啦!")),IF(LEN(H20)=15,"老号,请注意!",IF(LEN(H20)=0,"缺号码","位数不对!")))验证公式二=MID("10X98765432",MOD(SUMPRODUCT(MID(H20,ROW(INDIRECT("1:17")),1)*2^(18 -ROW(INDIRECT("1:17")))),11) 1,1)=RIGHT(H20,1)身份证有15位和18位两种,身份证位数是否正确,我们可以用LEN函数判断。

身份证号码验证规则

身份证号码验证规则

⾝份证号码验证规则⾝份证号码验证规则说明:该规则为平台通⽤规则,适⽤于所有填⾝份证号码的场景。

⼀、概述⾝份证号码中的校验码是⾝份证号码的最后⼀位,是根据GB 11643-1999中有关公民⾝份号码的规定,根据精密的计算公式计算出来的,公民⾝份号码是特征组合码,由⼗七位数字本体码和⼀位数字校验码组成。

排列顺序从左⾄右依次为:六位数字地址码,⼋位数字出⽣⽇期码,三位数字顺序码,最后⼀位是数字校验码。

⾝份证最后⼀位是根据前⾯⼗七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

作为尾号的校验码,是由号码编制单位按统⼀的公式计算出来的,如果某⼈的尾号是0-9,都不会出现X,但如果尾号是10,那么就得⽤X来代替,因为如果⽤10做尾号,那么此⼈的⾝份证就变成了19位,⽽19位的号码违反了国家标准,并且我国的计算机应⽤系统也不承认19位的⾝份证号码。

Ⅹ是罗马数字的10,⽤X来代替10,可以保证公民的⾝份证符合国家标准。

⼆、需求产品⾝份证号码输⼊框内限制输⼊18个数字、英⽂字符,判断⾝份证号码是否为合法⾝份证号。

不合法及字段超出或未输⼊内容,则在输⼊框后显⽰提⽰语,具体提⽰语详见对应的⽂档。

三、计算⽅法1、将前⾯的⾝份证号码17位数分别乘以不同的系数。

从第⼀位到第⼗七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2;2、将这17位数字和系数相乘的结果相加;3、⽤加出来和除以11,看余数是多少;4、余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。

其分别对应的最后⼀位⾝份证的号码为1 0 X 9 8 7 6 5 4 3 2;5、通过上⾯得知如果余数是2,就会在⾝份证的第18位数字上出现罗马数字的X。

如果余数是10,⾝份证的最后⼀位号码就是2;例如:某男性的⾝份证号码是340524************。

我们要看看这个⾝份证是不是合法的⾝份证。

身份证号码最后一位校检码的计算公式

身份证号码最后一位校检码的计算公式

⾝份证号码最后⼀位校检码的计算公式我国现⾏使⽤公民⾝份证号码有两种尊循两个国家标准,〖GB 11643-1989〗和〖GB 11643-1999〗。

〖GB 11643-1989〗中规定的是15位⾝份证号码:排列顺序从左⾄右依次为:六位数字地址码,六位数字出⽣⽇期码,三位数字顺序码,其中出⽣⽇期码不包含世纪数。

〖GB 11643-1999〗中规定的是18位⾝份证号码:公民⾝份号码是特征组合码,由⼗七位数字本体码和⼀位数字校验码组成。

排列顺序从左⾄右依次为:六位数字地址码,⼋位数字出⽣⽇期码,三位数字顺序码和⼀位数字校验码。

地址码表⽰编码对象常住户⼝所在县(市、旗、区)的⾏政区划代码。

⽣⽇期码表⽰编码对象出⽣的年、⽉、⽇,其中年份⽤四位数字表⽰,年、⽉、⽇之间不⽤分隔符。

顺序码表⽰同⼀地址码所标识的区域范围内,对同年、⽉、⽇出⽣的⼈员编定的顺序号。

顺序码的奇数分给男性,偶数分给⼥性。

校验码是根据前⾯⼗七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

为什么除11,在于计算校验码时的函数。

请看下边的函数:公式如下:∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 ) (1)"*" 表⽰乘号i--------表⽰⾝份证号码每⼀位的序号,从右⾄左,最左侧为18,最右侧为1。

a[i]-----表⽰⾝份证号码第 i 位上的号码W[i]-----表⽰第 i 位上的权值 W[i] = 2^(i-1) mod 11计算公式 (1) 令结果为 R根据下表找出 R 对应的校验码即为要求⾝份证号码的校验码C。

R 0 1 2 3 4 5 6 7 8 9 10C 1 0 X 9 8 7 6 5 4 3 2由此看出 X 就是 10,罗马数字中的 10 就是X,所以在新标准的⾝份证号码中可能含有⾮数字的字母X。

~(重点看清楚)~ 这个函数展开就是:a[1]*W[1]+a[2]*W[2]+……+a[18]*W[18]=?mod11=“?对11求模”如:22mod11=2 23mod22也是2 33mod11=3就是出于后⾯那个数,只取商不取余数所以从函数和其展开式来看要对11求模,所⼀要除11以下为列⼦:*此函数功能:输⼊的15位或17位或18位的⾝份证号,返回校验后的最后⼀位**-----------------------------FUNCTION sfzjyParameters cIDDO CASECASE LEN(ALLTRIM(cID)) = 15cID = STUFF(ALLTRIM(cID),7,0,"19")CASE LEN(ALLTRIM(cID)) = 18 OR LEN(ALLTRIM(cID)) = 17cID =LEFT(ALLTRIM(cID),17)OTHERWISERETURN .F.ENDCASEIf Len(ALLTRIM(cID))#17Return .f.EndifnSum=Val(SubStr(cID,1,1)) * 7 ;+ Val(SubStr(cID,2,1)) * 9 ;+ Val(SubStr(cID,3,1)) * 10 ;+ Val(SubStr(cID,4,1)) * 5 ;+ Val(SubStr(cID,5,1)) * 8 ;+ Val(SubStr(cID,6,1)) * 4 ;+ Val(SubStr(cID,7,1)) * 2 ;+ Val(SubStr(cID,8,1)) * 1 ;+ Val(SubStr(cID,9,1)) * 6 ;+ Val(SubStr(cID,10,1)) * 3 ;+ Val(SubStr(cID,11,1)) * 7 ;+ Val(SubStr(cID,12,1)) * 9 ;+ Val(SubStr(cID,13,1)) * 10 ;+ Val(SubStr(cID,14,1)) * 5 ;+ Val(SubStr(cID,15,1)) * 8 ;+ Val(SubStr(cID,16,1)) * 4 ;+ Val(SubStr(cID,17,1)) * 2*计算校验位check_number=INT((12-nSum % 11)%11)If check_number=10check_number='X'EndifReturn check_numberEndfunc*-----------------------------**此函数功能:输⼊的15位或18位⾝份证号,返回正确的18位的⾝份证号。

身份证校验码什么意思

身份证校验码什么意思

身份证校验码什么意思
计算方法
1.将之前身份证号的17位乘以不同的系数。

第一名到第十七名的系数分别是:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2;
2、将这17位数字和系数相乘的结果相加;
3、用加出来和除以11,看余数是多少;
4、余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。

其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2;
5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X。

如果余数是10,身份证的最后一位号码就是2;
作为数据,校验码在输入计算机或其他设备时容易出现输入错误。

为了减少输入错误,编码专家发明了各种检查和检错的方法,并根据这些方法设置校验码。

任何带校验码的代码都是由本体代码和校验码(如组织机构代码)组成的。

本体代码是要编码的对象的编号,校验码是附加在本体代码上的编号,用于检查本体代码在输入过程中的准确性。

每个本体代码只能有一个校验码,校验码可以通过指定的数学关系得到。

校验码的原理是:在系统中预置一个根据校验方法导出的校验公式编制的校验程序。

当带有校验码的代码输入到系统中时,系统使用校验程序对输入的本体代码进行计算,得到校验结果,然后将校验结果与输入代码的校验码进行比较,检查输入是否正确。

如果一致,说明代码输入正确,系统允许输入;如果不一致,说明代码输入错误,系统拒绝输入,要求重新输入代码。

Excel中常见与身份证有关的公式

Excel中常见与身份证有关的公式

Excel中常见与身份证有关的公式第一篇:Excel中常见与身份证有关的公式1.根据身份证号计算年龄=IF(D2<>“",DATEDIF(TEXT((LEN(D2)=15)*19&MID(D2,7,6+ (LEN(D2)=18)*2),”#-00-00“),TODAY(),”y“),)注意:D2单元格为身份证号,且为文本格式。

2.根据身份证号计算出生年月日第一种,计算出来的格式为××年××月××日=IF(LEN(D2)=15,”19“&MID(D2,7,2)&”年“&MID(D2,9,2)&”月“&MID(D2,11,2)&”日“,MID(D2,7,4)&”年“&MID(D2,11,2)&”月“&MID(D2,13,2)&”日“)或者=IF(LEN(D2)=15,19,”“)&TEXT(MID D2,7,8-(LEN(D2)=15)*2),”#年00月00日“)第二种,计算出来的格式为××年××月=IF(LEN(A2)=15,”19“&MID(A2,7,2)&”年“&MID(A2,9,2)&”月“,MID(A2,7,4)&”年“&MID(A2,11,2)&”月“)第三种计算出来的格式为2011/1/1 =MID(B11,7,4)&”/“&MID(B11,11,2)&”/“&MID(B11,13,2)3.根据身份证号计算性别=IF(MOD(IF(LEN(D2)=15,MID(D2,15,1),MID(D2,17,1)),2)=1,”男“,”女“)4.身份证号全部改为18位(输出正确18位),输入数组公式(ctrl+shift+enter结尾):=IF(LEN(A2)=15,REPLACE(A2,7,19)&MID(”10X98765432“,MOD(SUM(MID(REPLACE(A2,7,19),ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1),A2)5.以18位身份证为准输出15位身份证号:=IF(LEN(G2)=15,G2,LEFT(REPLACE(G2,7,2,),15))6.验证身份证号(G2为输入18位身份证号,H2为输出正确18位身份证号):=IF(G2<>0,IF(LEN(G2)=15,”一代身份证号“,(IF(LEN(G2)=18,IF(G2=H2,”正确“,”未通过验证“),IF(LEN(G2)>18,”超过18位,请核查“,”身份证号不完整“)))),)18位身份证号码转换成出生日期的函数公式:如果E2中是身份证,在F2中求出出生日期,F2=DATE(MIDB(E2,7,4),MIDB(E2,11,2),MIDB(E2,13,2)) 自动录入男女:=IF(MOD((IF(LEN(e2)=18,MID(e2,17,1),MID(e2,15,1))),2)=0,”女“,”男“)根据身份证号快速录入男女性别“记住”15/18位都可以的公式:转换出生日期:=IF(LEN(e2)=18,TEXT(MID(e2,7,8),”#-00-00“),”19“&TEXT(MID(e2,7,6),”#-00-00“))自动录入男女:=IF(E2=”“,”“,IF(MOD(RIGHT(LEFT(E2,17),1),2)=0,”女“,”男“))计算年龄(新旧身份证号都可以):=IF(AND(E2=”“),”“,IF(MIDB(E2,7,2)=”19",107-MIDB(E2 ,9,2),107-MIDB(E2,7,2)))第二篇:电子表格中根据身份证自动识别性别出生年月公式excel中如何根据身份证号,自动求出出生年月假如身份证号数据在A1单元格,在B1单元格中编辑公式=IF(LEN(A1)=15,“19”&MID(A1,7,2)&MID(A1,9,2)&MID(A1, 11,2),MID(A1,7,4)&MID(A1,11,2)&MID(A1,13,2))这样输出格式就都是19821010这种格式了。

18位身份证号码验证公式及标准

18位身份证号码验证公式及标准

18位身份证号码验证工具
计算依据及说明
根据《中华人民共和国国家标准》(GB 11643-1999)规定:
公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。

排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

地址码(1-6位):表示编码对象常住户口所在县(市、旗、区)的行政区划代码
生日码(7-14位):表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。

例如:1981年05月11日就用19810511表示。

顺序码(15-17位):为同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。

其中奇数分给男性,偶数分给女性。

校验码(18位):是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

第十八位数字的计算方法为:
1.将前面的身份证号码17位数分别乘以不同的权数。

从第一位到第十七位的权数分别为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。

2.将这17位数字和其对应的权数分别相乘并加总。

3.用加总来和除以11,看余数是多少?
4余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。

其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2。

5.通过上面得知,如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。

如果余数是10,身份证的最后一位号码就是2。

以上算法来源于网络,具体规范见国家相关标准。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档