Applies ToExcel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

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

當您想要計算兩個日期之間的差異時,請使用 DATEDIF 函數。 首先,在一個儲存格中放入開始日期,並在另一個儲存格中放入結束日期。 然後輸入類似下列的其中一個公式。

如果 Start_date 大於 End_date,結果將會是 #NUM!

天數差異

=DATEDIF(D9,E9,"d") 而結果為 856

在此範例中,開始日期在儲存格 D9,結束日期在 E9。 公式在 F9。 "d" 會傳回兩個日期之間的完整天數。

週數差異

=(DATEDIF(D13,E13,"d")/7) 而結果為:122.29

在此範例中,開始日期在儲存格 D13,結束日期在 E13。 "d" 會傳回天數。 但請注意結尾的 /7。 這會將天數除以 7,因為一週有 7 天。 請注意,此結果也需要格式化為數字。 按 CTRL+1。 然後按一下 [數字] > [小數位數: 2]

月份數差異

=DATEDIF(D5,E5,"m") 而結果為:28

在此範例中,開始日期在儲存格 D5,結束日期在 E5。 在公式中,"m" 會傳回兩天之間的完整月份數。

年份數差異

=DATEDIF(D2,E2,"y") 而結果為:2

在此範例中,開始日期在儲存格 D2,結束日期在 E2。 "y" 會傳回兩天之間的完整年數。

以累積的年、月及日計算年齡

您也可以計算年齡或某人的服務時間。 結果可能會像是「2 年 4 個月 5 天」。

1. 使用 DATEDIF 來尋找年總計。

=DATEDIF(D17,E17,"y") 而結果為:2

在此範例中,開始日期在儲存格 D17,結束日期在 E17。 在公式中,"y" 會傳回兩天之間的完整年數。

2. 再次使用 DATEDIF 搭配 "ym" 來尋找月份。

=DATEDIF(D17,E17,"ym") 而結果為:4

在另一個儲存格中,使用 DATEDIF 公式搭配 "ym" 參數。 "ym" 會傳回最後一個完整年後的剩餘月份數。

3. 使用不同的公式來尋找天數。

=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 天。

不建議使用 DATEDIF "md" 引數,因為它可能會計算出不正確的結果。

4. 選用:將三個公式合併成一個。

=DATEDIF(D17,E17,"y")&" 年,"&DATEDIF(D17,E17,"ym")&" 月,"&DATEDIF(D17,E17,"md")&" 天" 而結果為:2 年,4 月,5 天

您可以將這三個計算放在一個儲存格中,如此範例所示。 使用 &、引號和文字。 這是輸入較長的公式,但至少全都在一個公式內。 祕訣: 按 ALT+ENTER 可在公式中放入換行符號。 這讓我們可以更輕鬆閱讀。 此外,如果看不到整個公式,請按 CTRL+SHIFT+U。

下載我們的範例

您可以下載包含本文中所有範例的範例活頁簿。 您可以直接沿用,也可以建立自己的公式。下載日期計算範例

其他日期和時間計算

如您在以上所見,DATEDIF 函數會計算開始日期與結束日期之間的差異。 不過,您也可以在公式內使用 TODAY() 函數,而不是輸入特定日期。 使用 TODAY() 函數時,Excel 會使用您電腦目前的日期作為日期。 請記得,此資訊會於未來一天再次開啟檔案時變更。

=DATEDIF(TODAY(),D28,"y") 而結果為:984

請注意,撰寫本文時,這一天是 2016 年 10 月 6 日。

當您想要計算兩個日期之間的工作日數時,請使用 NETWORKDAYS.INTL 函數。 您也可以排除週末和假日。

開始之前:決定是否要排除假日。 如果確定,請在個別的區域或工作表中輸入假日日期的清單。 將每個假日日期放在其自己的儲存格中。 然後選取這些儲存格,選取 [公式] > [定義名稱]。 將該範圍命名為 MyHolidays,然後按一下 [確定]。 然後使用下列步驟建立公式。

1. 輸入開始日期和結束日期。

在儲存格 D53 的開始日期是 1/1/2016,在儲存格 E53 的結束日期是 12/31/2016

在此範例中,開始日期在儲存格 D53,結束日期在儲存格 E53。

2. 在另一個儲存格中,輸入像這樣的公式:

=NETWORKDAYS.INTL(D53,E53,1) 而結果為:261

輸入類似上述範例的公式。 公式中的 1 會將星期六和星期日建立為週末,並將其從總計排除。

3. 如有需要,請變更 1。

Intellisense 清單顯示 2 - 星期日、星期一;3 - 星期一、星期二,依此類推

如果星期六和星期日不是您的週末,請從 IntelliSense 清單將 1 變更為另一個數字。 例如,2 會將星期日和星期一建立為週末。

4. 輸入假日範圍名稱。

=NETWORKDAYS.INTL(D53,E53,1,MyHolidays) 而結果為:252

如果您在上方的「開始之前」一節中建立了假日範圍名稱,請於結尾處輸入,如下所示。 如果您沒有假日,您可以忽略逗號和 MyHolidays。

您可以將時間相減來計算經過的時間。 首先,在一個儲存格中放入開始時間,並在另一個儲存格中放入結束時間。 務必輸入完整時間,包括小時、分鐘,以及在 AM 或 PM 前輸入一個空格。 方法如下:

1. 選取開始時間和結束時間。

開始日期/時間 7:15 AM,結束日期/時間 4:30 PM

在此範例中,開始時間在儲存格 D80,結束時間在 E80。 務必輸入小時、分鐘,以及在 AM 或 PM 前輸入一個空格

2. 設定 h:mm AM/PM 格式。

設定儲存格格式對話方塊,自訂命令,h:mm AM/PM 類型

選取這兩個日期,然後按 CTRL+1 (或在 Mac 上按 MAC Command 按鈕圖示的圖像+1)。 務必選取 [自訂] > h:mm AM/PM (如果尚未設定)。

3. 兩個時間相減。

=E80-D80 而結果為:9:15 AM

在另一個儲存格中,從結束時間儲存格減去開始時間儲存格。

4. 設定 h:mm 格式。

設定儲存格格式對話方塊,自訂命令,h:mm 類型

按 CTRL+1 (或在 Mac 上按 MAC Command 按鈕圖示的圖像+1)。 選擇 [自訂] > h:mm,讓結果排除 AM 和 PM。

若要計算兩個日期和時間之間的時間,您可以直接將兩者相減。 不過,您必須將格式化套用至每個儲存格,以確保 Excel 會傳回您想要的結果。

1. 輸入兩個完整日期和時間。

開始日期 1/1/16 1:00 PM;結束日期 1/2/16 2:00 PM

在一個儲存格中,輸入完整的開始日期/時間。 在另一個儲存格中,輸入完整的結束日期/時間。 每個儲存格都應該有月份、日、年、小時、分鐘,以及在 AM 或 PM 之前輸入一個空格

2. 設定 3/14/12 1:30 PM 格式。

設定儲存格格式對話方塊,日期命令,3/14/12 1:30 PM 類型

選取這兩個儲存格,然後按 CTRL+1 (或在 Mac 上按 MAC Command 按鈕圖示的圖像+1)。 然後選取 [日期] > 3/14/12 1:30 PM。 這不是您將設定的日期,只是格式外觀的範例。 請注意,在 Excel 2016 之前的版本中,此格式可能有不同的範例日期,例如 3/14/01 1:30 PM。

3. 兩者相減。

=E84-D84 而結果為 1.041666667

在另一個儲存格中,從結束日期/時間減去開始日期/時間。 結果看起來可能會像數字與小數。 您將在下一個步驟中修正。

4. 設定 [h]:mm 格式。

設定儲存格格式對話方塊,自訂命令,[h]:mm 類型

按 CTRL+1 (或在 Mac 上按 MAC Command 按鈕圖示的圖像+1)。 選取 [自訂]。 在 [類型] 方塊中,輸入 [h]:mm

相關主題

DATEDIF 函數 NETWORKDAYS.INTL 函數 NETWORKDAYS 更多日期與時間函數 計算兩個時間之間的差異

Need more help?

Want more options?

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

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