ZetCode

Excel DATEDIF 函数

最后修改于 2025 年 4 月 4 日

DATEDIF 函数以各种单位计算两个日期之间的差值。它在 Excel 中是一个隐藏函数,但在日期计算中非常有用。本教程提供了使用 DATEDIF 的全面指南,并附有详细示例。您将学习基本语法、实际应用和高级技术来掌握此函数。

DATEDIF 函数基础

DATEDIF 函数计算两个日期之间的差值。它可以返回年、月或日的计算结果。该函数在 Excel 的帮助文档中没有记录,但自 Lotus 1-2-3 时代以来一直可用。

组成部分 描述
函数名称 DATEDIF (日期差)
语法 =DATEDIF(start_date, end_date, unit)
参数 start_date, end_date, unit 代码
返回值 指定单位的日期差

此表分解了 DATEDIF 函数的基本组成部分。它显示了函数名称、基本语法格式、参数和返回值特性。

基本 DATEDIF 示例(天数)

此示例演示了如何使用 DATEDIF 计算两个日期之间的天数。

A B C
开始日期 结束日期 结果
1/1/2023 1/31/2023 =DATEDIF(A2,B2,"d")

该表显示了一个简单的电子表格,其中 A 列和 B 列分别包含开始日期和结束日期。C2 中的公式计算这些日期之间的天数差。

DATEDIF 天数差
=DATEDIF(A2,B2,"d")

此公式计算 2023 年 1 月 1 日至 2023 年 1 月 31 日之间的天数。结果将是 30。 "d" 单位代码指定以天作为返回单位。

DATEDIF 月数差

此示例展示了如何使用 "m" 单位代码计算两个日期之间的完整月份数。

A B C
开始日期 结束日期 结果
3/15/2023 7/20/2023 =DATEDIF(A2,B2,"m")

该表演示了计算 2023 年 3 月 15 日至 2023 年 7 月 20 日之间的完整月份数。该公式忽略天数,只计算日期之间的完整月份。

DATEDIF 月数差
=DATEDIF(A2,B2,"m")

此公式返回 4,表示日期之间的完整月份数。从 3 月到 7 月是 4 个月,与具体天数无关。"m" 单位代码指定以月作为返回单位。

DATEDIF 年数差

此示例演示了如何使用 "y" 单位代码计算两个日期之间的完整年份数。

A B C
开始日期 结束日期 结果
5/10/2018 5/9/2023 =DATEDIF(A2,B2,"y")

该表显示了如何计算 2018 年 5 月 10 日至 2023 年 5 月 9 日之间的年数。该公式计算完整年份,因此周年日期前一天将返回少一年的结果。

DATEDIF 年数差
=DATEDIF(A2,B2,"y")

此公式返回 4,因为 2023 年 5 月 9 日比 5 周年纪念日早一天。"y" 单位代码指定以年作为返回单位。计算的是完整年份,不是四舍五入。

DATEDIF 剩余月数

此示例展示了如何使用 "ym" 单位代码计算完整年份后的剩余月数。

A B C
开始日期 结束日期 结果
8/25/2020 3/15/2023 =DATEDIF(A2,B2,"ym")

该表演示了计算 2020 年 8 月 25 日至 2023 年 3 月 15 日之间完整年份后的剩余月数。"ym" 单位忽略年份和天数。

DATEDIF 剩余月数
=DATEDIF(A2,B2,"ym")

此公式返回 6,表示从 8 月到 3 月的月份数(不包括年份变化)。"ym" 单位代码计算完整年份后的剩余月数。

DATEDIF 剩余天数(排除年和月)

此示例演示了如何使用 "md" 单位代码计算完整年和月后的剩余天数。

A B C
开始日期 结束日期 结果
6/10/2022 8/25/2023 =DATEDIF(A2,B2,"md")

该表显示了如何计算 2022 年 6 月 10 日至 2023 年 8 月 25 日之间完整年和月后的剩余天数。"md" 单位忽略年份和月份。

DATEDIF 剩余天数
=DATEDIF(A2,B2,"md")

此公式返回 15,表示从 10 号到 25 号的天数(不包括月份和年份差异)。"md" 单位代码计算完整月份后的剩余天数。

DATEDIF 单位代码

DATEDIF 支持多种单位代码,这些代码决定了日期差的计算方式。理解这些代码对于正确使用该函数至关重要。

单位代码 描述
"d" 日期之间的天数
"m" 日期之间的完整月份数
"y" 日期之间的完整年份数
"ym" 完整年份后的剩余月数
"yd" 完整年份后的剩余天数
"md" 完整月份后的剩余天数

这个全面的表格解释了 DATEDIF 函数所有可用的单位代码。每个代码通过关注特定的日期组成部分产生不同的结果。

DATEDIF 用于年龄计算

DATEDIF 通常用于以年、月、日为单位计算年龄。此示例显示了一个完整的年龄计算公式。

A B C
出生日期 当前日期 年龄
4/12/1985 4/4/2023 =DATEDIF(A2,B2,"y") & " 年, " & DATEDIF(A2,B2,"ym") & " 月, " & DATEDIF(A2,B2,"md") & " 天"

该表演示了如何计算一个人从出生日期到当前日期的确切年龄。该公式结合了多个 DATEDIF 函数以获得完整结果。

DATEDIF 年龄计算
=DATEDIF(A2,B2,"y") & " years, " & DATEDIF(A2,B2,"ym") & " months, " & DATEDIF(A2,B2,"md") & " days"

此公式对于给定的日期返回 "37 年, 11 月, 23 天"。它结合了三个 DATEDIF 调用和文本连接,以创建可读的年龄字符串。

DATEDIF 用于项目持续时间

DATEDIF 可以计算项目持续时间的月数和天数,这对于项目管理跟踪很有用。

A B C
开始日期 结束日期 持续时间
10/15/2022 3/28/2023 =DATEDIF(A2,B2,"m") & " 月, " & DATEDIF(A2,B2,"md") & " 天"

该表显示了如何计算一个项目从 2022 年 10 月 15 日开始到 2023 年 3 月 28 日结束的持续时间。该公式提供了月数和天数。

DATEDIF 项目持续时间
=DATEDIF(A2,B2,"m") & " months, " & DATEDIF(A2,B2,"md") & " days"

此公式对于给定的日期范围返回 "5 个月, 13 天"。它对于以可读格式跟踪项目时间线和里程碑很有用。

DATEDIF 常见错误

如果使用不当,DATEDIF 可能会返回错误。了解这些错误有助于排除公式问题。

错误 原因 解决方案
#NUM! 开始日期 > 结束日期 交换日期或验证输入
#VALUE! 无效日期格式 确保日期值正确
#NAME? 函数拼写错误 检查 "DATEDIF" 拼写
结果不正确 单位代码错误 验证单位代码是否在引号内

此表列出了常见的 DATEDIF 错误、其原因和解决方案。正确的日期验证和单位代码使用可以避免大多数问题。

DATEDIF 函数是 Excel 中一个强大但常被忽视的日期计算工具。从简单的天数计算到复杂的年龄计算,DATEDIF 都可以处理各种日期差场景。掌握其单位代码和错误处理将显著提高您的日期相关计算能力。

作者

我叫 Jan Bodnar,是一位充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面有十多年的经验。

列出 所有 Excel 公式