假设数据在A1单元格B1单元格输入公式=right(a1,len(a1)-2) (公式中的“2”是指栓出前面的位数)或=substitute(a2,"SF",)双击填充柄填充或下拉填充然后复制B列,选择性粘贴为数值,替换到A列中如何利用Excel从身份证号中提取出生年月和年龄等信息?2007年12月16日 07:41 P.M.一、分析身份证号码其实,身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是15位还是18位的身份证号码,其中都保存了相关的个人信息。
15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日期,第15位代表性别,奇数为男,偶数为女。
18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。
例如,某员工的身份证号码(15位)是320521*********,那么表示1972年8月7日出生,性别为女。
如果能想办法从这些身份证号码中将上述个人信息提取出来,不仅快速简便,而且不容易出错,核对时也只需要对身份证号码进行检查,肯定可以大大提高工作效率。
二、提取个人信息这里,我们需要使用IF、LEN、MOD、MID、DATE等函数从身份证号码中提取个人信息。
如图1所示,其中员工的身份证号码信息已输入完毕(C列),出生年月信息填写在D列,性别信息填写在B列。
图1 输入身份证号码1.提取出生年月信息由于上交报表时只需要填写出生年月,不需要填写出生日期,因此这里我们只需要关心身份证号码的相应部位即可,即显示为“7208”这样的信息。
在D2单元格中输入公式“=IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4))”,其中:LEN(C2)=15:检查C2单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。
MID(C2,7,4):从C2单元格中字符串的第7位开始提取四位数字,本例中表示提取15位身份证号码的第7、8、9、10位数字。
MID(C2,9,4):从C2单元格中字符串的第9位开始提取四位数字,本例中表示提取18位身份证号码的第9、10、11、12位数字。
IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4)):IF是一个逻辑判断函数,表示如果C2单元格是15位,则提取第7位开始的四位数字,如果不是15位则提取自第9位开始的四位数字。
如果需要显示为“70年12月”这样的格式,请使用DATE 格式,并在“单元格格式→日期”中进行设置。
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单元格显示正确的性别信息,接下来就是选中填充柄直接拖曳。
如图2所示,现在这份报表无论是提取信息或是核对,都方便多了!查看文章Excel表中身份证号码提取出生年月,性别,年龄的使用技巧2007年12月24日星期一 12:171.Excel表中用身份证号码中取其中的号码用:MID(文本,开始字符,所取字符数);2.15位身份证号从第7位到第12位是出生年月日,年份用的是2位数。
18位身份证号从第7位到第14位是出生的年月日,年份用的是4位数。
从身份证号码中提取出表示出生年、月、日的数字,用文本函数MID()可以达到目的。
MID()——从指定位置开始提取指定个数的字符(从左向右)。
对一个身份证号码是15位或是18位进行判断,用逻辑判断函数IF()和字符个数计算函数LEN()辅助使用可以完成。
综合上述分析,可以通过下述操作,完成形如1978-12-24样式的出生年月日自动提取:假如身份证号数据在A1单元格,在B1单元格中编辑公式=IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11 ,2),MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2))回车确认即可。
如果只要“年-月”格式,公式可以修改为=IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2),MID(A1,7,4)&"-"&MID(A1,11,2))3.这是根据身份证号码(15位和18位通用)自动提取性别的自编公式,供需要的朋友参考:说明:公式中的B2是身份证号根据身份证号码求性别:=IF(LEN(B2)=15,IF(MOD(VALUE(RIGHT(B2,3)),2)=0,"女","男"),IF(LEN(B2)=18,IF(MOD(VALUE(MID(B2,15,1)),2)=0,"女","男"),"身份证错"))根据身份证号码求年龄:=IF(LEN(B2)=15,2007-VALUE(MID(B2,7,2)),if(LEN(B2)=18,200 7-VALUE(MID(B2,7,4)),"身份证错"))4.Excel表中用Year\Month\Day函数取相应的年月日数据;另一方法:这是根据身份证号码(15位和18位通用)自动提取性别和出生年月的自编公式,供需要的网友参考:说明:公式中的B2是身份证号1、根据身份证号码求性别:=IF(LEN(B2)=15,IF(MOD(VALUE(RIGHT(B2,3)),2)=0,"女","男"),IF(LEN(B2)=18,IF(MOD(VALUE(MID(B2,15,3)),2)=0,"女","男"),"身份证错"))2、根据身份证号码求出生年月:=IF(LEN(B2)=15,CONCATENATE("19",MID(B2,7,2),".",MID(B2,9,2)),IF(LEN(B2)=18,CONCATENATE(MID(B2,7,4),".",MID(B2,11 ,2)),"身份证错"))3、根据身份证号码求年龄:=IF(LEN(B2)=15,year(now())-1900-VALUE(MID(B2,7,2)),if(LE N(B2)=18,year(now())-VALUE(MID(B2,7,4)),"身份证错"))提取身份证号码的每一位,类推:第一位 =IF(LEN(C2)=15,MID(C2,1,1),MID(C2,1,1))第二位 =IF(LEN(C2)=15,MID(C2,2,1),MID(C2,2,1))第三位 =IF(LEN(C2)=15,MID(C2,3,1),MID(C2,3,1))Excel身份证号码提取的出生年月日格式为: 1969年12月24日="19"&MID(C2,9,2)&"年"&MID(C2,11,2)&"月"&MID(C2,13,2)&"日"格式为: 196912="19"&MID(C2,9,2)&""&MID(C2,11,2)格式为: 1969.12="19"&MID(C2,9,2)&"."&MID(C2,11,2)将光标移至需要输入日期的单元格中,然后输入“="19"&MID(身份证单元格,9,2)&"年"&MID(身份证单元格,11,2)&"月"&MID(身份证单元格,13,2)&"日"”内容。
其中MID(B3,9,2)就是从身份证号码的第9位开始取2位数,得出该员工的出生年份,MID(B3,11,2)就是得出该员工的出生月份,而MID(B3,13,2)则是该员工的出生日期,这些信息再加上年、月、日等文字就会组成该员工的准确出生年月日“1970年1月1日”。
EXCEL根据身份证号码提取性别、出生年月、求年龄EXCEL根据身份证号码自动提取性别和出生年月及求年龄注:1.身份证号码前6位是北京市北京县的号码,后面的数字是随输入的,如有雷同,纯属巧合,敬请见谅。
2.所有求出的信息都是直接从身份证号码里取得的。
3.退休日期按男60女55周岁计算4.有效性验证已直接放到A列的数据有效里,单独列出是为了方便查看5.年龄按周岁计算。
公式,直接粘在单元格上,假如A列是身份证号码,B列是以下任意一个(A2行为身份证号码,B2为下列任一,类推):出生日期=IF(A2<>"",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)* 2),"#-00-00")+0,)性别 =IF(A2<>"",IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女"),)年龄=IF(A2<>"",DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN( A2)=18)*2),"#-00-00"),TODAY(),"y"),)全部改为18位=IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(S UM(MID(REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2)全部改为15位=IF(LEN(A2)=15,A2,LEFT(REPLACE(A2,7,2,),15))退休日期=IF(A2<>"",EDATE(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2 )=18)*2),"#-00-00"),660+MOD(RIGHT(LEFT(A2,17)),2)*60),) 号码有效性验证=OR(LEN(A2)=15,IF(LEN(A2)=18,MID("10X98765432",MOD(SUM(M ID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17" )))),11)+1,1)=RIGHT(A2)))所属省份 =IF(A2<>"",VLOOKUP(LEFT(A2,2),data,2,),)所属地区 =IF(A2<>"",VLOOKUP(LEFT(A2,6),data,2,))。