第二代居民身份证号码的校验码计算模型、步骤、公式
最新 第二代身份证号码提取出生年月日的公式 (很简单)

1、第二代身份证号码提取出生年月日的公式:=MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2)注:A是列,1是行,&在数字键7的上方。
2、第二代身份证号码提取性别男、女的公式:=IF(MOD(MID(A1,17,1),2),"男","女")注:A是列,1是行。
3、excel用身份证号算年龄的工式比如身份证号保存在a1单元格,那么可以使用=mid(a1,7,4)来取出出生年,再用当前年份减去这个就是年龄了。
4、提取身份证出生年月="19"&MID(B1,9,2)&"年"&MID(B1,11,2)&"月"&MID(B1,13,2)&"日"5、提取身份证年龄=YEAR(NOW())-YEAR(IF(LEN(B1)=18,DATE(MID(B1,7,4),MID(B1,11,2),M ID(B1,13,2)),DATE(MID(B1,7,2),MID(B1,9,2),MID(B1,11,2))))6、提取身份证性别=IF(LEN(B1)=15,IF(MOD(MID(B1,15,1),2)=1,"男","女"),IF(MOD(MID(B1,17,1),2)=1,"男","女"))7、公式内的“B1”代表的是输入身份证号码的单元格。
Excel自动提取身份证中生日和性别以及年龄(注意:以B2单元格中是18位身份证号为例)一、提取出生日期的输入公式=MID(B2,7,4)&"年"&MID(B2,11,2)&"月"&MID(B2,13,2)&"日"二、判断性别“男女”的输入公式=IF(MID(B2,17,1)/2=TRUNC(MID(B2,17,1)/2),"女","男")三、利用身份证号码求年龄=IF(B2="","",DATEDIF(TEXT((LEN(B2)=15)*19&MID(B2,7,6+(LEN (B2)=18)*2),"#-00-00"),TODAY(),"y"))八、计算年龄的公式?datedif(开始日期,结束日期,"M")九、用公式计算最大年龄?max(D3:D21)十、用公式计算25--35岁之间的人数?=COUNTIFS(D3:D21,">"&25,D3:D21,"<"&35)十一、计算25岁以下的人数?=COUNTIF(D3:D21,">"&25)十二、计算25岁以下人数的比例?=COUNTIF(D3:D21,">"&25)/count(D3:D21)十三、用excel做表输入年月日,可以变成例如1986-01-01的格式吗?能的话怎么变?先选中单元格,鼠标右击,“设置单元格格式”,“数字”,“自定义”,在类型处输入e-mm-dd 确定十四、1.自动录入性别:“=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))”if假如(len(C2)得到C2的字符长度等于15,[15时mod除以2的余数(取mid(C2单元格,第15个的,1个字符),除以2)],[不等于15条件不成立时if(mod后面除以2的余数(取C2,第17个,的1个字符),除以2)]所涉及函数:len() 取单元格字符长度。
身份证号码的规则及验证原理

⾝份证号码的规则及验证原理【⾝份证号码的规则】1、15位⾝份证号码组成:ddddddyymmddxxs共15位,其中:dddddd为6位的地⽅代码,根据这6位可以获得该⾝份证号所在地。
yy为2位的年份代码,是⾝份证持有⼈的出⾝年份。
mm为2位的⽉份代码,是⾝份证持有⼈的出⾝⽉份。
dd为2位的⽇期代码,是⾝份证持有⼈的出⾝⽇。
这6位在⼀起组成了⾝份证持有⼈的出⽣⽇期。
xx为2位的顺序码,这个是随机数。
s为1位的性别代码,奇数代表男性,偶数代表⼥性。
2、18位⾝份证号码组成:ddddddyyyymmddxxsp共18位,其中:其他部分都和15位的相同。
年份代码由原来的2位升级到4位。
最后⼀位为校验位。
校验规则是:(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)通过模得到对应的校验码Y: 0 1 2 3 4 5 6 7 8 9 10校验码: 1 0 X 9 8 7 6 5 4 3 2也就是说,如果得到余数为1则最后的校验位p应该为对应的0.如果校验位不是,则该⾝份证号码不正确。
以下为js版本的校验实例。
<script language="javascript"><!--var powers=new Array("7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2");var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");var sex="male";//校验⾝份证号码的主调⽤function validId(obj){var _id=obj.value;if(_id=="")return;var _valid=false;if(_id.length==15){_valid=validId15(_id);}else if(_id.length==18){_valid=validId18(_id);}if(!_valid){alert("⾝份证号码有误,请检查!");obj.focus();return;}//设置性别var sexSel=document.getElementById("sex");var options=sexSel.options;for(var i=0;i<options.length;i++){if(options[i].value==sex){options[i].selected=true;break;}}}//校验18位的⾝份证号码function validId18(_id){_id=_id+"";var _num=_id.substr(0,17);var _parityBit=_id.substr(17);var _power=0;for(var i=0;i< 17;i++){//校验每⼀位的合法性if(_num.charAt(i)<'0'||_num.charAt(i)>'9'){return false;break;}else{//加权_power+=parseInt(_num.charAt(i))*parseInt(powers[i]);//设置性别if(i==16&&parseInt(_num.charAt(i))%2==0){sex="female";}else{sex="male";}}}//取模var mod=parseInt(_power)%11;if(parityBit[mod]==_parityBit){return true;}return false;}//校验15位的⾝份证号码function validId15(_id){_id=_id+"";for(var i=0;i<_id.length;i++){//校验每⼀位的合法性if(_id.charAt(i)<'0'||_id.charAt(i)>'9'){return false;break;}}var year=_id.substr(6,2);var month=_id.substr(8,2);var day=_id.substr(10,2);var sexBit=_id.substr(14);//校验年份位if(year<'01'||year >'90')return false;//校验⽉份if(month<'01'||month >'12')return false;//校验⽇if(day<'01'||day >'31')return false;//设置性别if(sexBit%2==0){sex="female";}else{sex="male";}return true;}//--></script><input type="text"onblur="validId(this)"maxlength=18 size=18> <select id="sex"><option value="male">男</option><option value="female">⼥</option>。
Excel能够验证身份证号码对错的公式来了,还不快点收藏!

Excel能够验证身份证号码对错的公式来了,还不快点收藏!当我们在Excel中输入大量身份证号码的时候,为了防止输入错误,就要与身份证上面的数字进行反复核实,很耗时不说,难免还是会有看花眼输错了的情况发生。
今天就跟大家分享一个可以判断身份证号码对错的公式,提高一些工作效率,减少失误。
从上图的编辑栏中可以看到公式(默认的全部都是二代18位的身份证号码)=IF(B2='','',IF(MID('10X98765432',MOD(SUMPRODUCT(MID (B2,ROW($1:$17),1)*{7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11)+1,1)= RIGHT(B2),'正确','错误'))那么这个公式表达的是什么意思呢?其实呀,我们身份证号码的编制,是遵循了一定规则的,并不是按顺序随便取的。
从倒数第二位可以判断性别一样,这就是其中一个编制规则。
只是今天我们要说的这个规则,不像判断性别那样普及,不是每个人都知道的。
二代身份证是由18位数字组成的,它的编制有一个规律:将前17位数字进行一种特定的运算,这个运算的结果必定等于第18位数字。
那到底是什么样的特定运算呢?1.身份证号码有一组固定的17位系数,分别对应身份证号码的前17位数字。
这组固定的系数是:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。
(别问我是怎么知道的,我网上查的。
也别问为什么偏偏是这17位,而不是其他的,因为就是这样定下的,是固定的,详情网上可以查到。
)2.将该系数分别与身份证号码的前17位数字相乘,再把17个相乘的结果相加。
3.用相加的结果除以11,看余数是多少,再给它加上1,余数+1。
4.身份证号码还有一组固定的11位校验码:1、0、X、9、8、7、6、5、4、3、2。
(与上面所说的系数一样,也是固定的。
用Excel计算身份证第18位(校验码)

十年后,我连log是什么都不知道,但还是可以活得好好的!
是这样吗?
JUNE.作 . 品
身份证中包含着我们诸多的信息:比如家庭住址、出生年月、性别等。 可是大家见没见过有同学的身份证数字里有“X”的吗?它是什么含义呢?
籍贯
411322 19910621 061 6
出生日期 性别
首先我们得出前17位的乘积和是259,然后用259除以11得出的结果是13+6, 也就是说其余数是6。最后通过对应规则就可以知道余数6对应的数字是6。所 以,可以判定这是一个合格的身份证号码
我们来现场演示一下吧!
李刚, 拿你的身份证号来。。。
MID("10X98765432",MOD(SUM(MOD(2^(18-ROW($1:$17)),11)*MID(A1,ROW($1:$17),1)),11)+1,1)
你们这样的人是不是想找一个像EXCEL一样的基友——想隐藏就隐藏,想筛选就筛选,想 删除就删除,一个不高兴,嘿,我还就不保存了。
5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的 Ⅹ。如果余数是10,身份证的最后一位号码就是2。 例如:某下图的身份证号码是411322199106210616。我们要看看这个身份证 是不是合法的身份证。
验证码
1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的 系数分别为:
7-9-10-5-8-4-2-1-6-3-7-9-的结果相加。
Heavy metal
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。
关于身份证号码最后一位的校验码的算法

关于身份证号码最后一位的校验码的算法关于身份证号码最后一位的校验码的算法我国现行使用公民身份证号码有两种尊循两个国家标准,〖GB 11643-1989〗和〖GB 11643-1999〗。
〖GB 11643-1989〗中规定的是15位身份证号码:排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。
〖GB 11643-1999〗中规定的是18位身份证号码:公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。
排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。
顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。
顺序码的奇数分给男性,偶数分给女性。
校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
公式如下:∑(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。
以下为列子*-----------------------------**此函数功能:输入的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位的身份证号。
第二代身份证代码规则

第二代身份证代码规则/原理剖析及相关代码一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。
GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。
二、编码规则:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。
排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。
其含义如下:1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位(不足两位加0)、2(同上)位数字表示,之间不用分隔符。
3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
4.校验码(R),一位数字,通过前17位数字根据一定计算得出。
三、关于地址码含义的详细解释:身份证前六位是地区代码,我们用ABCDEF表示。
代码的解释规则如下:A:国内区域1 华北三省二市2 东北三省3 华东六省一市4 华南六省5 西南四省一市6 西北五省7 台湾8 港澳B(或者说是AB,就是前2位):省(直辖市,自治区,特别行政区)代码按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。
具体省(直辖市,自治区,特别行政区)代码如下:11-15 京津冀晋蒙21-23 辽吉黑31-37 沪苏浙皖闽赣鲁41-46 豫鄂湘粤桂琼50-54 渝川贵云藏61-65 陕甘青宁新81-82 港澳CD:城市代码从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市代码从省会开始排,比如2101=沈阳2102=大连…… 只有地级城市有独立的城市代码,县级市没有。
身份证正确检验及验证公式

身份证正确检验及验证公式验证公式一=IF(LEN(H20)=18,IF(RIGHT(H20,1)="X",IF(CHOOSE(MOD(SU M(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+L EFT(RIGHT(H20,13))*4+LEFT(RIGHT(H20,12))*2+LEFT(RIGHT(H20 ,11))*1+LEFT(RIGHT(H20,10))*6+LEFT(RIGHT(H20,9))*3+LEFT(RI GHT(H20,8))*7+LEFT(RIGHT(H20,7))*9+LEFT(RIGHT(H20,6))*10+ LEFT(RIGHT(H20,5))*5+LEFT(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)),"正确!","出错啦!"),IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18))*7+LEFT(RIGHT(H 20,17))*9+LEFT(RIGHT(H20,16))*10+LEFT(RIGHT(H20,15))*5+LEF T(RIGHT(H20,14))*8+LEFT(RIGHT(H20,13))*4+LEFT(RIGHT(H20,1 2))*2+LEFT(RIGHT(H20,11))*1+LEFT(RIGHT(H20,10))*6+LEFT(RIG HT(H20,9))*3+LEFT(RIGHT(H20,8))*7+LEFT(RIGHT(H20,7))*9+LEF T(RIGHT(H20,6))*10+LEFT(RIGHT(H20,5))*5+LEFT(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(I NDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(H20,1)身份证有15位和18位两种,身份证位数是否正确,我们可以用LEN函数判断。
身份证校验码的确定计算方法11111

身份证识别码的确定计算方法大陆的身份证为18位,老的身份证是15位。
眼下人们在换发的新身份证俗称为“二代身份证”或者叫“二代征”,老身份证叫“一代证”。
一代身份证是上世纪80年代中期开始的,是依据《中华人民共和国居民身份证条例》(1985年9月6日第六届全国人民代表大会常务委员会第十二次会议通过1985年9月6日中华人民共和国主席令第二十九号公布1985年9月6日起施行)制作颁发的,采用印刷和照相技术塑封而成,只能视读不能机读,易于伪造,而且无法迅捷有效地对公民进行人、证同一认定,不利于有效打击伪造、变造居民身份证以及利用伪造证件、他人证件进行金融犯罪、流窜作案等违法犯罪活动,严重制约了这一法定证件在证明和识别公民身份方面的作用的正常发挥。
“二代证”是依据《中华人民共和国居民身份证法》(2003年6月第十届全国人大常委会第三次会议通过了《居民身份证法》,于2004年1月1日起施行。
本法自2004年1月1日起施行,《中华人民共和国居民身份证条例》同时废止)制作颁发的。
“二代证”由多层聚酯材料复合而成的单页卡式证件,可以视读,内嵌非接触式IC卡芯片作为“机读”存储器,可以将变动信息(如住址变动)追加写入;芯片使用特定的逻辑加密算法,有利于证件制发、使用中的安全管理,增强防伪功能;芯片和电路线圈在证卡内封装,能够保证证件在各种环境下正常使用,寿命在十年以上;并且具有读写速度快,使用方便,易于保管,以及便于各用证部门使用计算机网络核查等优点。
二代证”主要采用数字防伪和印刷防伪技术。
数字防伪用于机读信息的防伪,是将持证人的照片图象和身份项目内容等数字化后存入芯片。
可以有效起到证件防伪的作用,防止伪造证件或篡改证件机读信息内容。
证件表面的视读防伪,主要是采用高新技术制作的防伪标识和印刷防伪技术,具有一定的防伪功效。
18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确的规定。