身份证15位升级为18位的公式
身份证正确检验及验证公式

身份证正确检验及验证公式验证公式一=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函数判断。
15位身份证补全为18位身份证算法

15位⾝份证补全为18位⾝份证算法 最近在参与⼀个项⽬需求的开发,其中涉及到了⾝份证号码,⾝份证号码作为我国公民的唯⼀标识,有着⾮同寻常的意义,由于业务的要求15位的⾝份证号码⽆法命中,所以需要补全为18位,⼀开始⾃⼰想着加个年份的前两位,后⾯再加个X不就⾏了嘛,后来代码写不下去了,上⽹查了资料,才知道⾃⼰想的是多么天真,还是⽐较复杂的,折腾了⼀下午终于有了眉⽬。
⼀、15位⾝份证和18位⾝份证号码结构介绍要进⾏⾝份证号码的验证,⾸先需要了解我国⾝份证号码的编码规则。
我国⾝份证号码多由若⼲位数字或者数字与字母混合组成。
早期⾝份证由15位数字构成,这主要是在1980年以前发放的⾝份证,后来考虑到千年⾍问题,因为15位的⾝份证号码只能为1900年1⽉1⽇到1999年12⽉31⽇出⽣的⼈编号,所以⼜增加了18位⾝份证号码编号规则。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15A A A A A A Y Y M M D D N N S前六位AAAAAA是⾝份证编码对象的所在地(出⽣地)的编码,该号码可由国家统计局公布的相关标准中得到。
YY表⽰出⽣年的后两位,MM和DD表⽰出⽣⽉和⽇,不⾜两位的⾼位补0,NNS为顺序号,⽆法确定。
S为性别识别码,男性为奇数,⼥性为偶数。
了解了这些,再来写代码就变得容易多了。
⼆、算法实现了解了⾝份证号码的规则后,我们就可以推断出,⾝份证的15位转化位需要两步。
⾸先把15位⾝份证号补全为17位,然后再补全最后⼀位。
但是最后⼀位是数字还是字母X?这⾥⼜出现了问题。
我们知道,⾝份证的最后⼀位为校验位,那么最后⼀位是怎么得到的呢?原来,最后⼀位是由数字1-9组成,超过9的⽐如11就⽤字母X表⽰,否则号码就变成了19位。
了解了这些,经过整理得出⾝份证补全算法实现思想如下:step1、将15位⾝份证号码加⼊出⽣年变为17位 step2、将step1得到的⾝份证17位数分别乘以不同的系数。
身份证号码的验证及15位升18位的算法

(3)通过模得到对应的校验码
Y: 0 1: 1 0 X 9 8 7 6 5 4 3 2
四、举例如下:
北京市朝阳区: 11010519491231002X
广东省汕头市: 440524188001010014
一、范围
该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。
二、编码对象
公民身份号码的编码对象是具有中华人民共和国国籍的公民。
三、号码的结构和表示形式
1、号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序 码和一位数字校验码。
2、地址码
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3、出生日期码
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4、顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确的规定。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称"社会保障号码"更名为"公民身份 号码",另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。GB11643-1999《公民身份号码》主要内容如 下:
15位数身份证升级方法

第一步:身份证号码数据挪到A列,插入一列空白列B列,B1输入=LEN(A1)后向下拉。
筛选出15位的老身份证重新做个表第二步:身份证号码数据挪到A列,插入一列空白列B列,B1输入公式=IF(LEN(A1)=15,CONCATENATE(MID(A1,1,6),"19",MID(A1,7,9),MID("10X98765432",MO D(MID(A1,1,1)*7+MID(A1,2,1)*9+MID(A1,3,1)*10+MID(A1,4,1)*5+MID(A1,5,1)*8+MID(A1 ,6,1)*4+1*2+9*1+MID(A1,7,1)*6+MID(A1,8,1)*3+MID(A1,9,1)*7+MID(A1,10,1)*9+MID(A1, 11,1)*10+MID(A1,12,1)*5+MID(A1,13,1)*8+MID(A1,14,1)*4+MID(A1,15,1)*2,11)+1,1)),A1) 这样15位身份证号码就变成了18位。
这个表保存好设为:表一(后面VLOOKUP函数用的上)第三步:将做好的身份信息进行批量联网核查。
第四步:批量联网核查正确的即可做远程授权核实:有两个方法:一、在60465里面直接输入15位身份证号,18位数的减成15位的大家肯定都会输二、如果想在60465里面输客户号,可用VOOKLUP函数在第二步“表一”里面将客户号对应。
VLOOKUP函数用法不好描述请百度(提示:在验证公式正确性时,很多身份证号通过这个公式错了,有可能是倒第二位数字本来网点原来就录错了与公式无关。
)参考资料:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。
排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码B2=RIGHT(A2,1)例如身份证号在A2单元,在B2单元格用上述函数可以取出身份号尾数的X,然后向下拖就可以取出所有的尾数X。
范文:EXCEL身份证核对公式

EXCEL身份证核对公式EXCEL中你输入的公民身份号码正确吗?目录:1、输入错误自动红色显示提示2、15位身份证号码升位为18位公民身份号码3、自动生成出生日期和性别4、中华人民共和国国家标准GB 11643-1999 公民身份号码一、输入错误自动红色显示提示在企业报送的EXCEL电子表格中,经常遇到公民身份号码输入错误而给工作带来不必要的麻烦,降低了工作效率。
有没有办法在公民身份号码录入错误时进行自动提示呢?其实【中华人民共和国国家标准GB 11643-1999】对公民身份号码第18位校验码已作了详细的规定,只是我们在电算工作中很少用到而已。
可用以下方法在EXCEL中录入公民身份号码错误时自动红字显示:选择需要录入公民身份号码的单元格(如A1),选择菜单:格式/条件格式。
①点击条件1左边的下拉箭头,选择公式,在右边的公式栏中输入以下公式:=AND(LEN(D4)<>0,LEN(D4)<>15,LEN(D4)<>18)接着单击格式,点击字体,颜色选择红色,确定。
②在条件格式中点添加,点击条件2左边的下拉箭头,选择公式,在右边的公式栏中输入以下公式:=MID("10X98765432",MOD(SUMPRODUCT(MID(D4,ROW($1:$ 17),1)*MOD(2^(18-ROW($1:$17)),11) ),11)+1,1)<>MID(D4,18,1)接着单击条件2中的格式,点击字体,颜色选择红色,确定,确定。
右键按住A1单元格右下角的小黑点,向下拖至所需要录入公民身份号码的所有单元格,松开右键,选择仅填充格式。
在接着的录入中,凡是输入不是15位或18位,或者输入18位错误的公民身份号码都会红色显示。
身份证重复显蓝色的公式:COUNTIF($D$4:$D$65536,D4)>1 二、15位身份证号码升位为18位公民身份号码要使单元格中A1中的15位身份证号码升位为18位公民身份号码,只需在单元格A2中输入以下公式即可:=REPLACE(A1,7,,19)&MID("10X98765432",MOD(SUMPRODU CT(MID(REPLACE(A1,7,,19),ROW($1:$17),1)*MOD(2^(18-ROW($1:$17)),11)),11)+1,1)或=REPLACE(A1,7,,19)&LOOKUP(MOD(SUMPRODUCT(MID(RE PLACE(A1,7,,19),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})三、自动生成出生日期和性别如果单元格A1为身份证号码或公民身份号码,单元格A2为性别,单元格A3为出生日期,则操作如下:在单元格A2中输入以下公式,则会自动生成性别:=IF(LEN(A1)=18,IF(INT(MID(A1,17,1)/2)=MID(A1,17,1)/2,"女","男"),IF(LEN(A1)=15,IF(INT(MID(A1,15,1)/2)=MID(A1,15,1)/2,"女","男"),""))在单元格A3中输入以下公式,则会自动生成出生日期:=IF(LEN(A1)=18,DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2) ),IF(LEN(A1)=15,DATE(MID(A1,7,2),MID(A1,9,2),MID(A1,11,2)),""))[顶] EXCEL中多条件求和、计数的4种方法EXCEL中多条件求和、计数的方法大致可归纳为4种:⒈自动筛选法⒉合并条件法⒊数组公式法⒋调用函数法先打开上面的工作表,分别用这4种方法对同时满足“A2:A15区域为A,B2:B15区域为10,C2:C15区域为Ⅰ”条件的E2:E15区域进行求和、计数。
身份证正确检验及验证公式

验证公式一=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函数判断。
身份证正确检验及验证公式

公式二出处
EXCEL提取身份证出生日期、性别、检验身份证号码正确性
中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:
15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。
18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。
假定身份证号码在B1单元格,下面的公式可以综合判断以上三种错误:
验证公式三
=IF(OR(LEN(B1)=18,LEN(B1)=15),IF(LEN(B1)=18,IF(OR(MONTH(DATE(1*(MID(B1,7,4)),1*(MID(B1,11,2)),1*(MID(B1,13,2))))<>1*(MID(B1,11,2)),DAY(DATE(1*(MID(B1,7,4)),1*(MID(B1,11,2)),1*(MID(B1,13,2))))<>1*(MID(B1,13,2))),"月日错误",""),IF(LEN(B1)=15,IF(OR(MONTH(DATE(1*(MID(B1,7,2))+1900,1*(MID(B1,9,2)),1*(MID(B1,11,2))))<>1*(MID(B1,9,2)),DAY(DATE(1*(MID(B1,7,2))+1900,1*(MID(B1,9,2)),1*(MID(B1,11,2))))<>1*(MID(B1,11,2))),"月日错误",""))),"身份证位数不对")&IF(AND(LEN(B1)=18,1*MID(B1,7,4)>YEAR(TODAY())-6),"年份错误","")
15位转18位excel公式

15位转18位excel公式
在Excel中,可使用以下公式将15位身份证号转换为18位:
```
=IF(LEN(A1)=15,LEFT(A1,6)&"19"&MID(A1,7,9)&MOD(SUM PRODUCT(--MID(A1,LEN(A1)-13,1)*({7; 9; 10; 5; 8; 4; 2; 1; 6; 3; 7; 9; 10; 5; 8; 4; 2})&15),11),A1)
```
将A1替换为实际包含15位身份证号的单元格引用即可。
该公式的原理是:
1. 检查输入的身份证号是否为15位,若是15位,则进行转换,反之将原值返回;
2. 将15位身份证号的前6位和后9位保留,将第7位到第15
位(包括)替换为"19";
3. 计算身份证号的最后一位校验位,根据校验位的计算方法,依次将身份证号的前17位与系数的乘积相加并取余11,再用11减去余数得到校验位。
请注意,此公式只适用于中国大陆的身份证号。