Applies To
Excel 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 函數可能會算出錯誤的結果。 如需詳細資料,請參閱本文的已知問題小節。

  • 祕訣: 如果你想知道兩個日期之間的天數,只需從較早日期減去較晚的日期即可。 這之所以有效,是因為日期在 Excel 中是以數字形式儲存。

語法

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

期間內的日數。

醫學博士

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

Need more help?

Want more options?

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