KutoolsforOffice — 一套方案,五大工具。事半功倍。

Excel 从出生日期获取或计算年龄

作者肖阳修改日期

如果您的 Excel 工作表中有一列员工的出生日期,现在希望计算每位员工的年龄,Excel 提供了诸如 YEARFRAC 和 DATEDIF 等实用函数,帮助您轻松快捷地根据生日计算年龄。

doc-get-age-from-birthday-1


利用 YEARFRAC 函数根据出生日期计算年龄

在 Excel 中,YEARFRAC 函数可以帮助您根据给定出生日期获取年龄,通用语法如下:

=YEARFRAC(birthdate, TODAY())
  • birthdate:生日日期。
  • TODAY():此函数可返回当前日期。

请在空白单元格中输入以下公式:

=YEARFRAC(B2,TODAY())

然后拖动填充柄至需要应用该公式的单元格,所有年龄都已计算并以小数形式显示在单元格中,如截图所示:

doc-get-age-from-birthday-2

提示:使用 YEARFRAC 函数计算的结果为小数,如需将年龄显示为整数,应结合 INT 函数,如下所示:

=INT(YEARFRAC(B2,TODAY()))

即可得到如下的整数年龄:

doc-get-age-from-birthday-3


利用 DATEDIF 函数根据出生日期计算年龄

DATEDIF 函数同样可以将出生日期转换为年龄,通用语法为:

=DATEDIF(birthdate, TODAY(), "y")
  • birthdate:出生日期。
  • TODAY():该函数返回今天的日期。
  • y:返回从出生日期到当前日期之间的完整年数。

请在空白单元格中输入或粘贴以下公式:

=DATEDIF(B2, TODAY(), "y")

所有年龄都会根据出生日期计算出来,如下截图所示:

doc-get-age-from-birthday-4


根据出生日期按年、月、日分别计算年龄

如果要获取人员的精确年龄,例如从出生日期到当前日期共有多少年、月、日,您需将 DATEIF 函数组合成一个单一公式,如下:

=DATEDIF(B2,TODAY(),"Y") & " Years, " & DATEDIF(B2,TODAY(),"YM") & " Months, " & DATEDIF(B2,TODAY(),"MD") & " Days"

然后您将得到如下截图所示的结果:

doc-get-age-from-birthday-5

提示:如果在使用上述公式时想要忽略为 0 的年、月或日,可以结合 IF 函数来判断 0,请使用如下公式:

=IF(DATEDIF(B2, TODAY(),"y")=0,"",DATEDIF(B2, TODAY(),"y")&" Years, ")& IF(DATEDIF(B2, TODAY(),"ym")=0,"",DATEDIF(B2, TODAY(),"ym")&" Months, ")& IF(DATEDIF(B2, TODAY(),"md")=0,"",DATEDIF(B2, TODAY(),"md")&" Days")

然后将得到如下截图所示,无 0 值的年龄按年、月、日显示:

doc-get-age-from-birthday-6


在 Excel 中按指定日期计算年龄

有时,您可能希望计算从出生日期到某一指定日期的年龄,而不是到当前日期。此时,只需将第二个参数中的 TODAY()函数替换为您指定的日期即可。例如:

=DATEDIF(birthdate, specific_date, "y")
  • birthdate:生日的日期。
  • specific_date:需要根据出生日期计算年龄的截止日期。
  • y:返回从出生日期到当前日期的完整年数。

请使用如下公式:

=DATEDIF(B2, C2, "y")

然后年龄将按出生日期到指定日期计算,如下截图所示:

doc-get-age-from-birthday-7

提示:如需获取年龄的精确年、月、日数,请用如下公式:

=DATEDIF(B2, C2,"Y") & " Years, "& DATEDIF(B2,C2,"YM") & " Months, "&DATEDIF(B2,C2, "MD") & " Days"

doc-get-age-from-birthday-8


根据出生日期早于 1900 的情况计算年龄

如果出生日期早于 1900,上述公式将无法正常使用,因为 Excel 会自动将早于 1900 的日期存储为文本格式。为此,我们为您提供了一个自定义函数,帮助您在出生日期早于 1900 时也能准确获取年龄。

1. 按下 Alt + F11 组合键,即可打开 Microsoft Visual Basic for Applications 窗口。

2. 接着点击插入 > 模块,再将下方 VBA 代码复制到模块窗口中。

计算出生日期早于 1900 到今天的年龄:

Function AgelnNow(ByVal xDate As Variant)
Dim xIA As Integer
xIA = 0
On Error Resume Next
xIA = DateDiff("yyyy", xDate, Now())
If (Month(Now()) < Month(xDate)) Or (Month(xDate) = Month(Now())) Then
If (Day(Now()) < Day(xDate)) Then
xIA = xIA - 1
End If
End If
If xIA = -1 Then
AgelnNow = "Error"
Else
AgelnNow = xIA
End If
End Function

3. 在空白单元格中输入以下公式:=AgelnNow(A2)A2 为出生日期单元格)

接着拖动填充柄到需要获取年龄的单元格,所有从出生日期到今天的年龄都会计算出来,见下截图:

doc-get-age-from-birthday-9

提示:如果需要从出生日期到死亡日期(而非当前日期)获取年龄,请应用如下代码:

计算出生日期早于 1900 到死亡日期的年龄:

Function Age(ByVal StartDate As Variant, ByVal EndDate As Variant)
    Dim xIA As Integer
    xIA = 0
    On Error Resume Next
    xIA = DateDiff("yyyy", StartDate, EndDate)
    If (Month(EndDate) < Month(StartDate)) Or (Month(StartDate) = Month(EndDate)) Then
        If (Day(EndDate) < Day(StartDate)) Then
            xIA = xIA - 1
        End If
    End If
    If xIA = -1 Then
       Age = "Error"
    Else
        Age = xIA
    End If
End Function

并使用此公式:=Age(A2,B2)(A2 为出生日期单元格,B2 为死亡日期单元格),即可获取如下截图的结果:

doc-get-age-from-birthday-10


利用强大功能,按当前日期或指定日期根据出生日期计算年龄

Kutools for Excel日期时间助手工具,助您根据出生日期与当前日期或指定日期轻松计算年龄,无需记忆复杂公式。点击下载 Kutools for Excel,免费试用!


相关函数使用:

  • YEARFRAC:
  • 返回两个日期之间所占年份的十进制数值。
  • TODAY()
  • 返回当前日期的数值。
  • INT()
  • 返回指定值的整数部分。
  • DATEDIF
  • 该函数可返回两个日期之间的年数、月数或天数。

相关年龄计算文章:

  • 在 Excel 中根据身份证号码计算年龄
  • 假设您拥有一份包含 13 位数字的身份证号码列表,其中前 6 位代表出生日期。例如,身份证号 9808020181286 表示出生日期为 1998 年 8 月 2 日。

这款最佳办公效率工具

Kutools for Excel —— 助您脱颖而出

🤖KUTOOLS AI 助手:基于数据分析的变革创新智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮显示或标记重复项  |  删除空白行  |  合并列或单元格且不丢失数据  |  不使用公式的四舍五入……
超级 VLookup多条件查询  |  多值返回  |  跨多工作表  |  模糊查找……
高级下拉列表轻松下拉列表  |  依赖下拉列表  |  多选下拉列表……
列管理器添加指定数量的列  |  移动列  |  切换隐藏列的显示状态  |比较列与选择相同/不同单元格……
特色功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿和表管理器|资源库(自动文本)|  日期提取  |  汇总工作表  |  加密/解密单元格  |  按列表群发邮件  |  超级筛选  |  特殊筛选(筛选粗体单元格/斜体/删除线……) ......
顶级 15 工具组12 文本工具添加文本删除特定字符……)|  50+ 图表 类型甘特图……)|  40+ 实用公式基于生日计算年龄……)|  19 插入工具插入二维码按路径插入图片……)|  12 转换工具小写金额转大写汇率转换……)|  7 合并和拆分工具高级合并行拆分 Excel 单元格……)|……以及更多
在您的首选语言中使用 Kutools——支持英语、西班牙语、德语、法语、中文以及 40+ 种其他语言!

Kutools for Excel 拥有超过 300 项功能,让您的需求一键轻松实现……


Office Tab —— 让 Microsoft Office(包括 Excel)支持标签式阅读与编辑

  • 一秒即可切换数十个已打开的文档!
  • 每天为您减少上百次鼠标点击,轻松告别鼠标手困扰。
  • 查看和编辑多个文档时,工作效率提升 50%。
  • 为 Office(包括 Excel)引入高效标签页,让您同样畅享如 Chrome、Edge 和 Firefox 般的便捷体验。