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

- 利用 YEARFRAC 函数根据出生日期计算年龄
- 利用 DATEDIF 函数根据出生日期计算年龄
- 按年、月、日分别计算出生日期的年龄
- 在 Excel 中按指定日期计算年龄
- 按出生日期在 1900 之前的情况计算年龄
- 利用强大功能,按当前日期或指定日期根据出生日期计算年龄
利用 YEARFRAC 函数根据出生日期计算年龄
在 Excel 中,YEARFRAC 函数可以帮助您根据给定出生日期获取年龄,通用语法如下:
- birthdate:生日日期。
- TODAY():此函数可返回当前日期。
请在空白单元格中输入以下公式:
然后拖动填充柄至需要应用该公式的单元格,所有年龄都已计算并以小数形式显示在单元格中,如截图所示:

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

利用 DATEDIF 函数根据出生日期计算年龄
DATEDIF 函数同样可以将出生日期转换为年龄,通用语法为:
- birthdate:出生日期。
- TODAY():该函数返回今天的日期。
- y:返回从出生日期到当前日期之间的完整年数。
请在空白单元格中输入或粘贴以下公式:
所有年龄都会根据出生日期计算出来,如下截图所示:

根据出生日期按年、月、日分别计算年龄
如果要获取人员的精确年龄,例如从出生日期到当前日期共有多少年、月、日,您需将 DATEIF 函数组合成一个单一公式,如下:
然后您将得到如下截图所示的结果:

提示:如果在使用上述公式时想要忽略为 0 的年、月或日,可以结合 IF 函数来判断 0,请使用如下公式:
然后将得到如下截图所示,无 0 值的年龄按年、月、日显示:

在 Excel 中按指定日期计算年龄
有时,您可能希望计算从出生日期到某一指定日期的年龄,而不是到当前日期。此时,只需将第二个参数中的 TODAY()函数替换为您指定的日期即可。例如:
- birthdate:生日的日期。
- specific_date:需要根据出生日期计算年龄的截止日期。
- y:返回从出生日期到当前日期的完整年数。
请使用如下公式:
然后年龄将按出生日期到指定日期计算,如下截图所示:

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

根据出生日期早于 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 为出生日期单元格)
接着拖动填充柄到需要获取年龄的单元格,所有从出生日期到今天的年龄都会计算出来,见下截图:

提示:如果需要从出生日期到死亡日期(而非当前日期)获取年龄,请应用如下代码:
计算出生日期早于 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 为死亡日期单元格),即可获取如下截图的结果:

利用强大功能,按当前日期或指定日期根据出生日期计算年龄
Kutools for Excel 的日期时间助手工具,助您根据出生日期与当前日期或指定日期轻松计算年龄,无需记忆复杂公式。点击下载 Kutools for Excel,免费试用!
相关函数使用:
- YEARFRAC:
- 返回两个日期之间所占年份的十进制数值。
- TODAY()
- 返回当前日期的数值。
- INT()
- 返回指定值的整数部分。
- DATEDIF
- 该函数可返回两个日期之间的年数、月数或天数。
相关年龄计算文章:
- 在 Excel 中快速将生日转换为年龄
- 例如,如果您在 Excel 中有一组出生日期数据,想要将这些出生日期转换为在 Excel 中精确显示年龄,该如何操作?
- 在 Google 工作表中根据出生日期计算年龄
- 您是否曾尝试在 Google 表格中根据出生日期计算年龄?本文将为您介绍多种实用公式,助您轻松高效完成此操作。
- 在 Excel 中根据身份证号码计算年龄
- 假设您拥有一份包含 13 位数字的身份证号码列表,其中前 6 位代表出生日期。例如,身份证号 9808020181286 表示出生日期为 1998 年 8 月 2 日。
- 根据出生日期计算年龄(精确到年、月、日)
- 如果有一列已知的出生日期,是否可以基于这些日期,快速计算每个人的年龄(分别以年、月、日的形式显示),或以小数形式表示?如下面截图所示。
- 在 Excel 中按特定或未来日期计算年龄
- 例如,假如您已知某人的出生日期,需要根据未来某一天或指定日期来计算其年龄,以下方法将为您提供详细的分步指导。
这款最佳办公效率工具
Kutools for Excel —— 助您脱颖而出
| 🤖 | KUTOOLS AI 助手:基于数据分析的变革创新智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮显示或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 超级 VLookup:多条件查询 | 多值返回 | 跨多工作表 | 模糊查找…… | |
| 高级下拉列表:轻松下拉列表 | 依赖下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列 | 移动列 | 切换隐藏列的显示状态 |比较列与选择相同/不同单元格…… | |
| 特色功能:网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿和表管理器|资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表群发邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 顶级 15 工具组:12 文本工具(添加文本,删除特定字符……)| 50+ 图表 类型(甘特图……)| 40+ 实用公式(基于生日计算年龄……)| 19 插入工具(插入二维码,按路径插入图片……)| 12 转换工具(小写金额转大写,汇率转换……)| 7 合并和拆分工具(高级合并行,拆分 Excel 单元格……)|……以及更多 |
Kutools for Excel 拥有超过 300 项功能,让您的需求一键轻松实现……
Office Tab —— 让 Microsoft Office(包括 Excel)支持标签式阅读与编辑
- 一秒即可切换数十个已打开的文档!
- 每天为您减少上百次鼠标点击,轻松告别鼠标手困扰。
- 查看和编辑多个文档时,工作效率提升 50%。
- 为 Office(包括 Excel)引入高效标签页,让您同样畅享如 Chrome、Edge 和 Firefox 般的便捷体验。