如何在 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 Aide:徹底革新數據分析,基於智能執行|生成程式碼|創建自訂公式|分析數據並生成圖表|調用 Kutools Functions… |
| 熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不丟失資料 | 四捨五入... | |
| 高級 LOOKUP:多條件查找|多值查找|多表查找|模糊查找... | |
| 高級下拉列表:快速創建下拉列表 | 關聯下拉列表 | 多選下拉列表 ... | |
| 列管理器: 添加指定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 區域與列比較 ... | |
| 精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫 (自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按清單發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線 ...)... | |
| 前15 大工具集:12 款文本工具(添加文本,刪除特定字符,...)|50+ 種圖表 類型(甘特圖,...)|40+ 實用 公式(基於生日計算年齡,...)|19 款插入工具(插入QR码,按路徑插入圖片,...)|12 款轉換工具(金額轉大寫,匯率轉換,...)|7 款合併和分割工具(高級合併行,分割儲存格,...)| ...以及更多 |
利用 Kutools for Excel 大幅提升你的 Excel 技能,感受前所未有的高效體驗。 Kutools for Excel 提供超過300 項高級功能,助你提升效率並保存時間。 點此查看你最需要的功能...
Office Tab 為 Office 帶來標籤式介面,讓你的工作更加輕鬆
- 啟用 Word、Excel、PowerPoint 的標籤式編輯和閱讀功能
- 在同一個視窗的標籤中打開和創建多個文件,而不是在新窗口中分開開啟。
- 可提升你50% 的工作效率,每天為你大量減少滑鼠點擊次數!