如何在 Excel 中將週數轉換為日期或反之?
在 Excel 中處理日期和週數是商業分析、專案規劃和報告中的常見需求。例如,您可能想知道某個特定日期屬於哪一週,或者確定某一年中特定週數的日期範圍。然而,Excel 並未提供直接的內建選項來將週數轉換為完整的日期範圍,或快速反向執行此過程。為了滿足這些需求,您可以根據具體要求和要處理的數據量,使用各種公式、VBA 解決方案和其他 Excel 功能。以下是幾種在 Excel 中處理此任務的實用方法。
使用公式將週數轉換為日期
假設您在工作表中輸入了特定年份和週數(例如, 2015 在單元格 B1 和 15 在單元格 B2)。您可能希望計算該週的實際開始日期(星期一)和結束日期(星期日)。這在排程計劃、準備每週摘要或引用每週報告期間時特別有用。
要計算指定週數的日期範圍,可以使用以下 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)

注意:在上述公式中,B1 是包含年份(例如,2015)的單元格,而 B2 包含您要轉換的週數。根據您的實際工作表調整這些單元格引用。
3。這些公式最初返回的是數字而非格式化的日期。要顯示正確的日期格式,請選取兩個公式單元格,然後前往 Home > Number Format 下拉選單 > Short Date。這將把值轉換為可識別的日期。
提示:這些公式基於 ISO 週日期系統(每週從星期一開始),這在歐洲薪資和報告標準中很常見。如果您的組織使用不同的週編號系統,結果可能會有所不同。對於年初中期開始的年份(例如,當 1 月 1 日不是星期一)或有 53 週的年份,務必仔細檢查結果。
使用公式將日期轉換為週數
相反地,您可能希望確定給定日期所屬的週數。Excel 提供了 WEEKNUM 函數來實現這一目的。這在分析工時數據、生成每週報告或按週追蹤交貨和事件時特別方便。
1. 選擇一個空白單元格作為週數的輸出。輸入以下公式(假設您的日期在 B1 中):
=WEEKNUM(B1,1)
2. 然後按下 Enter。這個公式返回的週數是以星期日作為每週的第一天。
注意:
(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。使用 按鈕運行宏。它會提示您輸入年份和週數,然後在對話框中顯示相應的日期範圍。
將日期轉換為週數:
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
來修改程式碼,以使每週從星期日開始。
vbMonday
或 vbSunday
。一鍵將多個非標準格式的日期轉換為正常日期
Kutools for Excel 的「日期識別」功能可以幫助您輕鬆識別和轉換非標準日期或數字(例如 yyyymmdd)或純文本為標準日期格式,只需在 Excel 中單擊一次即可提高生產力並減少手動轉換錯誤。立即獲取 30 天全功能免費試用!
相關文章:
最佳 Office 生產力工具
🤖 | Kutools AI 助手:以智能執行為基礎,革新數據分析 |生成程式碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 增強函數… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不遺失數據 | 四捨五入(免公式)... | |
高級 LOOKUP:多條件 VLookup|多值 VLookup|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 |依賴型下拉列表 | 多選下拉列表... | |
列管理器:添加指定數量的列 | 移動列 | 切換隱藏列的顯示狀態 | 比較區域及列... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫(快捷文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線...)... | |
15 大工具集:12 項文本工具(添加文本、刪除特定字符…)|50+ 儀表 類型(甘特圖等)|40+ 實用 公式(基於生日計算年齡等)|19 項插入工具(插入QR码、根據路徑插入圖片等)|12 項轉換工具(金額轉大寫、匯率轉換等)|7 項合併與分割工具(高級合併行、分割儲存格等)|...及更多 |
運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...
Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單
- 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀。
- 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
- 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!
所有 Kutools 外掛,一次安裝
Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。





- 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
- 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
- 協同運作更順暢 — Office 應用間無縫提升生產力
- 30 天全功能試用 — 無需註冊、無需信用卡
- 最超值 — 一次購買,節省單獨外掛費用