第一篇:如何在Excel里根据身份证号码自动填写性别、出生年月、年龄
如何在Excel里根据身份证号码自动填写性别、出生年月、年龄
一、分析身份证号码
其实,身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是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.提取出生年月信息
由于上交报表时只需要填写出生年月,不需要填写出生日期,因此这里我们只需要关心身份证号码的相应部位即可,即显示为“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中根据身份证号码自动生成出生生日期和性别
在Excel中根据身份证号码自动生成出生生日期和性别
【身份证号判断性别的方法】 18位的看倒数第二位,奇男偶女; 15位的看倒数第一位,奇男偶女。假如:身份证所在的列为C2
首先要判断该身份证的长度,在excel中使用len函数来获取len(C2)
如果是18位的就取第17位,即倒数第二位,Excel中使用mid函数还获取指定位置开始,指定长度的字符串,如果是15位的就去最后一位也就是第15位 =If(len(C2)=15,mid(C2,15,1),mid(C2,17,1))
获取到这个数后,再判断该数是奇数还是偶数就可以得出性别了,excel中使用mod函数实现 =IF(MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2)=1,“男”,“女”)获取年龄的函数如下:
=DATEDIF(TEXT((LEN(C2)=15)*19&MID(C2,7,6+(LEN(C2)=18)*2),“00-00-00”),TODAY(),“y”)
在Excel中根据身份证号码自动生成出生生日期和性别 根据身份证号码自动生成出生生日期 方法一:
15位身份证号:*** 输出出生日期1979/06/05 =CONCATENATE(“19”,MID(E2,7,2),“/”,MID(E2,9,2),“/”,MID(E2,11,2))公式解释: a.MID(E2,7,2)为在身份证号码中获取表示年份的数字的字符串
b.MID(E2,9,2)为在身份证号码中获取表示月份的数字的字符串 c.MID(E2,11,2)为在身份证号码中获取表示日期的数字的字符串
d.CONCATENATE(“19”,MID(E2,7,2),“/”,MID(E2,9,2),“/”,MID(E2,11,2))目的就是将多个字符串合并在一起显示。
18位身份证号:***521 输出出生日期1979/06/05 =CONCATENATE(MID(E2,7,4),“/”,MID(E2,11,2),“/”,MID(E2,13,2))方法二:
15位身份证号:*** 出生日期790605 =IF(LEN(E3)=15,MID(E3,7,6),MID(E3,9,6))18位身份证号:***521 出生日期790605 =IF(LEN(E3)=15,MID(E3,7,6),MID(E3,9,6))公式解释:
LEN(E2)=15:检查E2单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。
MID(E2,7,6):从E2单元格中字符串的第7位开始提取6位数字,本例中表示提取15位身份证号码的第7、8、9、10、11、12位数字。
MID(E2,9,6):从C2单元格中字符串的第9位开始提取6位数字,本例中表示提取18位身份证号码的第9、10、11、12、13、14位数字。
=IF(LEN(E2)=15,MID(E2,7,6),MID(E2,9,6)):IF是一个逻辑判断函数,表示如果额E2单元格是15位,则提取第7位开始的6位数字,如果不是15位则提取自第9位开始的6位数字。根据身份证号码自动生成性别: 方法一:
在C列输入身份证号,在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单元格显示为“男”,否则显示为“女”。
15位身份证,看最后一位,奇男偶女;18位的,看第17位数,也是奇男偶女。方法二:
如果你是想在Excel表格中,从输入的身份证号码内让系统自动提取性别,可以输入以下公式: =IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,“男”,“女”),IF(MOD(MID(C2,17,1),2)=1,“男”,“女”))公式内的“C2”代表的是输入身份证号码的单元格。
第三篇:Excel中根据身份证号码自动填出生日期、性别、年龄
Excel中根据身份证号码自动填出生日期、性别、计算年龄
出生日期:F2=DATE(MIDB(E2,7,4),MIDB(E2,11,2),MIDB(E2,13,2))自动录入男女:=IF(MOD((IF(LEN(e2)=18,MID(e2,17,1),MID(e2,15,1))),2)=0,“女”,“男”)计算年龄:=IF(LEN(B2)=15,109-VALUE(MID(B2,7,2)),if(LEN(B2)=18,2009-VALUE(MID(B2,7,4)),“身份证错”))
说明:VALUE将一个文本字符串转换成数值,LEN返回文本字符串中的字符个数,MID从文本字符串中指定的起始位置起返回指定长度的字符,MID(文本,开始字符,所取字符数)。109表示当前日期为2009年,如果是2010年则改为110,2009表示当前日期为2009年。DATE代表日期的数字,MIDB自文字的指定起始位置起提取指定长度的字符串
第四篇:如何在Excel中填写身份证号码后自动提取出生年月日、年龄、性别
如何在Excel中填写身份证号码后自动提取出生年月日、年龄、性别
本公式只适合于18位身份证号码即二代居民身份证。
假如:A1输入身份证号码、B1显示性别、C1显示出生日期、D1显示周岁。(要注意A1、B1、C1、D1分别对应A列1行B列1行C列1行D列1行,如你的A1单元格不为你的表格第一项身份证编号则需将A1替换成你选取的单元格)
需要设置:A1单元格为文本格式、B1和D1为常规格式、C1为日期格式。(选中列右键设置单元格格式可选取格式)
1、显示性别:
B1输入公式:
=IF(A1=“",”“,IF(AND(LEN(A1)<>15,LEN(A1)<>18),”错误
“,IF(ISERROR(1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“))),”错误
“,IF(OR((1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“)))
2、C1输入公式:
=IF(A1=”“,”“,IF(AND(LEN(A1)<>15,LEN(A1)<>18),”错误
“,IF(ISERROR(1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“))),”错误
“,IF(OR((1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“)))
3、D1输入公式:
=IF(ISERROR(1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“))),”错误
“,IF(OR((1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“)))
“,DATEDIF(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“),TODAY(),”y")))
注意:A1、B1、C1、D1分别对应A列1行B列1行C列1行D列1行,如你的A1单元格不为你的表格第一项身份证编号则需将A1替换成你选取的单元格
如下图
那么上述B1、C1、D1输入函数中应将A1替换成F4即可。(替换简便方法:ctrl+F键调出查找对话框选择—替换—查找内容填A1—替换填你填写身份证号码的第一项单元格名称)
第五篇:在excel中巧妙运用身份证号码输入身份证号如何做到自动显示姓别_年龄及出生年月日
1、在excel中输入身份证号如何做到自动显示姓别,年龄及出生年月日
15位和18位的身份证号都合适的了。设内容如下:
........A列......B列......C列......D列....1 身份证号 性别 出生年月 年龄
2(输入身份证号)
算年龄的:=IF(OR(LEN(A2)=15,LEN(A2)=18),RIGHT(IF(IF(LEN(A2)=15,MID(A2,9,2),MID(A2,11,2))*100+IF(LEN(A2)=15,MID(A2,11,2),MID(A2,13,2))>MONTH(TODAY())*100+DAY(TODAY()),YEAR(TODAY())-IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2))-1,YEAR(TODAY())-IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2))),2),“证号错误”)
算性别的:=IF(LEN(A2)=15,(IF(OR(ABS(RIGHT(A2))=1,ABS(RIGHT(A2))=3,ABS(RIGHT(A2))=5,ABS(RIGHT(A2))=7,ABS(RIGHT(A2))=9),“男”,“女”)),(IF(OR(ABS(MID(A2,17,1))=1,ABS(MID(A2,17,1))=3,ABS(MID(A2,17,1))=5,ABS(MID(A2,17,1))=7,ABS(MID(A2,17,1))=9),“男”,“女”)))
算出生年月的:=DATE(IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2)),IF(LEN(A2)=15,MID(A2,9,2),MID(A2,11,2)),IF(LEN(A2)=15,MID(A2,11,2),MID(A2,13,2)))
【身份证信息提取】
从身份证号码中提取出生年月日
=TEXT(MID(A1,7,6+(LEN(A1)=18)*2),“#-00-00”)+0 =TEXT(MID(A1,7,6+(LEN(A1)=18)*2),“#-00-00”)*1 =IF(A2<>“",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),”#-00-00“)+0,)显示格式均为yyyy-m-d。(最简单的公式,把单元格设置为日期格式)
=IF(LEN(A2)=15,”19“&MID(A2,7,2)&”-“&MID(A2,9,2)&”-“&MID(A2,11,2),MID(A2,7,4)&”-“&MID(A2,11,2)&”-“&MID(A2,13,2))
显示格式为yyyy-mm-dd。(如果要求为“1995/03/29”格式的话,将”-” 换成”/”即可)=IF(D4=”“,”“,IF(LEN(D4)=15,TEXT((”19“&MID(D4,7,6)),”0000年00月00日“),IF(LEN(D4)=18,TEXT(MID(D4,7,8),”0000年00月00日“))))显示格式为yyyy年mm月dd日。(如果将公式中“0000年00月00日”改成“0000-00-00”,则显示格式为yyyy-mm-dd)
=IF(LEN(A1:A2)=18,MID(A1:A2,7,8),”19“&MID(A1:A2,7,6))显示格式为yyyymmdd。
=TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“)+0 =IF(LEN(A2)=18,MID(A2,7,4)&-MID(A2,11,2),19&MID(A2,7,2)&-MID(A2,9,2))=MID(A1,7,4)&”年“&MID(A1,11,2)&”月“&MID(A1,13,2)&”日“ =IF(A1<>”“,TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“))从身份证号码中提取出性别
=IF(MOD(MID(A1,15,3),2),”男“,”女“)
(最简单公式)=IF(MOD(RIGHT(LEFT(A1,17)),2),”男“,”女“)=IF(A2<>” ”,IF(MOD(RIGHT(LEFT(A2,17)),2),”男”,”女”),)=IF(VALUE(LEN(ROUND(RIGHT(A1,1)/2,2)))=1,”男“,”女“)从身份证号码中进行年龄判断
=IF(A3<>””,DATEDIF(TEXT((LEN(A3)=15*19&MID(A3,7,6+(LEN(A3)=18*2),”#-00-00”),TODAY(),”Y”),)
=DATEDIF(A1,TODAY(),“Y”)
(以上公式会判断是否已过生日而自动增减一岁)=YEAR(NOW())-MID(E2,IF(LEN(E2)=18,9,7),2)-1900 =YEAR(TODAY())-IF(LEN(A1)=15,”19“&MID(A1,7,2),MID(A1,7,4))=YEAR(TODAY())-VALUE(MID(B1,7,4))&”岁“ =YEAR(TODAY())-IF(MID(B1,18,1)=”“,CONCATENATE(”19“,MID(B1,7,2)),MID(B1,7,4))按身份证号号码计算至今天年龄
=DATEDIF(TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“),TODAY(),”y“)以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式
=DATEDIF(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“)*1,”2006-10-31“,”y“)按身份证号分男女年龄段
按身份证号分男女年龄段,身份证号在K列,年龄段在J列(身份证号为18位)男性16周岁以下为男性16周岁(含16周岁)以上至50周岁为男性50周岁(含50周岁)以上至60周岁为男性60周岁(含60周岁)以上为女性16周岁以下为女性16周岁(含16周岁)以上至45周岁为女性45周岁(含45周岁)以上至55周岁为女性55周岁(含55周岁)以上为=MATCH(DATEDIF(DATE(MID(K1,7,4),MID(K1,11,2),MID(K1,13,2)),TODAY(),”y“),{0,16,50,60}-{0,0,5,5}*ISEVEN(MID(K1,17,1)))=SUM(--(DATEDIF(MID(K1,7,4)&”/“&MID(K1,11,2)&”/“&MID(K1,13,2),TODAY(),”y“)>={0,16,45,55}+{0,0,5,5}*MOD(MID(K1,17,1),2)))
在网站上查到关于如何使用该函数的详解,感觉蛮复杂的。关于VLOOKUP函数的用法
“Lookup”的汉语意思是“查找”,在Excel中与“Lookup”相关的函数有三个:VLOOKUP、HLOOKUO和LOOKUP。下面介绍VLOOKUP函数的用法。
一、功能
在表格的首列查找指定的数据,并返回指定的数据所在行中的指定列处的数据。
二、语法 标准格式:
VLOOKUP(lookup_value,table_array,col_index_num , range_lookup)
三、语法解释
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)可以写为:
VLOOKUP(需在第一列中查找的数据,需要在其中查找数据的数据表,需返回某列值的列号,逻辑值True或False)1.Lookup_value为“需在数据表第一列中查找的数据”,可以是数值、文本字符串或引用。2.Table_array 为“需要在其中查找数据的数据表”,可以使用单元格区域或区域名称等。
⑴如果 range_lookup 为 TRUE或省略,则 table_array 的第一列中的数值必须按升序排列,否则,函数 VLOOKUP 不能返回正确的数值。
如果 range_lookup 为 FALSE,table_array 不必进行排序。
⑵Table_array 的第一列中的数值可以为文本、数字或逻辑值。若为文本时,不区分文本的大小写。3.Col_index_num 为table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;
Col_index_num 为 2 时,返回 table_array 第二列中的数值,以此类推。如果Col_index_num 小于 1,函数 VLOOKUP 返回错误值 #VALUE!;
如果Col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。4.Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。
四、应用例子
A B C D 1 编号
姓名
工资
科室 2 2005001 周杰伦 2870 办公室 3 2005002 萧亚轩 2750 人事科 4 2005006 郑智化 2680 供应科 5 2005010 屠洪刚 2980 销售科 6 2005019 孙楠 2530 财务科 7 2005036 孟庭苇 2200 工 会
A列已排序(第四个参数缺省或用TRUE)VLOOKUP(2005001,A1:D7,2,TRUE)等于“周杰伦” VLOOKUP(2005001,A1:D7,3,TRUE)等于“2870” VLOOKUP(2005001,A1:D7,4,TRUE)等于“办公室” VLOOKUP(2005019,A1:D7,2,TRUE)等于“孙楠” VLOOKUP(2005036,A1:D7,3,TRUE)等于“2200” VLOOKUP(2005036,A1:D7,4,TRUE)等于“工 会” VLOOKUP(2005036,A1:D7,4)
等于“工 会”
若A列没有排序,要得出正确的结果,第四个参数必须用FALAE VLOOKUP(2005001,A1:D7,2,FALSE)等于“周杰伦” VLOOKUP(2005001,A1:D7,3,FALSE)等于“2870” VLOOKUP(2005001,A1:D7,4,FALSE)等于“办公室” VLOOKUP(2005019,A1:D7,2,FALSE)等于“孙楠” VLOOKUP(2005036,A1:D7,3,FALSE)等于“2200” VLOOKUP(2005036,A1:D7,4,FALSE)等于“工 会”
五、关于TRUE和FALSE的应用
先举个例子,假如让你在数万条记录的表格中查找给定编号的某个人,假如编号已按由小到大的顺序排序,你会很轻松地找到这个人;假如编号没有排序,你只好从上到下一条一条地查找,很费事。
用VLOOKUP查找数据也是这样,当第一列已排序,第四个参数用TRUE(或确省),Excel会很轻松地找到数据,效率较高。当第一列没有排序,第四个参数用FALSE,Excel会从上到下一条一条地查找,效率较低。
笔者觉得,若要精确查找数据,由于计算机运算速度很快,可省略排序操作,直接用第四个参数用FALSE即可。
提取相同人名字的身份证号码
在A列中有所有人的姓名(有同名不同地址的人),B列中有身份证号码,C列中有这些人的住址,D列中是部分人的姓名,现在要在E列表格内填上D列中对应人的身份证号码(有七八千人)(A列中包含D列中的全部人名)
如无一同名同姓的话 E1输入公式
=VLOOKUP(D1,A:C,2,)下拉即可
这个是如果有同姓名的,会出现首次出现人姓名的身份证号码
如果没有同名同姓,就可以在E2单元格中输入=VLOOKUP(D2,A2:C3000,2,0)注意哦是放在E2哦,也是会出现首次姓名
excel中如何将表格中的身份证号码后几位以*号代替
虽然现在基本上都是新的身份证了(18位),但不排除可能出现的老身份证(15位)。因此,应用下面这个方法。
设身份证数据在c列,d列为隐藏后4的值。在d2输入:
=left(c2,len(c2)-4)&”****" 你需要有几个*,就将公式中的4改成几,然后在后面补几个*就好了。