Applies ToExcel for Microsoft 365 Excel for Microsoft 365 for Mac Excel for the web 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 的序列值 (例如,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 函數很有用。

  • 如果 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/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 技術社群中的專家,或在社群中取得支援。

另請參閱

Excel 函數 (按字母排序)

Excel 函數 (依類別排序)

如何避免公式出錯

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。