KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何計算兩個日期之間相隔的天數、週數、月數或年數?

作者Xiaoyang修改日期

當您在 Excel 中處理日期資料時,經常需要計算兩個日期之間確切的天數、週數、月數或年數。這類計算廣泛應用於專案排程、員工年資分析與財務預測等情境。Excel 提供多種直覺易用的方法來計算這些差異,包括直接輸入公式、使用內建功能,以及透過擴充工具簡化或自動化整個流程。本教學將逐步說明多種精準計算日期差異的方式,協助您選出最符合自身需求的解決方案。


使用公式計算兩個日期之間的天數

計算兩個日期之間的天數,是 Excel 中最常見的日期相關任務之一。無論是追蹤截止期限、計算期間長度,還是監控累計週期,Excel 公式都能精準協助您完成這些計算。

1. 在您希望顯示結果的空白儲存格中,輸入下列任一公式:

=DATEDIF(A2,B2,"D")
=B 2-A2

注意A2 應填入開始日期,B2 則應填入結束日期。

2. 視需要向下拖曳填滿控點,即可將公式套用至其他列,儲存格將自動顯示對應起始日與結束日期之間的天數。

輸入公式以計算兩個指定日期之間的天數

提示與注意事項:

  • 如果結束日期早於開始日期:
    • 公式 =B2 —— A2 會傳回負數。
    • 公式 =DATEDIF(A2, B2, "D“) 將傳回 #NUM! 錯誤。
      因此,請務必確認您輸入的日期是否正確。
  • DATEDIF 函數會忽略時間部分,僅計算完整的天數。
  • 若需計算包含起始日與結束日的總天數(含首尾兩日),請在公式末尾加上 +1:
    例如,=DATEDIF(A2, B2, "D") + 1 或 =B2 - A2 + 1.

使用公式計算兩個日期之間的週數

計算兩個日期之間的週數,對於薪資週期、定期活動或學術行事曆至關重要。Excel 可透過以下公式輕鬆完成這項計算。此方法適用於基本週數計算;若需依據行事曆週數進行運算,則可能需要額外調整。

1. 在空白儲存格中輸入下列任一公式:

=(DATEDIF(A2,B2,"D")/7)
=(B 2-A2)/7

注意:在這些公式中,A2 為起始日期,B2 為結束日期。

2. 透過拖曳填滿控點將公式延伸至所需列數,結果會以小數形式顯示週數。此方法特別適合用於取得精確的週數;但若您只需要完整週數(整數),請參閱下方提示。

輸入公式以計算兩個日期之間的週數

  • 提示若只要計算兩個日期之間完整週數,請使用:
  • =ROUNDDOWN((DATEDIF(A2, B2, "d") /7),0)
    =INT((B 2-A2)/7)

輸入公式以取得兩個日期之間完整的週數

補充說明:若需將週數對齊至特定星期幾(例如一律從週一開始),可搭配輔助欄位,或運用 WEEKNUM 函數進行客製化計算!


計算兩個日期之間以天、週、月、年等為單位的各種差異

如果您總是難以記住不同情境該用哪個公式,Kutools for Excel日期時間助手功能,能讓您立即計算出以天、週、月、年,甚至「日+星期」或「月+星期」等組合形式呈現的日期差異,完全無需記憶或手動調整公式!此功能特別適合經常處理大量日期資料的使用者,大幅提升效率,輕鬆掌握精準結果。

Kutools for Excel 的日期與時間小幫手介面

Kutools for Excel-透過超過 300 項必備工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理與高效生產力!立即取得


使用公式計算兩個日期之間的月數

計算兩個日期之間的月數,有助於精準掌握貸款期限、到期時間或專案階段等關鍵期間。DATEDIF 函數正是為此類區間式日期計算量身打造。

1. 在您希望顯示結果的儲存格中輸入此公式:

=DATEDIF(A2,B2,"m")

注意:請以 A2 作為起始日期,並以 B2 作為結束日期。

2. 視需要向下拖曳填滿控點,此公式僅傳回指定區間內完整的月數。

輸入公式以取得兩個日期之間的月數

  • 提示若要取得月份與天數的組合結果,請使用此公式:
  • =DATEDIF(A2,B2,“m“)&“ 個月 “&DATEDIF(A2,B2,“md“)&“ 天“

輸入公式以取得兩個日期之間的月數與天數

注意事項:DATEDIF 函數將月份視為完整單位,因此除非使用上述組合公式明確要求,否則不會計入未滿整月的天數。請調整輸入格式,確保日期欄位被 Excel 正確識別為有效日期,以免產生錯誤。


使用公式計算兩個日期之間的年數

針對年度報告、員工週年慶等需要精準計算完整經過年數的場合,Excel 可透過 DATEDIF 函數輕鬆高效地完成計算。

1. 在空白儲存格中輸入下列公式:

=DATEDIF(A2,B2,"y")

注意:以 A2 作為起始日期,並以 B2 作為結束日期。

2. 使用填滿控點將公式套用至所有必要儲存格,即可快速計算兩個日期之間的完整年數!此功能非常適合用於判定服務年資,或評估是否符合特定福利的資格門檻,效率提升不容錯過!

輸入公式以計算兩個日期之間的年數

疑難排解:若日期格式為文字而非真正的 Excel 日期,公式可能會傳回錯誤。如有需要,請使用 DATEVALUE 函數進行轉換。


使用公式計算兩個日期之間的年、月、日數

當您需要更詳細的細項(例如用於年齡計算或詳盡的年資報表)時,可搭配使用 DATEDIF 函數,精確呈現兩個日期之間的年、月與日數。

1. 請在儲存格中插入或貼上下列公式:

=DATEDIF(A2, B2, "y") &" years "&DATEDIF(A2, B2, "ym") &" months " &DATEDIF(A2, B2, "md") &" days"

注意:請以 A2 作為起始日期,並以 B2 作為結束日期。

2. 視需要拖曳公式,即可透過組合式文字格式計算並顯示差異(例如「2 年 3 個月 7 天」)!

輸入公式以取得兩個日期之間的年數、月數與天數

提示:此結果特別適用於需完整呈現細項的場合,例如記錄員工年齡、合約期間或客戶關係等。若您希望將結果分別顯示於不同儲存格,可拆分公式或使用輔助欄位。


透過強大功能計算兩個日期之間以天、週、月、年為單位的各種差異

如果您不熟悉公式操作,或希望靈活快速切換不同單位(天、週、月、年或其組合),Kutools for Excel日期時間助手能輕鬆簡化此流程!

注意:若要使用日期時間助手,請先下載 Kutools for Excel。安裝完成後,即可立即從功能區快速存取此實用功能!

安裝完畢 Kutools for Excel 後,請依照下列步驟操作:

1. 點選用於顯示結果的儲存格,然後前往 Kutools> 公式助手> 日期時間助手,如下圖所示:

功能區上 Kutools 索引標籤中的日期與時間小幫手選項

2. 在日期時間助手對話方塊中:

  • 選擇差異選項(位於)類型下);
  • 參數輸入方塊中選擇開始日期與結束日期;
  • 依需求設定結果類型(例如年+月+日+星期等),即可取得專屬的細項分析。

日期與時間小幫手對話方塊

3. 按一下確定進行計算。若需涵蓋更多資料列,請拖曳填滿控點以延伸結果。

傳回的結果

立即點擊下載 Kutools for Excel,免費試用!

若您經常需要進行混合或特殊日期計算,或希望採用無需公式、兼具彈性與效率的解決方案,此方法尤其值得推薦。


VBA 巨集:自動計算兩個日期之間的天數、週數、月數或年數

對於需要處理大規模資料,或跨多列自動執行重複計算的使用者來說,運用 VBA 巨集能顯著提升效率。當您必須一次處理大量日期配對,或複製公式已不切實際時,此方法尤其適用。透過 VBA,您可在指定範圍內輕鬆計算天數、週數、月數或年數的差異,甚至能依需求自訂輸出格式,非常適合用於定期報表或批次處理作業。

1. 開啟 VBA 編輯器:前往開發人員 > Visual Basic。在 Microsoft Visual Basic for Applications 視窗中,點選插入 > 模組,並將下列程式碼複製貼上至模組中:

Sub CalculateDateDifferences()
    Dim WorkRng As Range
    Dim RowRng As Range
    Dim StartCol As Integer
    Dim EndCol As Integer
    Dim OutputCol As Integer
    Dim DiffType As String
    Dim xTitleId As String
    
    xTitleId = "KutoolsforExcel"
    On Error Resume Next
    
    Set WorkRng = Application.InputBox("Select the range of date pairs (two columns: Start and End Date)", xTitleId, Selection.Address, Type:=8)
    
    If WorkRng Is Nothing Then Exit Sub
    
    StartCol = WorkRng.Columns(1).Column
    EndCol = WorkRng.Columns(2).Column
    OutputCol = EndCol + 1
    
    DiffType = Application.InputBox("Enter difference type: D=Days, W=Weeks, M=Months, Y=Years", xTitleId, "D", Type:=2)
    
    For Each RowRng In WorkRng.Rows
        If IsDate(RowRng.Cells(1, 1)) And IsDate(RowRng.Cells(1, 2)) Then
            Select Case UCase(DiffType)
                Case "D"
                    RowRng.Cells(1, 3).Value = RowRng.Cells(1, 2).Value - RowRng.Cells(1, 1).Value
                Case "W"
                    RowRng.Cells(1, 3).Value = (RowRng.Cells(1, 2).Value - RowRng.Cells(1, 1).Value) / 7
                Case "M"
                    RowRng.Cells(1, 3).Value = DateDiff("m", RowRng.Cells(1, 1).Value, RowRng.Cells(1, 2).Value)
                Case "Y"
                    RowRng.Cells(1, 3).Value = DateDiff("yyyy", RowRng.Cells(1, 1).Value, RowRng.Cells(1, 2).Value)
                Case Else
                    RowRng.Cells(1, 3).Value = "Invalid Type"
            End Select
        Else
            RowRng.Cells(1, 3).Value = "Invalid date(s)"
        End If
    Next
    
    Application.DisplayAlerts = True
    MsgBox "Date differences calculated in the third column of your selected range.", vbInformation, xTitleId
End Sub

2. 按一下執行按鈕按鈕以執行巨集。系統將提示您選取包含起始日期與結束日期(兩個相鄰欄位)的範圍,接著輸入差異類型:D 表示天數、W 表示週數、M 表示月數、Y 表示年數。結果會立即顯示於所選區域右側緊鄰的欄位中。

使用提示:此巨集非常適合快速且一致地進行批次處理。請務必確認您的日期欄位已正確設定為日期格式,以免發生錯誤。若結果欄位顯示「無效日期」,請檢查所選範圍是否包含非日期值或空白儲存格。本方法特別適用於進階使用者,或需定期處理大量報表的場景,助您提升效率、輕鬆掌握資料整理!


更多與日期和時間相關的文章:

  • 在 Excel 中計算跨午夜時段的時間差(小時數)
  • 假設您有一張記錄工作時間的表格,其中 A 欄為當天的開始時間,B 欄則為隔日的結束時間。一般情況下,若直接以「=B 2-A2」計算兩者時間差,將無法如左側截圖所示得出正確結果。該如何在 Excel 中準確計算跨越午夜的兩個時間點之間的小時數?

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用