警告: Excel 提供 DATEDIF 函數,以支援來自 Lotus 1-2-3 的較舊活頁簿。 不過在特定情況下,DATEDIF 函數可能會算出錯誤的結果。 如需詳細資訊,請移至 DATEDIF 函數文章的已知問題一節 。
當您想要計算兩個日期之間的差異時,請使用 DATEDIF 函數。 首先,在一個儲存格中放入開始日期,並在另一個儲存格中放入結束日期。 然後輸入類似下列的其中一個公式。
附註: 如果 Start_date 大於 End_date,結果將會是 #NUM!。
天數差異

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

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

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

在此範例中,開始日期在儲存格 D2,結束日期在 E2。 "y" 會傳回兩天之間的完整年數。
以累積的年、月及日計算年齡
您也可以計算年齡或某人的服務時間。 結果可能會像是「2 年 4 個月 5 天」。
1. 使用 DATEDIF 來尋找年總計。

在此範例中,開始日期在儲存格 D17,結束日期在 E17。 在公式中,"y" 會傳回兩天之間的完整年數。
2. 再次使用 DATEDIF 搭配 "ym" 來尋找月份。

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

現在我們需要尋找剩餘天數的數字。 我們會撰寫另一種公式來執行此動作,如上所示。 此公式會以 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. 選用:將三個公式合併成一個。

您可以將這三個計算放在一個儲存格中,如此範例所示。 使用 &、引號和文字。 這是輸入較長的公式,但至少全都在一個公式內。 祕訣: 按 ALT+ENTER 可在公式中放入換行符號。 這讓我們可以更輕鬆閱讀。 此外,如果看不到整個公式,請按 CTRL+SHIFT+U。
下載我們的範例
您可以下載包含本文中所有範例的範例活頁簿。 您可以直接沿用,也可以建立自己的公式。下載日期計算範例
其他日期和時間計算
如您在以上所見,DATEDIF 函數會計算開始日期與結束日期之間的差異。 不過,您也可以在公式內使用 TODAY() 函數,而不是輸入特定日期。 使用 TODAY() 函數時,Excel 會使用您電腦目前的日期作為日期。 請記得,此資訊會於未來一天再次開啟檔案時變更。

請注意,撰寫本文時,這一天是 2016 年 10 月 6 日。
當您想要計算兩個日期之間的工作日數時,請使用 NETWORKDAYS.INTL 函數。 您也可以排除週末和假日。
開始之前:決定是否要排除假日。 如果確定,請在個別的區域或工作表中輸入假日日期的清單。 將每個假日日期放在其自己的儲存格中。 然後選取這些儲存格,選取 [公式] > [定義名稱]。 將該範圍命名為 MyHolidays,然後按一下 [確定]。 然後使用下列步驟建立公式。
1. 輸入開始日期和結束日期。

在此範例中,開始日期在儲存格 D53,結束日期在儲存格 E53。
2. 在另一個儲存格中,輸入像這樣的公式:

輸入類似上述範例的公式。 公式中的 1 會將星期六和星期日建立為週末,並將其從總計排除。
3. 如有需要,請變更 1。

如果星期六和星期日不是您的週末,請從 IntelliSense 清單將 1 變更為另一個數字。 例如,2 會將星期日和星期一建立為週末。
4. 輸入假日範圍名稱。

如果您在上方的「開始之前」一節中建立了假日範圍名稱,請於結尾處輸入,如下所示。 如果您沒有假日,您可以忽略逗號和 MyHolidays。
您可以將時間相減來計算經過的時間。 首先,在一個儲存格中放入開始時間,並在另一個儲存格中放入結束時間。 務必輸入完整時間,包括小時、分鐘,以及在 AM 或 PM 前輸入一個空格。 方法如下:
1. 選取開始時間和結束時間。

在此範例中,開始時間在儲存格 D80,結束時間在 E80。 務必輸入小時、分鐘,以及在 AM 或 PM 前輸入一個空格。
2. 設定 h:mm AM/PM 格式。

選取這兩個日期,然後按 CTRL+1 (或在 Mac 上按
3. 兩個時間相減。

在另一個儲存格中,從結束時間儲存格減去開始時間儲存格。
4. 設定 h:mm 格式。

按 CTRL+1 (或在 Mac 上按
若要計算兩個日期和時間之間的時間,您可以直接將兩者相減。 不過,您必須將格式化套用至每個儲存格,以確保 Excel 會傳回您想要的結果。
1. 輸入兩個完整日期和時間。

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

選取這兩個儲存格,然後按 CTRL+1 (或在 Mac 上按
3. 兩者相減。

在另一個儲存格中,從結束日期/時間減去開始日期/時間。 結果看起來可能會像數字與小數。 您將在下一個步驟中修正。
4. 設定 [h]:mm 格式。
![設定儲存格格式對話方塊,自訂命令,[h]:mm 類型](https://cxcs.microsoft.net/static/public/centralimages/zh-tw/2edbd461-d4c5-49a7-a5a2-b6d9329c0411/a17fda3dac52e21afcc94910f87bbf9f24164728.png)
按 CTRL+1 (或在 Mac 上按
相關主題
DATEDIF 函數 NETWORKDAYS.INTL 函數 NETWORKDAYS 更多日期與時間函數 計算兩個時間之間的差異