从身份证中提取出生年月日、性别、年龄
1、年龄:
=DATEDIF(DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)),NOW(),"y")
2、性别:
=IF(MOD(VALUE(MID(A1,17,1)),2)=1,"男","女")
3、年月日:
=MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2)
个公式是18位身份证的
年龄:就是从身份证号中提取出出生年份,用当前的年份去减
性别:判断倒数第2位是奇数还是偶数
年月日:从身份证中提取出相应的年月日
如果重写这些公式
1.年龄:
=IF(LEN(A1)=18,DATEDIF(DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)),NOW(),"y"),DATEDIF(DATE("19"&MID(A1,7,2),MID(A1,9,2),MID(A1,11,2)),NOW(),"y"))
2.性别:
=IF(LEN(A1)=18,IF(MOD(VALUE(MID(A1,17,1)),2)=1,"男","女"),IF(MOD(VALUE(MID(A1,15,1)),2)=1,"男","女"))
3.年月日:
=IF(LEN(A1)=18,DATE(MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2)),DATE("19"&MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2)))
☆从出生年月日中提取年龄☆
①、=INT((DATE(2010,9,30)-B1)/365)
②、=IF(AND(B1<>""),2010-YEAR(B1))
“B1”指出生年月日栏
如何使用Excel从身份证号码中提取出生日期
如何使用Excel从身份证号码中提取出生日期2009-02-27 22:52例如:从身份证420821************中提取出生日期来,如何快速得出?只需使用语句:=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从文本中返回字符的个数。
对身份证号码分析下就知道:420821************,出生日期是1992年2月6日;也就是
从字符串(420821************)的第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单元格中是441000*********,在D6单元格中计算出的结果是“1950-01-12”;若C6单元格中是410005************,在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列输入身份证号码后,出生日期和性别可自动输入了,这样就减少了用户输入数据工作量,提高了办事效率!
身份证号码提取年龄
知识积累 2008-10-03 00:02:44 阅读160 评论0  字号:mid函数提取年月日
假如身份证号在A2单元格 
  公式为=IF(A2<>"",DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00"),TODAY(),"y"),)
以上是把身份证号码变成年龄的公式,
新的表格中显示出的年龄其实是用公式得来的,而且是截止到当时制表时的日期来计算年龄的。如果不小心在以后的某一天又加上几个新人的数据,也照样地下拉公式的话,那就不对了,因为所截止的日期不相同。所以就会出现错误。
如何把上述公式设置成截止到某一个年月日的年龄。如:截止到2007年9月30日以前的年龄。
这样,以后不管加入多少新人,所出来的数据绝不会有错误。
在实际工作中统计截止到某年、月、日年龄是多大,这样的事情是常见的数据统计。
用date(2007,9,30)取代后,就可以解决了!