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

验证公式一

=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))*2

LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3

LEFT(RIGHT(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(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))*2 LEFT(RIGHT(H20,11))*1

LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(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))*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函数判断。但身份证上的日期是否合法:月份是否在1-12之间,日期是否在1-31之间,并且2月份只有28或29天,其他月份30或31天,都不能超过范围。另外一般规定6岁以上才可以办理身份证,也就是年份也有一个超范围的可能性。综合起来看,有三类错误:“身份证位数不对”、“月日错误”、“年份错误”。

假定身份证号码在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*(M ID(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),"年份错误","")

验证公式四

=IF(LEN(A1)=0,"空",IF(LEN(A1)=15,"老号",IF(LEN(A1)<>18,"位数不对

",IF(CHOOSE(MOD(SUM(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 MID(A1,7,1)*2 MID(A1,8,1)*1 MID(A1,9,1)*6 MID(A1,10,1)*3 MID(A1,11,1)*7 MID(A1,12,1)*9

MID(A1,13,1)*10 MID(A1,14,1)*5 MID(A1,15,1)*8 MID(A1,16,1)*4

MID(A1,17,1)*2),11)

1,1,0,"X",9,8,7,6,5,4,3,2)=IF(ISNUMBER(RIGHT(A1,1)*1),RIGHT(A1,1)*1,"X") ,"正确","错误"))))

公式二出处

EXCEL提取身份证出生日期、性别、检验身份证号码正确性

中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:

15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。

18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。

其中3位数字顺序码,是为同一地址码的同年同月同日出生人员编制的顺序号,偶数的为女性,奇数的为男性。

1、提取籍贯地区的行政区划代码(A2为身份证号,下同)

15与18位通用:=LEFT(A2,6)

如果有一个编码和省份地区的对照表,可以用VLOOKUP函数来提取地区信息。

2、提取出生日期信息

15位:=--TEXT(19&MID(A2,7,6),"#-00-00")

18位:=--TEXT(MID(A2,7,8),"#-00-00")

15与18位通用:=--TEXT(IF(LEN(A2)=15,19,"")&MID(A2,7,6

IF(LEN(A2)=18,2,0)),"#-00-00")

简化公式:=--TEXT((LEN(A2)=15)*19&MID(A2,7,6 (LEN(A2)=18)*2),"#-00-00") (请将输入公式的单元格格式设置为日期格式)

3、提取性别信息

15位:=IF(MOD(RIGHT(A2),2)=1,"男","女")

18位:=IF(MOD(MID(A2),17,1)=1,"男","女")

15与18位通用:=IF(MOD(MID(A2,IF(LEN(A2)=15,15,17),1),2)=1,"男","女")

简化公式:=IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女")

4、检验身份证号码的正确性

18位身份证号码的最后一位是检验码,它是根据身份证前17位数字依照规则计

算出来的,其值0~9或X。一般情况只要有一位数字输入错误,依照规则计算后

就会与第18位数不符。当然不排除按错误号码计算后恰好与检验码相符的情况,

但这种情况出现的可能性较低。因此,对18位号码的验证采用如下公式:

=MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11) 1,1)=RIGHT(A2,1)

对于15位身份证,由于没有检验码,我们只能简单地去判断出生日期代码是否是一个有效的日期,避免输入一些像“731302”或“980230“等这样不存在的日期。=ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))

综合15位和18位后的通用公式为:

=IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:1 7")),1)*2^(18-ROW(INDIRECT("1:17")))),11)

1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00")))) 由于目前15位身份证号码已经很少了,如果对15位的号码不需要作进一步的判断,则公式可以简化成:

=IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:1 7")),1)*2^(18-ROW(INDIRECT("1:17")))),11) 1,1)=RIGHT(A2),LEN(A2)=15)

将上面的公式放到B2单元格,如果结果为TRUE,则身份证号是正确的,结果为FALSE则是错误的。

你也可以将上述公式放在数据有效性中,防止录入错误的身份证号。操作方法:选

择需要输入身份证的全部单元格区域,比如A2:A10,点菜单"数据"-"有效性",在"允许"的下拉框中选择"自定义",在"公式"输入上面的15位和18位通用公式,确定以

后即可。注意:公式里的"A2"是你刚才选定要输入身份证的单元格区域的第一个单

元格,如果你是要在C3:C20输入身份证号,则将公式里的"A2"改为"C3"。另外,你也可以先设置好某单个单元格的数据有效性(这时公式的A2改为选定的单元格),再用格式刷将其格式刷到其他需要相同设置的单元格。

5、15位升为18位

=IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUMPRODUCT(MID(RE PLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-

ROW(INDIRECT("1:17")))),11) 1,1),A2)

6、18位转换为15位

=IF(LEN(A2)=18,LEFT(REPLACE(A2,7,2,),15),A2)

公式四出处

使用excel校验身份证号码

校验学生录入身份证号信息一直是个很头疼的问题,现在学生的身份证号基本都是18位,利用excel数据有效性只能校验位数是否正确。而对于合法性却望尘莫及,今天查了很多资料,终于找到了一种方法,现介绍如下:

一、身份证编码原理:

关于身份证第18是怎么计算的,原理如下:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网站

https://www.360docs.net/doc/c919096113.html,/tjbz/index.htm 查询到最新的县及县以上的行政编码资料。)

生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。

顺序码(身份证第十五位到十七位)为同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。校验码(身份证最后一位)是根据前面十七位数字码,按照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。

例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。

首先:我们得出,前17位的乘积和是189

然后:用189除以11得出的结果是17 2/11,也就是说余数是2。

最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

到此已经柳暗花明了,接下来就是写公式了,假设excel表的A1单元格记录的是身份证号码,我们在B1单元格输入如下公式:

=IF(LEN(A1)=0,"空",IF(LEN(A1)=15,"老号",IF(LEN(A1)<>18,"位数不对

",IF(CHOOSE(MOD(SUM(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 MID(A1,7,1)*2 MID(A1,8,1)*1 MID(A1,9,1)*6 MID(A1,10,1)*3 MID(A1,11,1)*7 MID(A1,12,1)*9

MID(A1,13,1)*10 MID(A1,14,1)*5 MID(A1,15,1)*8 MID(A1,16,1)*4

MID(A1,17,1)*2),11)

1,1,0,"X",9,8,7,6,5,4,3,2)=IF(ISNUMBER(RIGHT(A1,1)*1),RIGHT(A1,1)*1,"X") ,"正确","错误"))))

好了,搞定!!!

备注说明:关于大陆身份证有的人会发现前几位为什么变化了。这主要出现在中国的重庆。原有的重庆人的身份证多数以51开头。以前隶属于四川的原因。但新办的身份证可能是50开头,原因是行政区划改变所致。中国各地的行政区划代码请参考国家统计局网站https://www.360docs.net/doc/c919096113.html,/tjbz/index.htm

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

身份证号验证: =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

Excel判断身份证号校验码

Excel判断身份证号校验码 假设在一个工作表中:A列是姓名,B列是身份证号码,C列是备注。在B列中输入18位身份证号码后,在C2单元格中输入计算数组公式: =RIGHT(B2,1)=MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1) 然后再将该公式复制给C列其他单元格。 公式的计算结果是一个逻辑值,True表示校验正确,即计算出来的校验码与输入的相同,而False则表示校验错误。值得注意的是,使用校验码进行校验判断为正确的身份证号码未必是正确的,但判断为错误的则肯定是错误的,即通过校验的只是身份证号码正确的必要条件而非充分条件。当然,在实际输入中,身份证号码输入错误而校验正确的情况很少见。在大多数情况下,使用校验码进行校验可以大大提高身份证号码输入的正确性。 RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。 MID 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。 MOD 返回两数相除的余数。SUM 返回某一单元格区域中所有数字之和。ROW 返回引用的行号。INDIRECT 返回由文本字符串指定的引用。 或者输入数组公式: =IF(LEN(B2)<>18,"错误 ",IF(MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=MID(B2,18,1), "正确","错误"))

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

验证公式一 =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))*2 LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(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(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))*2 LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(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))*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函数判断。但身份证上的日期是否合法:月份是否在1-12之间,日期是否在1-31之间,并且2月份只有28或29天,其他月份30或31天,都不能超过范围。另外一般规定6岁以上才可以办理身份证,也就是年份也有一个超范围的可能性。综合起来看,有三类错误:“身份证位数不对”、“月日错误”、“年份错误”。 假定身份证号码在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*(M ID(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))),"月

合法身份证验证法

不合法身份证验证法 居民身份证的号码是按照国家的标准编制的,由18位组成:前六位为行政区划代码,第七至第十四位为出生日期码,第15至17位为顺序码,第18位为校验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。 但是我国的居民身份证在升位后,一些人的尾号变成了X,这部分人在工作生活中,例如去银行存取钱、去汽车公司租赁汽车或者报名参加考试等等过程中,往往不被检验者理解,认为是假身份证,这样的误会给很多人的生活带来不便。公安局的同志希望领到X身份证的同志正确理解这个数字的含义,查验身份证的机关和单位更应该清楚这一点。 身份证中第十八位数字的计算方法为: 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。 倒数第二位是用来表示性别的 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码

身份证数字校验码计算公式

身份证数字校验码计算公式 在中国,每个人的身份证号码都是唯一的,其中包括了个人的基本信息和校验码。校验码是身份证号码中的最后一位数字,它是根据身份证号码的前17位数字计算而得到的。校验码的存在可以帮助验证身份证号码的有效性,防止错误或伪造的身份证号码的使用。那么,身份证数字校验码是如何计算的呢? 首先,我们需要了解身份证号码的结构。中国的身份证号码共有18位数字,其中前17位是个人的基本信息,包括地区、出生年月日和顺序码,最后一位是校验码。校验码的计算是通过对前17位数字进行一系列的运算得到的。 校验码的计算公式如下: 1. 将身份证号码的前17位数字分别乘以对应的加权因子,然后将乘积相加。 2. 将上一步得到的结果除以11,得到余数。 3. 根据余数在一个预先设定的对照表中找到对应的校验码。 下面我们来详细解释一下这个计算公式。 首先,加权因子是一个固定的数组,分别为,7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。这些数字分别对应身份证号码的前17位数字,用来进行加权计算。 接下来,我们将身份证号码的前17位数字分别乘以对应的加权因子,然后将乘积相加。假设一个身份证号码的前17位数字分别为a1、a2、a3...a17,对应的加权因子分别为w1、w2、w3...w17,那么校验码的计算公式可以表示为:S = a1w1 + a2w2 + a3w3 + ... + a17w17。 其中S表示加权计算的结果。 然后,我们将S除以11,得到余数M。余数M的取值范围为0到10。

最后,我们根据余数M在一个对照表中找到对应的校验码。对照表如下: 0,1。 1,0。 2,X。 3,9。 4,8。 5,7。 6,6。 7,5。 8,4。 9,3。 10,2。 根据上述对照表,我们可以找到对应余数M的校验码。 通过以上的计算公式,我们可以得到身份证号码的校验码。这个计算过程可以 帮助我们验证身份证号码的有效性,防止错误或伪造的身份证号码的使用。同时,这个计算公式也是身份证号码的一部分,是保护个人信息安全的重要手段之一。 总的来说,身份证数字校验码的计算公式是一个基于加权计算和取余数的算法,通过这个算法可以得到身份证号码的校验码,用来验证身份证号码的有效性。这个计算公式的存在可以帮助我们保护个人信息的安全,防止错误或伪造的身份证号码的使用。希望大家能够重视身份证号码的安全性,同时也能够了解和掌握这个计算公式,以便在需要时对身份证号码进行验证。

和身份证有关的5个Excel函数公式

和身份证有关的5个Excel函数公式 2017-10-05 作者:ExcelHome 阅读:114973次 以下是一组和身份证有关的函数公式,如果你是财务人员或是一名HR,那就一起来看一下啦: 1、查找重复身份证号码: =IF(COUNTIF(A:A,A2&"*")>1,"重复","")

要点: 在COUNTIF函数的第二参数后加上一个星号&"*"。 COUNTIF函数在计算文本型数字时,会默认按数值型进行处理,但是Excel中的数字精度只有15位,并且身份证号码是18位,因此会把前15位相同的身份证全部识别为相同的内容。在第二参数后加上一个星号&"*",就是告诉Excel,要查找包含A2单元格内容的文本,通过这样变通的手段,COUTNIF函数就听话啦。 2、用出生年月来计算年龄: =DATEDIF(A4,TODAY(),"y")

要点: DATEDIF函数用于计算两个日期之间的间隔。用法是: =DATEDIF(开始日期,结束日期,指定要返回的类型) 第三参数是Y,表示年,是M,就表示月。 TODAY函数返回系统当前的日期。 DATEDIF函数是隐藏函数,输入时没有屏幕提示,需要手工录入哦。 3、根据身份证号计算出生年月: =--TEXT(MID(A2,7,8),"0!/00!/00") 要点: 身份证号码中的第8位到15位是出生年月信息。 首先使用MID函数从A2单元格的第7位开始,提取出8个字符,得到类似19840727的结果。 再使用TEXT函数将这个字符串变成日期样式的文本,得到类似1984/07/27的结果。 由于TEXT函数的结果是文本型的内容,所以加上两个小减号-- 就是计算负数的负数,通过四则运算,变成真正的日期序列。

excel的身份证效验程序

打开EXCEL,把宏的安全级别设置为“低”,以后再改回来。 然后打开VB编辑器,新建一模块,加入以下代码 Function 身份证(n As Object) wi = Array("7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2") y = Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2") d = Array("29", "31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31", "30") s = Empty If Len(n) = 15 Then 身份证 = "请填18位身份证号" Exit Function ElseIf Len(n) = Empty Then 身份证 = Eempty Exit Function End If 年份 = Val(Mid(n, 7, 4)) 月份 = Val(Mid(n, 11, 2)) 月份2 = 月份 If 月份2 = 2 Then tt = Val(Mid(年份, 3, 2)) If tt <> 0 Then tt = 年份 Mod 4 If tt = 0 Then 月份2 = 0 Else tt = 年份 Mod 400 If tt = 0 Then 月份2 = 0 End If End If 日期 = Val(Mid(n, 13, 2)) If 日期 > Val(d(月份2)) Or 日期 = 0 Then 身份证 = "日历无此日" Exit Function End If If 月份 > 12 Or 月份 = 0 Then 身份证 = "日历无此月份" Exit Function End If If 年份 > Year(Date) Then 身份证 = "还没生出来" Exit Function ElseIf 年份 < Year(Date) - 100 Then 身份证 = "百岁老人" Exit Function End If

身份证验证公式

方式1 : =IF(LOOKUP((LEFT(B17,1)*7+MID(B17,2,1)*9+MID(B17,3,1)*10+MID(B1 7,4,1)*5+MID(B17,5,1)*8+MID(B17,6,1)*4+MID(B17,7,1)*2+MID(B17,8,1 )+MID(B17,9,1)*6+MID(B17,10,1)*3+MID(B17,11,1)*7+MID(B17,12,1)*9+ MID(B17,13,1)*10+MID(B17,14,1)*5+MID(B17,15,1)*8+MID(B17,16,1)*4+ MID(B17,17,1)*2)-ROUNDDOWN((LEFT(B17,1)*7+MID(B17,2,1)*9+MID(B17, 3,1)*10+MID(B17,4,1)*5+MID(B17,5,1)*8+MID(B17,6,1)*4+MID(B17,7,1) *2+MID(B17,8,1)+MID(B17,9,1)*6+MID(B17,10,1)*3+MID(B17,11,1)*7+MI D(B17,12,1)*9+MID(B17,13,1)*10+MID(B17,14,1)*5+MID(B17,15,1)*8+MI D(B17,16,1)*4+MID(B17,17,1)*2)/11,0)*11,{0,1,2,3,4,5,6,7,8,9,10}, {"1","0","x","9","8","7","6","5","4","3","2"})=RIGHT(B17,1),"OK", "Wrong") 用在表格 方式2: =IF(MOD(MOD(∑n=MID(A?,n,1)*2^(18-n),11^2)+MID(A?,18,1),11)=1,1,0) 这个是验不出X

身份证号码验证规则

身份证号码验证规则 说明:该规则为平台通用规则,适用于所有填身份证号码的场景。 一、概述 身份证号码中的校验码是身份证号码的最后一位,是根据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************。我们要看看这个身份证是不是合法的身份证。 首先:我们计算3*7+4*9+0*10+5*5+...+1*2,前17位的乘积和是189 然后:用189除以11得出的结果是商17余2 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

两个关于身份证号码的EXCEL小函数

两个关于身份证号码的EXCEL小函数 办公室工作中,经常要进行员工身份证号码的录入(比如员工参加各类考试时填写报名表、录入个人养老保险及医疗保险金信息等等)。本人在工作中,为了提高身份证号码录入的效率和质量,设计了两个关于身份证号码的EXCEL函数“IDcard_15to18”和“IDcard_Check”,分别实现这样的功能:1、当需要录入某人员的新身份证号码,手头只有该人员工的15位老身份证号码,可用“IDcard_15to18”函数将老号码转换成新号码。2、当在EXCEL表格中手工录入完全部人员的18位新身份证号码后,如果不能确保录入的正确性,可用“IDcard_Check”函数进行正确性校验。“IDcard_15to18”函数的实现原理是:15位老身份证号码的第6、7位之间加上出生年份的前两位(“19”或“20”)得到17位号码,用这17位号码根据公式计算得出校验位(新身份证号码的第18位),即得到18位的新身份证号码(详细转换规则见附件2)。“IDcard_Check”函数的实现原理是:用新身份证号码的前17位计算得出校验位,再将计算得出的校验位和实际检验位比较,如果相等,则校验正确,否则该身份证号码有错。该函数中还加入了出生日期的检验,如出生月份不在1到12之间,则报错。 实现方法如下: 打开存有身份证号码的表格,在菜单中选择“工具(T)”-“宏(M)”-“V isual Basic 编辑器”,打开V isual Basic编辑器,在编辑器菜单中选择“插入(I)”-“模块(M)”,打开模块窗口,这时光标停留在模块窗口内。将“附件1:函数代码”的内容全部复制到模块窗口内,点磁盘图标保存,然后关闭编辑器,函数建立完成。 选中存有身份证号码的EXCEL表格,在菜单中选“插入(I)”-“函数(F)”,出现插入函数窗口(见下图),在函数窗口的“或选择类别”后选择“用户定义”,出现刚才定义的两个函数的名称“IDcard_15to18”和“IDcard_Check”,“IDcard_15to18”函数用来将老身份证号码转换为新身份证号码,这个函数有两个参数,第一个参数为要转换的15位老身份证号码,第二个参数为4位出生年份的前两位,例如B3单元格中存有一15位老身份证号码,并知此人的出生年份为“19XX”年,可在B4单元格中录入“=IDcard_15to18(b2,19)”,即得到此人的18位新身份证号码;“IDcard_Check”函数用来校验18位身份证号的一致性,例如B3单元格中存有一新身份证号,在可在B4单元格中录入“=IDcard_Check(B2)”对该号码进行校验,如检验正确则显示“校验正确!”,否则显示“此身份证号有误!”。这两个函数和普通EXCEL函数用法相同,可以拖放来实现身份证号的批量生成和校验。

身份证号码计数法计算公式

身份证号码计数法计算公式 身份证号码是每个人在出生时就被赋予的一串数字,它不仅仅是一个身份的标识,更是一个包含着丰富信息的编码。在中国,身份证号码是由18位数字和一个校验位组成的,其中包含了个人的出生年月日、性别、地区等信息。而身份证号码计数法计算公式则是一种根据身份证号码的特定规律来进行计算的方法,通过这种方法可以得到一些有趣的结果。 首先,我们来看一下身份证号码的结构。身份证号码由18位数字和一个校验位组成,其中前6位代表了个人的地区信息,接着的8位代表了出生年月日,然后是3位顺序码和1位校验位。根据这个结构,我们可以得到身份证号码计数法计算公式的基本公式: N = (S + M) mod 11。 其中,N代表校验位的值,S代表身份证号码前17位数字的加权和,M代表S 对11取模得到的余数。 接下来,我们来看一下具体的计算方法。首先,我们需要对身份证号码的前17位数字进行加权求和,具体的加权系数如下: 1 0 2 9 8 7 6 5 4 3 2。 然后,将身份证号码的前17位数字与对应的加权系数相乘,并将结果相加,得到S的值。接着,将S对11取模得到的余数就是M的值。最后,将S和M相加并对11取模,得到的结果就是校验位N的值。 通过这个计算方法,我们可以得到身份证号码的校验位值,并且可以验证身份证号码的有效性。同时,我们也可以利用这个计算方法来进行一些有趣的计算,比如计算身份证号码的奇偶性、出生年月日的特殊性等等。

除此之外,身份证号码计数法计算公式还可以用来进行一些统计分析。比如,我们可以统计某个地区的身份证号码的校验位分布情况,从而了解这个地区的人口分布特点。我们还可以统计某个年龄段的人群的身份证号码的校验位分布情况,从而了解这个年龄段的人群的身份证号码的特点。通过这种统计分析,我们可以更深入地了解人口的结构和特点。 总之,身份证号码计数法计算公式是一种根据身份证号码的特定规律来进行计算的方法,通过这种方法可以得到一些有趣的结果,并且可以用来进行一些统计分析。通过对身份证号码的深入研究和分析,我们可以更深入地了解人口的结构和特点,从而为社会的发展和进步提供更多的参考和支持。

校验身份证号码是否合法的公式及其优缺点

校验身份证号码是否合法的公式及其优缺点 W415C 如:在B2单元格中录入身份证号码,在C2单元格中校验其是否合法。 公式1: =IF(MID(B2,1,17)&LOOKUP(MOD(SUM(MID(B2,ROW($1:$17),1)*MOD(2^(18-ROW($1:$1 7)),11)),11),{0,1,2,3,4,5,6,7,8,9,10},{1,0,"X",9,8,7,6,5,4,3,2})=B2,"身份证号合法","身份证号不合法") 公式输入后须同时按下 Ctrl+Shift+Enter 组合键方可完成。 本公式的优点:主要是公式较短。缺点:主要是在工作表的第1行至第17行插入或删除行,公式发生改变,导致结果错误。 公式2: =IF(MID(B2,18,1)=LOOKUP(MOD(MID(B2,1,1)*7+MID(B2,2,1)*9+MID(B2,3,1)*10+MI D(B2,4,1)*5+MID(B2,5,1)*8+MID(B2,6,1)*4+MID(B2,7,1)*2+MID(B2,8,1)*1+MID(B2,9, 1)*6+MID(B2,10,1)*3+MID(B2,11,1)*7+MID(B2,12,1)*9+MID(B2,13,1)*10+MID(B2,14,1 )*5+MID(B2,15,1)*8+MID(B2,16,1)*4+MID(B2,17,1)*2,11),{0,1,2,3,4,5,6,7,8,9,10} ,{1,0,"X",9,8,7,6,5,4,3,2}),"身份证号合法","身份证号不合法") 本公式的优点:在工作表中插入或删除行,公式不发生改变,结果不会发生错误。缺点:公式较长。 建议:使用公式2。

:EXCEL身份证核对公式

EXCEL 身份证查对公式 EXCEL 中你输入的公民身份号码正确吗? 目录 :1、输入错误自动红色显示提示 2、15 位身份证号码升位为18 位公民身份号码 3、自动生成出诞辰期和性别 4、中华人民共和国国家标准GB 11643-1999公民身份号码 一、输入错误自动红色显示提示 在公司报送的 EXCEL 电子表格中 ,常常碰到公民身份号码输入错误而给工作带来不用要的麻烦 ,降低了工作效率。 有没有方法在公民身份号码录入错误时进行自动提示呢? 其实【中华人民共和国国家标准码第 18 位校验码已作了详尽的规定而已。 GB 11643-1999 】对公民身份号,不过我们在电算工作中极少用到 可用以下方法在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:$1 7),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

相关主题
相关文档
最新文档