在 Excel 中,你可以使用 WEEKNUM 函數搭配美式編號系統,或使用 ISOWEEKNUM 函數搭配 ISO 8601 國際標準,來計算某日期的週次;公式 =WEEKNUM(A1,21) 會傳回與 =ISOWEEKNUM(A1) 相同的 ISO 週。這兩個函數都只需要一個參數 —— 包含日期的儲存格 —— 而 WEEKNUM 還需要第二個參數來指定每週從哪一天開始。
一旦了解報表需要的是哪一種編號慣例,選擇正確的函數就很簡單了。國際標準 ISO 8601 將星期一視為週一 1、星期日視為週日 7,並將包含 1 月 4 日的那一週定義為第 1 週。內嵌在舊版 Excel 範本中的美式慣例,則將星期日視為一週的第一天,並將包含 1 月 1 日的那一週視為第 1 週,這代表同一個日期,根據你選擇的公式不同,可能會被標示為兩個不同的週。Excel 不會自動警告你正在使用的是哪一種慣例 —— 它只會回傳一個數字 —— 所以一開始就選對函數,可以為週報、衝刺規劃和庫存追蹤省下許多混淆。

Excel 中的「週次」實際代表什麼
「週次」只是一個整數,用來告訴你某個日期屬於一年中的第幾週,但把日期轉換成這個整數的規則並非全球統一。常見的系統有四種:ISO 8601(國際標準,週一為一週的第一天,第 1 週包含第一個星期四)、美式慣例(週日為一週的第一天,第 1 週包含 1 月 1 日)、中東變體(週六為一週的第一天,第 1 週包含 1 月 1 日),以及中式變體(週一為一週的第一天,第 1 週包含 1 月 1 日)。Excel 內建了其中兩種於其公式庫中,並提供一種方式讓你視需要呼叫其他規則。
當你的檔案中含有真正的 Excel 日期 —— 也就是像 45292 這樣代表 2024-01-01 的序列值 —— WEEKNUM 和 ISOWEEKNUM 都能將它作為第一個參數接受。如果你的日期欄位存放的是文字字串,兩個函數都會回傳 #VALUE! 錯誤,你必須先用 DATEVALUE 轉換該欄位,或將儲存格重新格式化為日期類型。在 Excel 中選錯系統並不會觸發錯誤;它只是會根據不同的規則回傳一個數字,這就是為什麼同一個 1 月 1 日在某份報表中顯示為第 1 週,在另一份報表中卻顯示為第 53 週。
Excel 的兩個內建週函數:WEEKNUM 與 ISOWEEKNUM
ISOWEEKNUM 是兩者中較簡單的:它只接受一個參數(日期),然後回傳 ISO 8601 的週次。WEEKNUM 則接受一個日期,再加上一個稱為 return_type 的第二參數,用來指定一週從哪一天開始,以及套用哪一種編號規則。Excel 內建的數值如下表所示,這是 Microsoft 官方文件記載的 return_type 數值列表。
| WEEKNUM return_type | 每週從此日開始 | 第 1 週錨點 |
|---|---|---|
| 1(或省略) | 星期日 | 包含 1 月 1 日的那一週 |
| 2 | 星期一 | 包含 1 月 1 日的那一週 |
| 11 | 星期一 | 包含 1 月 1 日的那一週 |
| 12 | 星期二 | 包含 1 月 1 日的那一週 |
| 13 | 星期三 | 包含 1 月 1 日的那一週 |
| 14 | 星期四 | 包含 1 月 1 日的那一週 |
| 15 | 星期五 | 包含 1 月 1 日的那一週 |
| 16 | 星期六 | 包含 1 月 1 日的那一週 |
| 17 | 星期日 | 包含 1 月 1 日的那一週 |
| 21 | 星期一 | 包含第一個星期四的那一週(ISO 8601) |
在 ISO 8601 的應用中,ISOWEEKNUM(A1) 和 WEEKNUM(A1,21) 會回傳相同的結果,所以使用哪一個公式都可以。雙參數的形式之所以存在,是為了讓你在同一份混合不同慣例的工作表中仍可繼續使用 WEEKNUM,或是當你的團隊已統一採用 return_type 11,而你又想在不重寫活頁簿中每個公式的情況下遷移到 ISO 8601。
在 Excel 中根據日期計算週次
- 在 A1 儲存格中輸入你的日期(例如 2024-12-30)並按 Enter,或匯入一個每一格都是真正的 Excel 日期(而非文字字串)的欄位。
- 點選 B1 儲存格,如果你需要的是 ISO 8601 週次,請輸入 =ISOWEEKNUM(A1);若想透過舊版函數取得相同結果,則輸入 =WEEKNUM(A1,21)。
- 若想改為取得美式週次,請在 B1 輸入 =WEEKNUM(A1,1);若你的團隊採用較新的美式別名,則輸入 =WEEKNUM(A1,17)。
- 按下 Enter。Excel 會回傳一個介於 1 到 53 之間的整數 —— 對於 2024-12-30,ISOWEEKNUM 會回傳 1,因為該星期一屬於 2025 年的 ISO 第 1 週。
- 選取 B1,將滑鼠游標移至右下角的小綠色方塊上,然後向下拖曳,即可將公式套用至整個日期欄位。
- 如果 B1 顯示的是序列值或日期格式,請在儲存格上按右鍵,選擇「儲存格格式」,然後選取「數值」並將小數位數設為 0,讓它顯示為乾淨的週整數。
如果你的日期欄位中存放的是文字而非真正的 Excel 日期,請先用 DATEVALUE 包住儲存格參照:=ISOWEEKNUM(DATEVALUE(A1))。這個小改動能把像 "2024-12-30" 這樣的字串轉換成週函數所預期的序列值,並且你可以像較簡單的版本一樣,將它貼到整個欄位。WEEKNUM 和 ISOWEEKNUM 也都接受 TODAY()、NOW() 或任何會回傳日期的函數結果來代替 A1,這是在儀表板上顯示「現在是第幾週」標籤的標準做法。
為什麼某些日期會落在不同的 ISO 年
ISO 8601 是將「週年」與該週的星期四綁在一起,而非與 1 月 1 日綁在一起,因此接近曆年邊界的日期,雖然明顯落在某個日曆年內,仍可能屬於前一個或下一個 ISO 年。這正是「為什麼我的報表會顯示兩個不同的年份」這種混淆最常見的來源,因此在你信任每週的總和之前,值得先了解以下三種模式。
第一,1 月 1 日可能屬於前一個 ISO 年:2016-01-01(星期五)是 2015-W53,因為 2015 年的第 53 週在 2016 年 1 月 3 日星期日結束。第二,12 月下旬可能屬於下一個 ISO 年:2024-12-30(星期一)是 2025-W01,因為包含該日期的「週一至週日」那一週,也同時包含 2025 年 1 月 2 日星期四。第三,有些 ISO 年包含 53 週而非 52 週:2015、2020 和 2026 是近年來擁有 53 個星期一及 W53 的 ISO 週年範例。Excel 的 ISOWEEKNUM 能正確處理以上三種情況,因為該函數遵循星期四規則,但它回傳的整數只告訴你「週」,而不會告訴你「週年」。如果你的檔案名稱或報表代碼需要完整的 YYYY-Www 標籤,你就必須自己補上年份。
使用週次計算機驗證你的 Excel 結果
如果你想要對接近新年邊界的日期取得第二方意見,或是你需要完整的 YYYY-Www 標籤而不只是一個整數,週次計算機會代你套用 ISO 8601 規則。一切都在本地以 UTC 曆法運算,因此瀏覽器的時區與日光節約時間的變更不會影響所選的日期,而回傳的標籤會採用嚴格的 YYYY-Www 格式,可直接用於檔案名稱、規劃文件或稽核報表。
若要使用計算機驗證 Excel 儲存格:
- 輸入你在 Excel 中輸入的同一個陽曆日期,採用解析器接受的嚴格 YYYY-MM-DD 格式。
- 選擇「計算 ISO 週」。
- 將回傳的 YYYY-Www 標籤與你的 Excel 公式進行比對。對於 ISOWEEKNUM 或 WEEKNUM(A1,21) 能正確處理的任何日期,兩者應該一致。
如果這兩個數字不一致,幾乎一定是因為你的 Excel 日期其實是文字字串、你的 WEEKNUM return_type 不是 21 或 11,或是你正在檢查的是會計年度內的日期,而非 ISO 8601 曆法。這個工具只會回傳 ISO 標籤,因此無法檢查會計週或零售 4-4-5 曆法 —— 那些系統使用不同的規則,會產生不同的週次。
當 Excel 的答案與你的日曆不一致時
有些看似週次的系統,其實根本不是 ISO 8601。零售 4-4-5 曆法將每一季拆成兩個 4 週月與一個 5 週月,使每一季的長度相同,這產生了不同的第 1 週和不同的第 53 週,與 ISO 不同。許多薪資和稅務系統使用會計週,其一週從星期日開始,但第 1 週是由該公司的會計日曆定義,而非 1 月 1 日。部分國家的政府統計機構會以「週日為一週首日、以 1 月 1 日為錨點」的編號方式發布每週數據,這與 WEEKNUM(A1,1) 一致,但與 ISOWEEKNUM(A1) 不一致。對於上述任何一種情況,ISO 8601 —— 以及 Excel 中 ISO 的結果 —— 都會與官方數字不同,你應該在對帳報表之前,先向資料來源負責人確認所使用的是哪一種慣例。
若要對「星期幾」進行快速交叉驗證,如何快速找出任意日期對應星期幾指南中介紹了與計算機中星期幾編號相同的 ISO 週一至週日規則。如果你還需要在執行 ISOWEEKNUM 之前把文字日期轉換成真正的 Excel 日期,在 Excel 和線上即時轉換日期格式指南更詳細地說明了 DATEVALUE 的解法,並介紹了幾種儲存格格式化的方法。