計算兩個日期之間的差距

計算兩個日期之間的差距

當您想要計算兩個日期之間的差異,請使用 DATEDIF 函數。先將開始日期放在某個儲存格,再將結束日期放在另一個儲存格。然後輸入如下所示的其中一項公式。

相差的日數

=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 中的年份和月份來建立這個日期。然後,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 會將星期六和星期日視為週末,並從總計中排除。

注意:Excel 2007 沒有 NETWORKDAYS.INTL 函數。不過,它有 NETWORKDAYS。上述範例在 Excel 2007 中會像這樣︰=NETWORKDAYS(D53,E53)。您不用指定 1,因為 NETWORKDAYS 會假設星期六和星期日為週末。

3.如有需要,請修改數值 1。

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

如果星期六和星期日不是您的週末,請將 IntelliSense 清單中的數值 1 修改為另一個數值。例如,建立週末為星期日和星期一的數值 2。

如果您使用的是 Excel 2007,請跳過此步驟。Excel 2007 的 NETWORKDAYS 函數一律會假設週末為星期六和星期日。

4.輸入假日範圍名稱。

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

如果您在上方的「開始之前」一節中,已建立假日範圍名稱,請在結尾處加以輸入,如圖所示。如果您沒有假日,就只要留下逗號,不用輸入 MyHolidays。如果您使用的是 Excel 2007,請將上述範例改為︰=NETWORKDAYS(D53,E53,MyHolidays)

祕訣:如果您不想參考假日範圍名稱,也可以改輸入範圍 D35:E39。或者,您可以在公式內輸入每個假日。例如,如果您的假日是 2016 年 1 月 1 和 2 日,請輸入︰=NETWORKDAYS.INTL(D53,E53,1,{"1/1/2016","1/2/2016"})。在 Excel 2007 中看起來像這樣︰=NETWORKDAYS(D53,E53,{"1/1/2016","1/2/2016"})

您可以透過將一個時間減去另一個時間來計算經過的時間。先將開始時間放在某個儲存格,再將結束時間放在另一個儲存格。請務必輸入完整時間,包括小時、分鐘以及 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

更多日期及時間的函數

計算兩個時間之間的差異

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×