DATEDIF 函數

Applies To
Excel for Microsoft 365 Excel for Microsoft 365 for Mac 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”) ,或者以序號的形式輸入,例如,如果您使用 1900 年日期系統) ,則可以 (36921,代表 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 日因為是 1900 年 1 月 1 日之後的第 39,447 天,所以其序列值是 39,448。
  • 若您需要計算年齡時,公式中的 DATEDIF 函數很有用。
  • 如果 start_date 大於 end_date,則結果會是 #NUM!

範例

Start_date End_date 公式 描述 (結果)
2001/1/1 2003/1/1 =DATEDIF(Start_date,End_date,"Y") 期間中的兩個整年 (2)
2001/6/1 2002/8/15 =DATEDIF(Start_date,End_date,"D") 2001 年 6 月 1 日到 2002 年 8 月 15 日之間共有 440天 (440)
2001/6/1 2002/8/15 =DATEDIF(Start_date,End_date,"YD") 忽略日期中的年,6 月 1 日到 8 月 15 日之間共有 75 天 (75)

已知問題

"MD" 引數可能會導致負數、零值或不正確的結果。 如果您嘗試計算從最終月份起算的剩餘天數,以下是因應措施:

=DATEDIF (D17,E17,md) 而結果為:5 此公式會從 E17 儲存格中的原始結束日期減去結束月份的第一天 (5/1/2016) (5/6/2016) 。 以下是公式計算的方式:首先,DATE 函數建立了日期:5/1/2016。 接著,它會使用 E17 儲存格中的年份,以及 E17 儲存格中的月份來產生結果。 而 1 則代表該月份的第一天。 DATE 函數的結果是 5/1/2016。 然後,我們會以 E17 儲存格中的原始結束日期減去上述結果,也就是 5/6/2016。 5/6/2016 減去 5/1/2016 等於 5 天。

需要更多協助嗎?

您隨時都可以詢問 Excel 技術社群 中的專家,或在 社群中取得支援。