EXCEL中如何从身份证号码提取出生年月日及性别5则范文

时间:2019-05-14 05:22:09下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《EXCEL中如何从身份证号码提取出生年月日及性别》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《EXCEL中如何从身份证号码提取出生年月日及性别》。

第一篇:EXCEL中如何从身份证号码提取出生年月日及性别

EXCEL中如何从身份证号码提取出生年月日及性别

近段时间,各校都忙坏了,学生城镇居民医疗保险材料要保,今年必须提供每位学生的身份证号码,还有性别、出生日期等信息;新生学籍要报,学籍信息包含50多项,其中也有身份证号码、性别、出生日期等信息„„。为了简化工作,提高效率,特整理出从身份证号码里提取出生年月日及性别等信息的方法,希望对大家有所帮助。

一、分析身份证号码

其实,身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是15位还是18位的身份证号码,其中都保存了相关的个人信息。

15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日期,第15位代表性别,奇数为男,偶数为女。

18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。

例如,某学生的身份证号码(15位)是***242,那么表示1989年8月7日出生,性别为女。如果能想办法从这些身份证号码中将上述个人信息提取出来,不仅快速简便,而且不容易出错,核对时也只需要对身份证号码进行检查,肯定可以大大提高工作效率。

二、转换身份证号码格式

我们先将学生的身份证号完整地输入到EXCEL表格中,这时默认为“数字”格式(单元格内显示的是科学记数法的格式),需要更改一下数字格式。选中该列中的所有身份证号后,右击鼠标,选择“设置单元格格式”。在弹出对话框中“数字”标签内的“分类”设为“文本”,然后点击确定。

三、提取个人信息

这里,我们需要使用IF、LEN、MOD、MID、DATE等函数从身份证号码中提取个人信息。假设学生的身份证号码信息已输入完毕(C列),出生年月信息填写在D列,性别信息填写在B列。

1.提取出生年月信息

如果上交报表时需要填写出生年月日,我们需要关心身份证号码的相应部位即可,即显示为“19890807”这样的信息。在D2单元格中输入公式

=IF(LEN(C2)=15,“19”&MID(C2,7,6),MID(C2,7,8)),其中:

文本函数MID返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。语法:MID(text,start_num,num_chars)即MID(文本,开始字符,所取字符数),Text 是包含要提取字符的文本字符串。

Start_num 是文本中要提取的第一个字符的位置。文本中第一个字符的start_num 为 1,以此类推。

Num_chars 指定希望 MID 从文本中返回字符的个数。

字符个数计算函数LEN返回文本字符串中的字

符数。语法:LEN(text)

Text 是要查找其长度的文本。空格将作为字符进行计数。

LEN(C2)=15:检查C2单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。

MID(C2,7,4):从C2单元格中字符串的第7位开始提取6位数字,本例中表示提取15位身份证号码的第7、8、9、10、11、12位数字。

“19”&:表示如果身份证号码是15位,在年份前加“19”。

MID(C2,7,8):从C2单元格中字符串的第7位开始提取8位数字,本例中表示提取18位身份证号码的第7、8、9、10、11、12、13、14位数字。

IF(LEN(C2)=15,MID(C2,7,6),MID(C2,7,8)):IF是一个逻辑判断函数,表示如果C2单元格是15位,则提取第7位开始的6位数字并在年份前加“19”,如果不是15位则提取自第7位开始的8位数字。

如果需要显示为“1989-08-07”这样的格式,可以把上面的公式稍加修改即可:

=IF(LEN(C2)=15,“19”&MID(C2,7,2)&“-”&MID(C2,9,2)&“-”&MID(C2,11,2),MID(C2,7,4)&“-”&MID(C2,11,2)&“-”&MID(C2,13,2))。

解释:如果身份证号码是15位,则从第7位开始取两位数字,并在这两位数字前加“19”,后面加“-”,从第9位开始取两位数字,并在这两位数字后面加“-”,从第11位开始取两位数字。否则,从第7位开始取四位数字,并在这四位数字后面加“-”,从第11位开始取两位数字,并在这两位数字后面加“-”,从第13位开始取两位数字。

也可以使用DATE格式,并在“单元格格式→日期”中进行设置。

如果学生的身份证号全部都是18位的新一代身份证,可以以把上面的公式进行简化:

=MID(C2,7,4)&“-”&MID(C2,11,2)&“-”&MID(C2,13,2)

2.提取性别信息

由于报表中学生不是按照男、女固定的顺序进行编排,如果一个一个手工输入的话,既麻烦又容易出错。

例如性别信息统一在B列填写,可以在B2单元格中输入公式:

=IF(MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2)=1,“男”,“女”)

其中:

LEN(C2)=15:检查身份证号码的长度是否是15位。

MID(C2,15,1):如果身份证号码的长度是15位,那么提取第15位的数字。

MID(C2,17,1):如果身份证号码的长度不是15位,即18位身份证号码,那么应该提取第17位的数字。

MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2):用于得到给出数字除以指定数字后的余数,本例表示对提出来的数值除以2以后所得到的余数。

IF(MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2)=1,“男”,“女”):如果除以2以后的余数是1,那么B2单元格显示为“男”,否则显示为“女”。

回车确认后,即可在B2单元格显示正确的性别信息,接下来就是选中填充柄直接拖曳。现在这份报表无论是提取信息或是

核对,都方便多了。

提取性别也可以使用下面这个公式(无论是15位还是18位): =IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,“男”,“女”),IF(MOD(MID(C2,17,1),2)=1,“男”,“女”)

如果学生的身份证号全部都是18位的新一代身份证,可以使用下面的公式: =IF(MID(C2,17,1)/2=TRUNC(MID(C2,17,1)/2),“女”,“男”)

数学函数TRUNC 将数字的小数部分截去,返回整数。

语法:TRUNC(number,num_digits)

Number 需要截尾取整的数字。

Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。

说明:函数 TRUNC 和函数 INT 类似,都返回整数。函数 TRUNC 直接去除数字的小数部分,而函数 INT 则是依照给定数的小数部分的值,将其四舍五入到最接近的整数。函数 INT 和函数 TRUNC 在处理负数时有所不同。

如果身份证号的输入已是15或18位,还可以用公式:

=IF(MOD(LEFT(RIGHT(C2,(LEN(C2)=18)+1)),2),“男”,“女”)

RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。

语法:RIGHT(text,num_chars)

Text 是包含要提取字符的文本字符串。

Num_chars 指定希望 RIGHT 提取的字符数。

LEFT 基于所指定的字符数返回文本字符串中的第一个或前几个字符。

语法:LEFT(text,num_chars)

Text 是包含要提取字符的文本字符串。

Num_chars 指定要由 LEFT 所提取的字符数。

第二篇:Excel中利用身份证号码提取出生日期和性别

Excel中利用身份证号码(15或18位)提取出生日期和性别

如何使用Excel从身份证号码中提取出生日期2009-02-27 22:52例如:从身份证***616中提取出生日期来,如何快速得出?

呵呵,只需使用语句:=DATE(mid(A1,7,4),mid(A1,11,2),mid(A1,13,2))【A1是身份证号码所在单元格】

date()函数,地球人都知道,日期函数;如输入今天的日期=today()

那么,mid函数是什么东东呢?

MID(text,start_num,num_chars)

Text 为包含要提取字符的文本字符串;Start_num 为文本

中要提取的第一个字符的位置。文本中第一个字符的start_num 为1,以此类推;Num_chars指定希望MID 从文本中返回字符的个数。

对身份证号码分析下就知道:***616,出生日期是1992年2月6日;也就是 从字符串(***616)的第7位开始的4位数字表示年,从字符串的第11位开始的2位数字表示月,字符串的第13位开始的2位数字表示日。呵呵,强悍吧!Excel中利用身份证号码(15或18位)提取出生日期和性别

需要的函数:

LEN(C6)=15:检查C6单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位;

INT:返回数值向下取整为最接近的整数,本例中用来判断身份证里数值的奇偶数。RIGHT:返回文本字符串最后一个字符开始指定个数的字符;

MID:返回文本字符串指定起始位置起指定长度的字符,MID(C6,7,2)表示:在C3中从左边第七位起提取2位数;

“19”&MID(C6,7,2)表示:在C3中从左边第七位起提取2位数的前面添加19;

„„

&“"&表示:其左右两边所提取出来的数字不用任何符号连接;

&”-“&表示:其左右两边所提取出来的数字间用“-”符号连接。若需要的日期格式是yyyy年mm月dd日,则可以把公式中的“-”分别用“年月日”进行替换就行了。

一、提取出生日期

如果我们要从一个人的身份证号码中批量提取其出生年月日,并表示成“yyyy-mm-dd”形式,可以这样做,假设身份证号码在C列,在D列中输入公式=IF(LEN(C6)=15,”19“&MID(C6,7,2)&”-“&MID(C6,9,2)&”-“&MID(C6,11,2),MID(C6,7,4)&”-“&MID(C6,11,2)&”-“&MID(C6,13,2)),这个公式的含义就是,当其检查到C6单元格中的数据是15位的时,就显示”19“&MID(C6,7,2)&”-“&MID(C6,9,2)&”-“&MID(C6,11,2)的计算结果,否则就显示MID(C6,7,4)&”-“&MID(C6,11,2)&”-“&MID(C6,13,2)的计算结果。如:若C6单元格中是***,在D6单元格中计算出的结果是“1950-01-12”;若C6单元格中是***794,在D6单元格中计算出的结果是“1945-11-16”。

二、提取性别

在E6单元格输入公式=IF(LEN(C6)=15,IF(RIGHT(C6)/2=INT(RIGHT(C6)/2),”女“,”男“),IF(MID(C6,17,1)/2=INT(MID(C6,17,1)/2),”女“,”男“))这个公式的含义是如果C6单元格是一个15位数,就显示IF(RIGHT(C6)/2=INT(RIGHT(C6)/2),”女“,”男“)的计算结果;否则,显示IF(MID(C6,17,1)/2=INT(MID(C6,17,1)/2),”女“,”男“))的计算结果。

最后把D6和E6单元格的公式向下拉下来,在C6列输入身份证号码后,出生日期和性别可自动输入了,这样就减少了用户输入数据工作量,提高了办事效率!

根据身份证号码让Excel自动输入出生日期和性别

办公室人事文员有时要输入很多员工的人事资料,每输完臃长的身份证号后又要输入员工出生年月日和性别,这样无疑增加了工作量,有没有办法让出生日期和性别自动输入呢?其实用Excel公式即可轻松解决问题!

众所周知,我国身份证号码里有每个人的出生日期和性别等信息:老式的身份证号是15位数,第7位到12位是出生年月日,最后一位如果是偶数就代表女生,奇数就是代表男性;新式身份证号是18位数,第7位到14位是出生日期,倒数第二位的偶数或奇数代表女性或男性。既然存在这样的规律,用Excel函数就可轻松实现根据身份证号自动输入出生日期和性别。

本例中所需要函数:

LEN:返回文本字符串的个数,本例中用来计算身份证的位数

MID:返回文本字符串指定起始位置起指定长度的字符,本例中用来计算身份证号中出生日期的字符;

INT:返回数值向下取整为最接近的整数,本例中用来判断身份证里数值的奇偶数.RIGHT:返回文本字符串最后一个字符开始指定个数的字符,本例中来计算身份证号最后一位数.如果A3单元格是身份证号码,B3单元格为出生日期,C3单元格为性别,那么在B3中输入公式=IF(LEN(A3)=18,MID(A3,7,4)&”年“&MID(A3,11,2)&”月“&MID(A3,13,2)&”日“,”19“&MID(A3,7,2)&”年“&MID(A3,9,2)&”月“&MID(A3,11,2)&”日“),这个公式的含义是,如果A3单元格是一个18位数IF(LEN(A3)=18)那么从第7位数开始得到的4位数就是年份MID(A3,7,4)后面再加上文字&”年”,月日依此类推,否则,A3单元格为15位数,就执行”19“&MID(A3,7,2)&”年“&MID(A3,9,2)&”月“&MID(A3,11,2)&”日“)含义与18位相似.只是在年MID(A3,7,2)前面要加上"19"

在C3单元格输入公式=IF(LEN(A3)=18,IF(MID(A3,17,1)/2=INT(MID(A3,17,1)/2),”女“,”男“),IF(RIGHT(A3)/2=INT(RIGHT(A3)/2),”女“,”男“))这个公式的含义是如果A3单元格是一个18位数IF(LEN(A3)=18)就执行IF(MID(A3,17,1)/2=INT(MID(A3,17,1)/2),”女“,”男“),其中如果A3单元格第17位数(身份证号倒数第二位)除以二MID(A3,17,1)/2等于一个整数INT(MID(A3,17,1)/2),那么第17位为偶数,即是”女”,否则是奇数,即为”男”;否则A3单元格是15位数,就执行IF(RIGHT(A3)/2=INT(RIGHT(A3)/2),”女“,”男“),其中RIGHT(A3)含义是返回A3单元格从右往左的第一位数,即身份证最后一位数.其余含意跟上面18位数一样.最后把B3和C3单元格的公式向下拉下来,在A3列输入身份证号码后,出生日期和性别可自动输入了,这样就减少了用户输入数据工作量,提高了办事效率!

年龄查找:

A1输入份证号.B1输入下面公式.可以计算此人现在的年纪.=TEXT(DATEDIF(TEXT(IF(LEN(A1)=18,MID(A1,7,8),”19“&MID(A1,7,6)),”0000-00-00“),TODAY(),”Y“),”@")

第三篇:在excel中如何从身份证号码里提取出出生年月日及性别等

在excel中如何从身份证号码里提取出出生年月日及性别等

假如,A1是姓名,B1是身份证号码,C1是出生年月

可以用以下公式求出

=IF(LEN(B2)=15,“19”&MID(B2,7,2)&“年”&MID(B2,9,2)&“月

”&MID(B2,11,2)&“日”,MID(B2,7,4)&“年”&MID(B2,11,2)&“月”&MID(B2,13,2)&“日”)

在C2设置单元格格式为“日期”即可在C2中正确提取出其出生年月 2EXCEL从身份证号码求出生年月日、性别及年龄公式2007-11-26 16:40EXCEL中用身份证号码求出生年月日及年龄公式2007年11月21日 星期三 17:17

一、分析身份证号码

其实,身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是15位还是18位的身份证号码,其中都保存了相关的个人信息。

15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日期,第15位代表性别,奇数为男,偶数为女。

18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。例如,某员工的身份证号码(15位)是***,那么表示1972年8月7日出生,性别为女。如果能想办法从这些身份证号码中将上述个人信息提取出来,不仅快速简便,而且不容易出错,核对时也只需要对身份证号码进行检查,肯定可以大大提高工作效率。

二、提取个人信息

这里,我们需要使用IF、LEN、MOD、MID、DATE等函数从身份证号码中提取个人信息。如图1所示,其中员工的身份证号码信息已输入完毕(C列),出生年月信息填写在D列,性别信息填写在B列。

1.提取出生年月日信息

由于上交报表时只需要填写出生年月,不需要填写出生日期,因此这里我们只需要关心身份证号码的相应部位即可,即显示为“720807”这样的信息。在D2单元格中输入公式

=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))其中:

LEN(A1)=15:检查C2单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。

MID(A1,7,4):从C2单元格中字符串的第7位开始提取四位数字,本例中表示提取15位身份证号码的第7、8、9、10位数字。

MID(A1,9,4):从C2单元格中字符串的第9位开始提取四位数字,本例中表示提取18位身份证号码的第9、10、11、12位数字。

IF(LEN(A1)=15,MID(A1,7,4),MID(A1,9,4)):IF是一个逻辑判断函数,表示如果A1单元格是15位,则提取第7位开始的四位数字,如果不是15位则提取自第9位开始的四位数字。

&为连接符“”中的字符为原样输出

2.提取性别信息

由于报表中各位员工的序号编排是按照上级核定的编制进行的,因此不可能按照男、女固定的顺序进行编排,如果一个一个手工输入的话,既麻烦又容易出错例如性别信息统一在B列填写,可以在B2单元格中输入公式

“=IF(MOD(IF(LEN(A1)=15,MID(A1,15,1),MID(A1,17,1)),2)=1,“男”,“女”)”,其中:

LEN(A1)=15:检查身份证号码的长度是否是15位。

MID(A1,15,1):如果身份证号码的长度是15位,那么提取第15位的数字。MID(A1,17,1):如果身份证号码的长度不是15位,即18位身份证号码,那么应该提取第17位的数字。

MOD(IF(LEN(A1)=15,MID(A1,15,1),MID(A1,17,1)),2):用于得到给出数字除以指定数字后的余数,本例表示对提出来的数值除以2以后所得到的余数。

IF(MOD(IF(LEN(A1)=15,MID(C2,15,1),MID(A1,17,1)),2)=1,“男”,“女”):如果除以2以后的余数是1,那么B2单元格显示为“男”,否则显示为“女”。回车确认

3.提取年龄

=YEAR(TODAY())-VALUE(IF(LEN(A1)=15,19&MID(A1,7,2),MID(A1,7,4)))

第四篇:EXCEL中如何提取身份证出生日期、性别、检验身份证号码的正确性

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:17“)),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:17“)),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(REPLACE(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)

7、示例

表中公式:

B2 =IF(LEN(A2)=18,MID(”10X98765432“,MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT(”1:17“)),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“))))

C2 =IF(A2<>”“,TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),”#-00-00“)+0,)

D2 =IF(A2<>”“,IF(MOD(RIGHT(LEFT(A2,17)),2),”男“,”女“),)

E2 =IF(A2<>”“,DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),”#-00-00“),TODAY(),”y“),)

F2 =IF(A2<>”“,VLOOKUP(LEFT(A2,2),地区表!A:D,2,),)

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

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

第五篇:公式:EXCEL中如何提取身份证出生日期、性别、检验身份证号码的正确性1

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:17“)),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:17“)),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(REPLACE(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)

7、示例

表中公式:

B2 =IF(LEN(A2)=18,MID(”10X98765432“,MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT(”1:17“)),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“))))

C2 =IF(A2<>”“,TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),”#-00-00“)+0,)

D2 =IF(A2<>”“,IF(MOD(RIGHT(LEFT(A2,17)),2),”男“,”女“),)

E2 =IF(A2<>”“,DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),”#-00-00“),TODAY(),”y“),)

F2 =IF(A2<>”“,VLOOKUP(LEFT(A2,6),地区表!A:D,2,),)在sheet1表中插入地区表,在sheet2中建立查找。

H2 =IF(LEN(A2)=15,REPLACE(A2,7,19)&MID(”10X98765432“,MOD(SUMPRODUCT(MID(REPLACE(A2,7,19),ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1),A2)

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

=IF(H4=”配偶“,”10“,IF(H4=”子“,”20“,IF(H4=”女“,”30“,IF(H4=”孙子、孙女或外孙子、外孙女“,”40“,IF(H4=”父母“,”50“,IF(H4=”祖父母或外祖父母“,”60“,IF(H4=”兄弟姐妹“,”70“,IF(H4=”其他“,”80“,”01“))))))))

=IF(S4=”未婚“,”01“,IF(S4=”已婚“,”02“,IF(S4=”丧偶“,”03“,IF(S4=”离婚“,”04“,IF(S4=”再婚“,”05“,”06“)))))

=IF(LEN(L4)=18,MID(”10X98765432“,MOD(SUMPRODUCT(MID(L4,ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1)=RIGHT(L4),IF(LEN(L4)=15,ISNUMBER(--TEXT(19&MID(L4,7,6),”#-00-00“))))

=IF(W4=”未婚“,”01“,IF(W4=”已婚“,”02“,IF(W4=”丧偶“,”03“,IF(W4=”离婚“,”04“,IF(W4=”再婚“,”05“,”06“)))))=RIGHT(B4,10)

=IF(D4=”“,C4,D4)户主名复制

=IF(LEN(F4)=18,MID(”10X98765432“,MOD(SUMPRODUCT(MID(F4,ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1)=RIGHT(F4),IF(LEN(F4)=15,ISNUMBER(--TEXT(19&MID(F4,7,6),”#-00-00“))))

=IF(I4=1,”低保“,IF(I4=2,”五保“,IF(I4=3,”重残“,IF(I4=4,”轻残“,IF(I4=5,”二女“,IF(I4=6,”独生“,IF(I4=7,”优抚“,”“)))))))

=IF(J4=1,”死亡未销“,IF(J4=2,”嫁出未迁“,IF(J4=3,”空挂户口“,IF(J4=4,”整户外出“,IF(J4=5,”村官养老“,IF(J4=6,”满16学生“,IF(I4=7,”服刑人员“,”“)))))))

=170901&TEXT(COUNTA($C$4:C4),”0000“)生成户号

=MID(”10X98765432“,MOD(SUMPRODUCT(MID(F3,ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1)=RIGHT(F3,1)

=IF(H4=”10“,”配偶“,IF(H4=”20“,”子“,IF(H4=”30“,”女“,IF(H4=”40“,”孙子、女“,IF(H4=”50“,”父母“,IF(H4=”60 “,”祖父母“,IF(H4=”70 “,”兄弟姐妹“,IF(H4=” 80“,”其他“,IF(H4=”02”,”户主“))))))))

=IF(H4=”10“,”配偶“,IF(H4=”20“,”子“,IF(H4=”30“,”女“,IF(H4=”40“,”孙子、女“,IF(H4=”50“,”父母“,IF(H4=”60 “,”祖父母“,IF(H4=”70 “,”兄弟姐妹“,IF(H4=” 80“,”其他“,”01“))))))))

=IF(H4=”10“&10,”配偶“,IF(H4=”20“&20,”子“,IF(H4=”30“&30,”女“,IF(H4=”40“&40,”孙子、女“,IF(H4=”50“&50,”父母“,IF(H4=”60 “&60,”祖父母“,IF(H4=”70 “&70,”兄弟姐妹“,IF(H4=”02“,”户主“,”其他"))))))))

下载EXCEL中如何从身份证号码提取出生年月日及性别5则范文word格式文档
下载EXCEL中如何从身份证号码提取出生年月日及性别5则范文.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐