Skip to main content

如何在 Excel 中將週數轉換為日期或反之?

Author: Xiaoyang Last Modified: 2025-08-06

在 Excel 中處理日期和週數是商業分析、專案規劃和報告中的常見需求。例如,您可能想知道某個特定日期屬於哪一週,或者確定某一年中特定週數的日期範圍。然而,Excel 並未提供直接的內建選項來將週數轉換為完整的日期範圍,或快速反向執行此過程。為了滿足這些需求,您可以根據具體要求和要處理的數據量,使用各種公式、VBA 解決方案和其他 Excel 功能。以下是幾種在 Excel 中處理此任務的實用方法。

使用公式將週數轉換為日期

使用公式將日期轉換為週數

使用 VBA 程式碼在週數和日期之間轉換


使用公式將週數轉換為日期

假設您在工作表中輸入了特定年份和週數(例如, 2015 在單元格 B115 在單元格 B2)。您可能希望計算該週的實際開始日期(星期一)和結束日期(星期日)。這在排程計劃、準備每週摘要或引用每週報告期間時特別有用。
sample data

要計算指定週數的日期範圍,可以使用以下 Excel 公式:

1. 選擇一個空白單元格以顯示開始日期(這裡選擇單元格 B5)。輸入以下公式,然後按下 Enter 鍵。該公式將返回一個代表日期的序列號。

=MAX(DATE(B1,1,1),DATE(B1,1,1)-WEEKDAY(DATE(B1,1,1),2)+(B2-1)*7+1)

2. 對於同一週的結束日期(例如,在單元格 B6 中),輸入以下公式,然後按下 Enter。該公式將返回指定週的最後一天的序列號。

=MIN(DATE(B1+1,1,0),DATE(B1,1,1)-WEEKDAY(DATE(B1,1,1),2)+B2*7)

Convert week number to date with formulas

注意:在上述公式中,B1 是包含年份(例如,2015)的單元格,而 B2 包含您要轉換的週數。根據您的實際工作表調整這些單元格引用。

3。這些公式最初返回的是數字而非格式化的日期。要顯示正確的日期格式,請選取兩個公式單元格,然後前往 Home > Number Format 下拉選單 > Short Date。這將把值轉換為可識別的日期。
format formula cells to date

提示這些公式基於 ISO 週日期系統(每週從星期一開始),這在歐洲薪資和報告標準中很常見。如果您的組織使用不同的週編號系統,結果可能會有所不同。對於年初中期開始的年份(例如,當 1 月 1 日不是星期一)或有 53 週的年份,務必仔細檢查結果。


使用公式將日期轉換為週數

相反地,您可能希望確定給定日期所屬的週數。Excel 提供了 WEEKNUM 函數來實現這一目的。這在分析工時數據、生成每週報告或按週追蹤交貨和事件時特別方便。

1. 選擇一個空白單元格作為週數的輸出。輸入以下公式(假設您的日期在 B1 中):

=WEEKNUM(B1,1)

2. 然後按下 Enter。這個公式返回的週數是以星期日作為每週的第一天。
Convert date to week number with formula

注意:

(1) 在此公式中,B1 是包含您要轉換的日期的單元格。

(2) 如果您希望從星期一開始計數週數(在 ISO 週系統中很常見),則使用此版本的公式:

=WEEKNUM(B1,2)

使用 VBA 程式碼在週數和日期之間進行轉換

在本文中,我們將探討兩個 VBA 程式:一個將週數(以及年份)轉換為其對應的日期範圍,另一個則確定任何給定日期的 ISO 週數。

將週數轉換為日期範圍:

1. 點擊「開發工具」>「Visual Basic」打開 VBA 編輯器。在彈出的窗口中,點擊「插入」>「模組」,並將以下程式碼粘貼到模組中:

Sub WeekNumberToDateRange()
    Dim YearNum As Long
    Dim WeekNum As Long
    Dim FirstDay As Date, LastDay As Date
    Dim Jan4 As Date
    YearNum = Application.InputBox("Enter the year:", "KutoolsforExcel", Year(Date), Type:=1)
    If YearNum < 1 Then Exit Sub
    WeekNum = Application.InputBox("Enter the week number:", "KutoolsforExcel", 1, Type:=1)
    If WeekNum < 1 Then Exit Sub
    Jan4 = DateSerial(YearNum, 1, 4)
    FirstDay = Jan4 - Weekday(Jan4, vbMonday) + 1
    FirstDay = FirstDay + (WeekNum - 1) * 7
    LastDay = FirstDay + 6
    MsgBox "Start date: " & Format(FirstDay, "yyyy-mm-dd") & vbCrLf & _
           "End date:   " & Format(LastDay, "yyyy-mm-dd"), _
           vbInformation, "KutoolsforExcel"
End Sub 

2。使用 Run button 按鈕運行宏。它會提示您輸入年份和週數,然後在對話框中顯示相應的日期範圍。

將日期轉換為週數:

1. 將以下 VBA 程式碼複製並粘貼到模組中:

Sub DateToWeekNumber()
 Dim InputDate As Date
 Dim WeekNum As Integer
 InputDate = Application.InputBox("Enter the date (yyyy-mm-dd):", "KutoolsforExcel", Date, Type:=2)
 WeekNum = WorksheetFunction.WeekNum(InputDate, 2)
 MsgBox "The week number is: " & WeekNum, vbInformation, "KutoolsforExcel"
End Sub  

2. 插入並運行此程式碼後,當提示時輸入目標日期,宏將顯示週數,並以星期一作為每週的開始。您可以通過更改 WeekNum 的第二個參數為 1 來修改程式碼,以使每週從星期日開始。

提示:如果您的每週系統不同,請相應調整 VBA 程式碼中的 vbMondayvbSunday

一鍵將多個非標準格式的日期轉換為正常日期

Kutools for Excel 的「日期識別」功能可以幫助您輕鬆識別和轉換非標準日期或數字(例如 yyyymmdd)或純文本為標準日期格式,只需在 Excel 中單擊一次即可提高生產力並減少手動轉換錯誤。立即獲取 30 天全功能免費試用!
ad convert to date


相關文章:

如何在 Excel 中計算兩個日期之間的特定工作日數量?

如何在 Excel 中添加/減去天數/月份/年份至日期?

最佳 Office 辦公效率工具

🤖 Kutools AI Aide:徹底革新數據分析,基於智能執行|生成程式碼|創建自訂公式|分析數據並生成圖表|調用 Kutools Functions
熱門功能查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不丟失資料 | 四捨五入...
高級 LOOKUP多條件查找|多值查找|多表查找|模糊查找...
高級下拉列表快速創建下拉列表 | 關聯下拉列表 | 多選下拉列表 ...
列管理器添加指定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 區域與列比較 ...
精選功能網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫 (自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按清單發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線 ...)...
前15 大工具集12 款文本工具添加文本刪除特定字符,...)|50+ 種圖表 類型甘特圖,...)|40+ 實用 公式基於生日計算年齡,...)|19 款插入工具插入QR码按路徑插入圖片,...)|12 款轉換工具金額轉大寫匯率轉換,...)|7 款合併和分割工具高級合併行分割儲存格,...)| ...以及更多
使用 Kutools 支援你的語言——支援英語、西班牙語、德語、法語、中文及40 多種語言!

利用 Kutools for Excel 大幅提升你的 Excel 技能,感受前所未有的高效體驗。 Kutools for Excel 提供超過300 項高級功能,助你提升效率並保存時間。 點此查看你最需要的功能...


Office Tab 為 Office 帶來標籤式介面,讓你的工作更加輕鬆

  • 啟用 Word、Excel、PowerPoint 的標籤式編輯和閱讀功能
  • 在同一個視窗的標籤中打開和創建多個文件,而不是在新窗口中分開開啟。
  • 可提升你50% 的工作效率,每天為你大量減少滑鼠點擊次數!