Applies ToMicrosoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel Excel 网页版 Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Windows SharePoint Services 3.0

计算两个日期之间相隔的天数、月数或年数。

警告: Excel 提供了 DATEDIF 函数,以便支持来自 Lotus 1-2-3 的旧版工作簿。 在某些应用场景下,DATEDIF 函数计算结果可能并不正确。 有关详细信息,请参阅本文中的“已知问题”部分。

语法

DATEDIF(start_date,end_date,unit)

参数

说明

start_date   

必需

表示给定时间段的第一个或开始日期的日期。 日期值有多种输入方式:带引号的文本字符串(例如 "2001/1/30")、序列号(例如 36921,在商用 1900 日期系统时表示 2001 年 1 月 30 日)或其他公式或函数的结果(例如 DATEVALUE("2001/1/30"))。

end_date   

必需

用于表示时间段的最后一个(即结束)日期的日期。

Unit   

要返回的信息类型,其中:

Unit

返回结果

Y

一段时期内的整年数。

M

一段时期内的整月数。

D

一段时期内的天数。

MD

start_date 与 end_date 之间天数之差。 忽略日期中的月份和年份。

重要: 不推荐使用“MD”参数,因为存在相关已知限制。 参阅下面的“已知问题”部分。

YM

start_date 与 end_date 之间月份之差。 忽略日期中的天和年份

YD

start_date 与 end_date 的日期部分之差。 忽略日期中的年份。

备注

  • 日期存储为可用于计算的序列号。 默认情况下,1900 年 1 月 1 日的序列号为 1,2008 年 1 月 1 日的序列号为 39,448,这是因为它距 1900 年 1 月 1 日有 39,447 天。

  • DATEDIF 函数在用于计算年龄的公式中很有用。

  • 如果 s tart_date 大于e nd_date,则结果将为 #NUM!

示例

start_date

end_date

公式

描述(结果)

1/1/2001

1/1/2003

=DATEDIF(Start_date,End_date,"Y")

一段时期内的两个整年 (2)

6/1/2001

8/15/2002

=DATEDIF(Start_date,End_date,"D")

2001 年 6 月 1 日和 2002 年 8 月 15 日之间的天数为 440 (440)

6/1/2001

8/15/2002

=DATEDIF(Start_date,End_date,"YD")

忽略日期中的年份,6 月 1 日和 8 月 15 日之间的天数为 75 (75)

已知问题

“MD”参数可能导致出现负数、零或不准确的结果。 若要计算上一完整月份后余下的天数,可使用如下方法:

=DATEDIF(D17,E17,"md") 并且结果为:5

此公式从单元格 E17 中的原始结束日期 (5/6/2016) 减去当月第一天 (5/1/2016)。 其原理如下:首先,DATE 函数会创建日期 5/1/2016。 DATE 函数使用单元格 E17 中的年份和单元格 E17 中的月份创建日期。 1 表示该月的第一天。 DATE 函数的结果是 5/1/2016。 然后,从单元格 E17 中的原始结束日期(即 5/6/2016)减去该日期。 5/6/2016 减 5/1/2016 得 5 天。

需要更多帮助吗?

可随时在 Excel 技术社区中咨询专家或在社区中获取支持。

另请参阅

Excel 函数(按字母顺序)

Excel 函数(按类别列出)

如何避免损坏的公式

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。