用excel函数利用身份证信息提取出生年月性别年龄
一、建立有关身份证信息的表格:
1、建立一个有关身份证信息的表格:以excel2003为例,要完整的输入18位的身份证号,输入身份证号的单元格的格式应进行如下设置:
1)、如下图,先选中要输入身份证号的单元格,点右键,选择设置单元格格式,进入单元格格式面板,选数字,分类选文本,我们输入的身份证号为“文本)
2)、点确定后,输入身份证号。
二、提取出生年月日:
1、点C2单元格,插入函数,提取出生年月:点“插入”—“函数”,出现插入函数面板,我们选“date”函数,点确定,如下图:所谓DATE函数,就是到待区域内代表日期的数字:
2、进入DATE函数面板:如下图:DATE函数包括三个内容:YEAR(年)、MONTH(月)、DAY(日),对于本例来说,我们就是要在B2单元格内的身份证信息中到某人的
出生年月日数字,使之显示在C2单元格内。
3、我们知道,现在中国的所有身份证号码都是18位的,比如:B2单元格内的身份证号码:4*****197010056568
从左往右数,第7-10位为某人的出生年份:1970年,第11-12位为某人的出生月份:10月,第13-14位为某人的出生日期:05日。此时,我们要在DATE函数中嵌套MID函数,提取相关的信息。
我们看到:我们在YEAR栏里,输入了MID(B2,7,4),MID(B2,7,4)就是MID函数的格式,什么意思呢?B2就是要查的区域,我们要的文本信息(身份证号)在B2单元格内;“7”的意思是我们要的年份信息在文本信息的从左往右数的第几位开始出现,在第7位,所以我们填“7”;“4”的意思是,这个信息共有几位,年份信息共有4位,所以我们填4。查月份、日期信息是MID函数的重复应用,是一个意思。
4、MONTH栏里,嵌套MID函数,MID(B2,11,2),意思是月份信息在B2单元格内从左往右数的第11位开始,共2位:也就是10。
5、DAY栏里,嵌套MID函数,MID(B2,13,2),意思是日期信息在B2单元格内从左往右数的第13位开始,共2位:也就是5。
6、点确定,如下:
7、复制函数,把光标移到C2单元格的右下角点上,出现十字标记时向下拉,复制函数,如下:
三、提取性别:
1、点选D2单元格,插入IF函数。
2、进入IF函数面板:
3、logical_test栏嵌套函数:
logical_test里填的是任何一个可判断为对或错的数值或表达式。
我们看到IF函数里嵌套了两个函数,分别是MID函数和INT函数。
什么是INT函数呢?是返回数值向下取整为最接近的整数,本例用来判断身份证里数值的奇偶数。表达式是:=IF(MID(B2,17,1)/2=INT(MID(B2,17,1)/2))
什么意思呢?如果MID(B2,17,1)/2(意思是B2单元格里的文本信息从左往右数第17位开始,只取第17位这1位数的数值除以2)等于INT(MID(B2,17,1)/2(意思是整数)的话,也就是偶数的话。
4、Value_if_true的意思是,如果表达式满足的话,返回一个真值,对于本例来说,我们都知道,18位身份证号的第17位是性别的识别码,如果是奇数,就是男的,如果是偶数,就是女的。所以此栏填“女”
5、如果是奇数,也就是Value_if_false填男。
6、点确定,计算结果为女,复制函数,如下:
四、计算年龄mid函数提取年月日
1、点E2单元格,插入if函数:嵌套的函数有year函数、now函数、month函数、int函数、day函数,都是很简单的,看一下就明白了:
对了,说一下嵌套函数,就是指在某些情况下,您可能需要将某函数作为另一函数的参数使用,这一函数就是嵌套函数,就像我们已经和正在用到的。
下面这种算法,是最准确的算法,涵盖了各种可能,只是公式较长:如下:
=IF(MONTH(NOW())<MONTH(C2),INT(YEAR(NOW())-YEAR(C2))-1,IF(MONTH(NOW())>MONTH(C2),YEAR(NOW())-YEAR(C2),IF(DAY(NOW())>=DAY(C2),YEAR(NOW())-YEAR(C2),YEAR(NOW())-YEAR(C2)-1)))
这么长,是什么意思呢?
“=IF(MONTH(NOW())<MONTH(C2),INT(YEAR(NOW())-YEAR(C2))-1,”的意思是:如果当前日期的月份小于所需计算日期的月份,则表示今年没有过生日,年龄数为YEAR(NOW())-YEAR(D2)-1,如果不是这种情况,进入下一步判断;month(now())是指当前月份,now函数是month函数的一个参数,month(c2)是针对本例而言的,c2单元格是出生年月,对其它应用而言,就是你设计的单元格了。int函数就是取整数函数。
“IF(MONTH(NOW())>MONTH(C2),YEAR(NOW())-YEAR(C2),”的意思是:如果当前日期的月份大于所需计算日期的月份,则表示今年已经过生日,年龄数为YEAR(NOW())-YEAR(D2),如果也不是这种情况,则表示这两个月份相等,进入下一步判断;year(now())-year(c2),就是用当前的年份减去出生的年份(c2单元格的出生年份,对本例而言)。
IF(DAY(NOW())>=DAY(C2),YEAR(NOW())-YEAR(C2):如果今天的日期大于或者等于出生年月日中的日期,则表示已经过了生日,或者正在过生日,则年龄数为YEAR(NOW())-YEAR(C2),否则表示今年没有过生日,年龄数应该选择下面的公式,大小为YEAR(NOW())-YEAR(C2)-1)))
其实,如果我们的出生年月栏里,只有出生年月,IF(DAY(NOW())>=DAY(C2)之后的部分就可以省掉了。计算年龄的公式就可以变为:
=IF(MONTH(NOW())<MONTH(C2),INT(YEAR(NOW())-YEAR(C2))-1,IF(MONTH(NOW())>=MONTH(C2),YEAR(NOW())-YEAR(C2)))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。