Excel 能用身份证号码计算出年龄吗?

图7.115中B列是职员的身份证号码,由于身份证号码中包含了号码所有者的出生日期,因此要求利用身份证号码计算身份证持有人的年龄。

图7.115 职员信息表

解题步骤

身份证号码中的第7位到第14位属于出生日期,因此使用MID函数从身份证号码中提取生日,然后用它与今天的日期比较就得到年龄了。具体操作步骤如下。

1.在C2单元格中输入以下公式:

2.双击C2单元格的填充柄,从而使公式自动向下填充,公式的计算结果如图7.116所示。

图7.116 根据身份证号码计算年龄

知识扩展

1.身份证号码的前6位代表地区,地区右边的8位代表出生年月日,因此本例采用MID函数从身份证的第7位开始,一共提取7位数字出来,然后通过TEXT函数转换成日期样式。

例如,第一个身份证号的生日是19770316,使用TEXT函数转换后的结果为“1977-03-16”。如果不转换格式,DATEDIF函数无法识别此日期。

2.TODAY函数用于生成今天的日期,没有参数。

3.DATEDIF 函数用于计算两个日期之间的间隔时间,单位可以是年,也可以是月或天。DATEDIF函数的语法如下:

第一参数代表起始日期,第二参数代表结束日期,第三参数用于指定日期单位。

第三参数的取值范围与含义见表7.30

表7.3 unit参数说明

表7.3中说明了DATEDIF函数第三参数的6种用法,实际常用的只有第一种和第二种。

=DATEDIF("2012-3-1","2016-4-2","Y")——计算结果4,代表两个日期相差4年;

=DATEDIF("2012-3-1","2016-4-2","M")——计算结果49,代表两个日期相差49个月;

=DATEDIF("2012-3-1","2016-4-2","YD")——计算结果32,代表两个日期相差32天,忽略年,相当于只计算3月1日到4月2日之间的日期差

在本例中,DATEDIF的作用在于计算身份证号中的日期与今天之间的年份差异。

Excel自动计算年龄

Excel 还有种函数,输入出生日期后,可以自动计算出年龄,它叫作 DATEDIF 函数。每天花几小时查看出生日期,如果发现当前日期是生日的话再手动将年龄数据加1……我见过不少会“永无止尽”重复如此操作的案例。在此提醒各位,只要掌握这个函数,就可以完全避免花费大量时间进行如此麻烦的操作。

DATEDIF 函数的结构如下:

【格式】

=DATEDIF(起始日期,结束日期,单位)

通过指定起始日期与结束日期,得出间隔的数据。

第三参数则根据想要如何表示间隔数据的单位,进行指定。

  • “Y”➛年
  • “M”➛月
  • “D”➛日

计算年龄数据时需要选择“年”来作为单位,因此需要按照以下方式输入(假定 B2为出生日期)。顺带一提,这个函数无法使用辅助输入功能,必须手动输入“=DATEDIF(”。

=DATEDIF(B2,TODAY(),”Y”)

在单元格 C2中输入=DATEDIF(B2,TODAY(),”Y”)

想要通过这种方法自动计算出年龄,将出生日期指定为起始日期后,通常会输入能够导出当前日期的 TODAY 函数作为结束日期。接着,从出生日期到今天为止所间隔的时间以年作单位来表示的话,需要在第三参数单位中输入“Y”。

想计算出准确的结果,需要准确无误地输入公历年的出生日期。如果不了解日期数据的基础,只输入月份和日期的话,那么年份则会变成当前年份,这样就无法计算出正确的年龄。所以,请一定记住“所有日期都要从公历年开始输入”。

用“×年×个月×日”表示年龄和间隔期间的数据

在实际的工作中经常会遇到“用“×年×个月×日”表示年龄和间隔期间”这样的事。想要完成此项操作,需要牢记如何导出除去年份后的从起始日期到结束日期的月份数(即×个月的部分),或者除去年份和月份的数值后的起始日期到结束日期的天数(即×日的部分)。

若想计算出“×个月”部分,将第三参数的单位代码指定为“YM”。

在单元格 D2中输入=DATEDIF(B2,TODAY(),”YM”),得到月份的数值

若想算出“×日”部分,将第三参数的单位代码指定为”MD”。

在单元格 E2中输入=DATEDIF(B2,TODAY(),”MD”),得到天数

这样,我们就能在不同的单元格中分别得出对应的数值。

顺带一提,想要在一个单元格里得出“×年×个月”的结果,可用“&”连结字符串等混合字段,从而实现组合输入数值与函数公式。