我们在实际工作中,经常需要从身份证号码中获取人员的年龄,但 Excel 并不提供任何内置函数来计算年龄。因此,我们可以组合一些函数或自定义函数,来将出生日期转换为年龄。
本文介绍了从身份证号中快速获取年龄的 5种方法。

在计算年龄之前,我们首先需要从身份证号中获取出生日期。 18位的身份证号中,从7-14位的 8个数字就是出生日期。其中,7-10 位是年, 11-12 是月, 13 -14位是日。可以用 MID 函数从身份证号中获取出生的年、月、日。
=MID(A1,7,4) // 年=MID(A1,11,2) // 月=MID(A1,13,2) // 日
注:A1 是身份证号码所在的单元格
MID 函数是用于从文本字符串中提取指定数目的字符。
语法:MID(text, start_num, num_chars)
参数:
Text 必需,要提取字符的文本字符串。
Start_num 必需,文本中要提取的第一个字符的位置。
Num_chars 必需,指定希望 MID 从文本中返回字符的个数。
现在,只要组合一些函数公式来计算当前日期与出生日期之间的差值就能得出年龄。
方法一
=YEAR(TODAY())-MID(B3,7,4)
用 MID (B3,7,4)获取身份证号中的出生年份
YEAR (TODAY ())用于计算当前的年份

方法二
为了简化公式,我们先用 DATE 函数将 MID 函数获取的年、月、日组合成出生日期。
=DATE(MID(B3,7,4),MID(B3,11,2),MID(B3,13,2))
接下来,用以下公式计算出年龄:
=INT((TODAY()-C3)/365)
通过计算两个日期之差并除以 365 天得到年份数值
再用 INT 函数将年龄舍入到最接近的整数

方法三
=DATEDIF(C3,TODAY(),"Y")
DATEDIF 函数是用于计算两个日期之间相隔的天数、月数或年数
“Y”是返回整年数

方法四
还可以将 DATEDIF 函数链接起来,得到具体到年、月、天的年龄。
=DATEDIF(C3,TODAY(),"Y")&"年"&DATEDIF(C3,TODAY(),"Ym")&"月"&DATEDIF(C3,TODAY(),"md")&"天"
“Ym”是返回两个日期之间月份差
“md”是返回两个日期之间天数差

方法五
既然 Excel 中没有计算年龄的内置函数,我们可以创建自定义函数来计算年龄。
1、 首先,打开 Excel,并按下 Alt + F 11 进入 Visual Basic for Applications(VBA)编辑器。
2、 在 VBA 编辑器中,选择插入 -> 模块,然后在模块中插入以下代码:
Function CalculateAge(id As String) As Integer Dim birthDate As Date birthDate = DateSerial(Mid(id, 7, 4), Mid(id, 11, 2), Mid(id, 13, 2)) CalculateAge = DateDiff("yyyy", birthDate, Date)End Function提示:如果不太了解 VBA 代码如何使用,请阅读
3、关闭 VBA 编辑器,回到 Excel 工作表中。
4、在一个单元格中,可以使用以下公式调用自定义函数来计算年龄:
=CalculateAge(A1)

希望上面提到的这些方法能够帮你解决如何根据身份证号在 Excel 中计算年龄的问题。如果你有任何问题或反馈,请在评论区告诉我。
我是 Excel 从繁到简,关注我,持续分享更多的 Excel 技巧!