跳至主要内容

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

Author: Xiaoyang Last Modified: 2025-07-31

如果在 Excel 工作表中有一份员工出生日期的列表,现在您想为每个人计算年龄。在 Excel 中,有一些非常有用的函数,例如 YEARFRAC 或 DATEDIF,可以帮助您快速轻松地从生日计算出年龄。

doc-get-age-from-birthday-1


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

在 Excel 中,YEARFRAC 函数可以帮助您从给定的出生日期获取年龄,通用语法为:

=YEARFRAC(出生日期, TODAY())
  • 出生日期: 生日的日期。
  • 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(出生日期, TODAY(), "y")
  • 出生日期: 生日的日期。
  • TODAY(): 此函数返回今天的日期。
  • y: 它返回从出生日期到当前日期的完整年份数。

现在,请在空白单元格中输入或复制以下公式:

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

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

doc-get-age-from-birthday-4


根据出生日期以年、月和日计算年龄

如果您想获取某人的准确年龄,例如从他们的出生日期到当前日期有多少年、多少月和多少天,您需要将 DATEIF 函数合并到一个单一公式中,如下所示:

=DATEDIF(B2,TODAY(),"Y") & " 年, " & DATEDIF(B2,TODAY(),"YM") & " 月, " & DATEDIF(B2,TODAY(),"MD") & " 天"

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

doc-get-age-from-birthday-5

提示:如果您希望在应用上述公式时忽略 0 年、0 月或 0 天,可以结合 IF 函数来测试 0 值。请使用以下公式:

=IF(DATEDIF(B2, TODAY(),"y")=0,"",DATEDIF(B2, TODAY(),"y")&" 年, ")& IF(DATEDIF(B2, TODAY(),"ym")=0,"",DATEDIF(B2, TODAY(),"ym")&" 月, ")& IF(DATEDIF(B2, TODAY(),"md")=0,"",DATEDIF(B2, TODAY(),"md")&" 天")

然后,您将得到如下截图所示的结果,所有年龄均以年、月和天显示,并且没有 0 值:

doc-get-age-from-birthday-6


在 Excel 中计算特定日期的年龄

有时,您可能希望获取从出生日期到特定日期而不是当前日期的年龄,在这种情况下,您只需将第二个参数中的 TODAY() 函数替换为特定日期即可。例如:

=DATEDIF(出生日期, 特定日期, "y")
  • 出生日期: 生日的日期。
  • 特定日期: 您希望从出生日期计算年龄的结束日期。
  • y: 它返回从出生日期到当前日期的完整年份数。

请使用以下公式:

=DATEDIF(B2, C2, "y")

然后,从出生日期到特定日期的年龄已计算出来,如以下截图所示:

doc-get-age-from-birthday-7

提示:要获取年龄的确切年、月和天数,请使用以下公式:

=DATEDIF(B2, C2,"Y") & " 年, "& DATEDIF(B2,C2,"YM") & " 月, "&DATEDIF(B2,C2, "MD") & " 天"

doc-get-age-from-birthday-8


基于 1900 年之前的出生日期计算年龄

当出生日期早于 1900 年时,上述公式无法正确工作,因为在 Excel 中输入 1900 年之前的日期时,它会自动存储为文本格式。因此,这里有一个用户定义函数 (UDF) 可帮助您在出生日期早于 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
  • 此函数返回两个给定日期之间的年数、月数或天数。

相关的年龄计算文章:


最佳的办公生产力工具

Kutools for Excel - 助您脱颖而出

🤖 Kutools AI 助手:基于智能执行革新数据分析:智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数
热门功能查找、高亮或标记重复项  |  删除空行  |  合并列或单元格而不丢失数据  |  无需公式四舍五入 ...
超级 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 一样。