警告
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" 來尋找月份。
在另一個儲存格中,使用帶有 「ym」 參數的 DATEDIF 公式。 "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。
推如果週六和週日不是你的週末日,請將 1 改成 IntelliSense 清單中的另一個數字。 例如,2 會將星期日和星期一建立為週末。
4. 輸入假日範圍名稱。
如果你在上方「開始之前」區塊建立了節日範圍名稱,請在最後這樣輸入。 如果您沒有假日,您可以忽略逗號和 MyHolidays。
計算經過的時間
您可以將時間相減來計算經過的時間。 首先,在一個儲存格中放入開始時間,並在另一個儲存格中放入結束時間。 務必輸入完整時間,包括小時、分鐘,以及在 AM 或 PM 前輸入一個空格。 方法如下:
1. 選取開始時間和結束時間。
在這個例子中,開始時間位於 D80 格子,結束時間在 E80。 務必輸入小時、分鐘,以及在 AM 或 PM 前輸入一個空格。
2. 設定 h:mm AM/PM 格式。
選擇兩個日期,然後在 Mac) 上按下 CTRL + 1 (或 MAC
+ 1。 如果還沒設定,記得選擇自訂>h:mm AM/PM。
3. 兩個時間相減。
在另一個格子中,從結束時間格中減去起始時間格。
4. 設定 h:mm 格式。
在 Mac) 按 CTRL + (1 或 MAC
+ 1 的圖片。 選擇 自訂>h:mm ,這樣結果就會排除 AM 和 PM。
計算兩個日期和時間之間的經過時間
若要計算兩個日期和時間之間的時間,您可以直接將兩者相減。 不過,您必須將格式化套用至每個儲存格,以確保 Excel 會傳回您想要的結果。
1. 輸入兩個完整日期和時間。
在一個儲存格輸入完整的開始日期/時間。 在另一個儲存格中,輸入完整的結束日期/時間。 每個儲存格都應該有月份、日、年、小時、分鐘,以及在 AM 或 PM 之前輸入一個空格。
2. 設定 3/14/12 1:30 PM 格式。
選取兩個儲存格,然後按 CTRL + 1 (或 Mac) 上的
+ 1。 然後選擇 日期>2012/3/34 下午1:30。 這不是您將設定的日期,只是格式外觀的範例。 請注意,在 Excel 2016 之前的版本中,此格式可能有不同的範例日期,例如 3/14/01 1:30 PM。
3. 兩者相減。
在另一個格子裡,從結束日期/時間減去開始日期/時間。 結果看起來可能會像數字與小數。 您將在下一個步驟中修正。
4. 設定 [h]:mm 格式。
在 Mac) 按 CTRL + (1 或 MAC
+ 1 的圖片。 選取 [自訂]。 在 類型 框中輸入 [h]:mm。
相關主題
DATEDIF 函數
NETWORKDAYS.INTL 函數
NETWORKDAYS
更多日期與時間函數
計算兩個時間之間的差