本文介绍 Microsoft Excel 中 DATEDIF 函数的公式语法和用法。
计算天数、 月或两个日期之间的年数。警告: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 用于表示时间段的最后一个(即结束)日期的日期。
注意: 我 f Start_date大于End_date,则结果将是#NUM !。
Unit 要返回的信息类型:
Unit |
返回结果 |
"Y" |
一段时期内的整年数。 |
"M" |
一段时期内的整月数。 |
"D" |
一段时期内的天数。 |
"MD" |
start_date 与 end_date 之间天数之差。 忽略日期中的月份和年份。 重要: 不推荐使用“MD”参数,因为存在相关已知限制。参阅下面的“已知问题”部分。 |
“YM” |
start_date 与 end_date 之间月份之差。 忽略日期中的天和年份 |
"YD" |
start_date 与 end_date 的日期部分之差。 忽略日期中的年份。 |
日期存储为可用于计算的序列号。默认情况下,1899 年 12 月 31 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。
DATEDIF 函数在用于计算年龄的公式中很有用。
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”参数可能导致出现负数、零或不准确的结果。若要计算上一完整月份后余下的天数,可使用如下方法:
此公式从单元格 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 天。