DATEDIF 函数

应用对象
Microsoft 365 专属 Excel Microsoft 365 Mac 版专属 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 函数计算结果可能并不正确。 有关详细信息,请参阅本文中的“已知问题”部分。
  • 提示: 如果您想计算两个日期之间的天数,只需从较早的日期中减去较晚的日期即可。 之所以有效,是因为日期在 Excel 中存储为数字。

语法

DATEDIF(start_date,end_date,unit)

参数 说明
start_date
必需
表示给定时间段的第一个日期或开始日期的日期。 日期值有多种输入方式:带引号的文本字符串(例如 "2001/1/30")、序列号(例如 36921,在商用 1900 日期系统时表示 2001 年 1 月 30 日)或其他公式或函数的结果(例如 DATEVALUE("2001/1/30"))。
end_date
必需
用于表示时间段的最后一个(即结束)日期的日期。
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 函数在用于计算年龄的公式中很有用。
  • 如果 start_date 大于 end_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/1/2016) 的第一天 (2016/5/6) 。 其原理如下:首先,DATE 函数会创建日期 5/1/2016。 DATE 函数使用单元格 E17 中的年份和单元格 E17 中的月份创建日期。 1 表示该月的第一天。 DATE 函数的结果是 5/1/2016。 然后,从单元格 E17 中的原始结束日期(即 5/6/2016)减去该日期。 5/6/2016 减 5/1/2016 得 5 天。

需要更多帮助吗?

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