計算兩個日期之間的天數、月數或年數。

警告: Excel 提供 DATEDIF 函數,以支援來自 Lotus 1-2-3 的較舊活頁簿。 不過在特定情況下,DATEDIF 函數可能會算出錯誤的結果。 如需詳細資料,請參閱本文的已知問題小節。

語法

DATEDIF(start_date,end_date,unit)

引數

描述

start_date   

必要

代表給定期間之第一個或開始日期的日期。 日期可以在引號內輸入成文字字串 (例如"2001/1/30") , 以序列值 (例如 36921 表示 2001 年 1 月 30 日,如果您使用的是 1900 年日期系統) ,或做為其他公式或函數的結果 (例如 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 日因為是 1900 年 1 月 1 日之後的第 39,447 天,所以其序列值是 39,448。

  • 若您需要計算年齡時,公式中的 DATEDIF 函數很有用。

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

需要更多協助嗎?

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

另請參閱

Excel 函數 (依英文字母順序排列)

Excel 函數 (依類別)

如何避免公式出錯

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×