計算兩個日期之間的差 (機器翻譯)

套用到
Microsoft 365 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

警告

Excel 提供 DATEDIF 函數,以支援來自 Lotus 1-2-3 的較舊活頁簿。 不過在特定情況下,DATEDIF 函數可能會算出錯誤的結果。 欲了解更多資訊,請參閱 DATEDIF 功能文章中的已知問題部分

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

注意

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

天數差異

=日期若 (D9,E9,d) ,結果為 856 在此範例中,起始日期位於 D9 格,結束日期在 E9。 公式在 F9。 "d" 會傳回兩個日期之間的完整天數。

週數差異

= (日期若 (D13、E13,d) /7) 及結果:122.29 在此範例中,起始日期位於 D13 格,結束日期在 E13。 "d" 會傳回天數。 但請注意結尾的 /7。 這會將天數除以 7,因為一週有 7 天。 請注意,此結果也需要格式化為數字。 按 CTRL+1。 然後點選 >數點:2

月份數差異

=D5,E5,m (D5,E5,m) ,結果:28 在這個例子中,起始日期位於 D5 格子,結束日期在 E5。 在公式中,"m" 會傳回兩天之間的完整月份數。

年份數差異

=DATEDIF (D2,E2,y) 且結果:2 在此範例中,起始日期位於格子 D2,結束日期則在 E2。 "y" 會傳回兩天之間的完整年數。

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

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

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

=日期若 (D17,E17,y) ,結果:2 在此範例中,起始日期位於 D17 儲存格,結束日期在 E17。 在公式中,"y" 會傳回兩天之間的完整年數。

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

=DATEDIF (D17,E17,ym) ,結果:4 在另一個儲存格中,使用帶有 「ym」 參數的 DATEDIF 公式。 "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. 選用:將三個公式合併成一個。

=日期若 (D17,E17,y) & 年,&日期IF (D17,E17,ym 約) & 個月,&日期IF (D17,E17,md) & 天,結果:2年4個月5天 你可以把三個計算都放在一個格子裡,就像這個例子一樣。 使用 &、引號和文字。 這是輸入較長的公式,但至少全都在一個公式內。 小提示: 按 ALT+ENTER 可以在公式中加入換行。 這讓我們可以更輕鬆閱讀。 此外,如果看不到整個公式,請按 CTRL+SHIFT+U。

下載我們的範例

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

下載日期計算範例

其他日期和時間計算

在今天與另一個日期之間計算

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

=日期若 (今日 () ,D28,y) ,結果:984 請注意,撰寫本文時,日期是2016年10月6日。

計算工作日,包含或不包含假日

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

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

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

D53 單元的起始日期為 2016 年 1 月 1 日,結束日期為 E53 單元的 2016 年 12 月 31 日在此範例中,開始日期位於 D53 格,結束日期在 E53 格。

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

=NETWORKDAYS。INTL (D53,E53,1) ,結果:261 輸入一個類似上述範例的公式。 公式中的 1 會將星期六和星期日建立為週末,並將其從總計排除。

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

Intellisense 清單顯示 2 - 星期日、星期一;3 - 星期一、星期二,依此類 推如果週六和週日不是你的週末日,請將 1 改成 IntelliSense 清單中的另一個數字。 例如,2 會將星期日和星期一建立為週末。

4. 輸入假日範圍名稱。

=NETWORKDAYS。INTL (D53,E53,1,MyHolidays) ,結果:252 如果你在上方「開始之前」區塊建立了節日範圍名稱,請在最後這樣輸入。 如果您沒有假日,您可以忽略逗號和 MyHolidays。

計算經過的時間

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

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

開始日期/時間為上午7:15,結束日期/時間為下午4:30 在這個例子中,開始時間位於 D80 格子,結束時間在 E80。 務必輸入小時、分鐘,以及在 AM 或 PM 前輸入一個空格

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

格式化單元對話框,自訂指令,h:mm AM/PM 類型 選擇兩個日期,然後在 Mac) 上按下 CTRL + 1 (或 MAC Command 按鈕圖示的圖片 + 1。 如果還沒設定,記得選擇自訂>h:mm AM/PM。

3. 兩個時間相減。

=E80-D80,結果:上午9:15 在另一個格子中,從結束時間格中減去起始時間格。

4. 設定 h:mm 格式。

格式化單元對話框、自訂指令、h:mm 類型 在 Mac) 按 CTRL + (1 或 MAC Command 按鈕圖示 + 1 的圖片。 選擇 自訂>h:mm ,這樣結果就會排除 AM 和 PM。

計算兩個日期和時間之間的經過時間

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

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

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

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

格式化單元對話框,日期指令,2012/3/14 下午 1:30 類型 選取兩個儲存格,然後按 CTRL + 1 (或 Mac) 上的 MAC 指令按鈕圖示圖片 + 1。 然後選擇 日期>2012/3/34 下午1:30。 這不是您將設定的日期,只是格式外觀的範例。 請注意,在 Excel 2016 之前的版本中,此格式可能有不同的範例日期,例如 3/14/01 1:30 PM。

3. 兩者相減。

=E84-D84,結果為1.041666667 在另一個格子裡,從結束日期/時間減去開始日期/時間。 結果看起來可能會像數字與小數。 您將在下一個步驟中修正。

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

格式化單元對話框,自訂指令,[h]:mm 類型 在 Mac) 按 CTRL + (1 或 MAC Command 按鈕圖示 + 1 的圖片。 選取 [自訂]。 在 類型 框中輸入 [h]:mm

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