WEEKDAY 函數用來取得特定日期是星期幾,並以 1 到 7 的數字呈現。適合用於出勤表判斷週末、排班表計算,或搭配其他函數進行日期條件的篩選。
Excel WEEKDAY 函數語法
=WEEKDAY(序號, [傳回類型])| 參數 | 必填 | 說明 |
|---|---|---|
| 序號 | 是 | 要找出星期幾的目標日期,必須是 Excel 認可的日期格式。 |
| 傳回類型 | 選填 | 決定星期幾對應的數字。預設值為 1(星期日為 1、星期六為 7)。輸入 2 則代表星期一為 1、星期日為 7。 |
回傳:1 到 7 之間的整數,代表該日期是星期幾。
適用版本:Excel 2007 以上版本
WEEKDAY 函數範例
範例 1:基本用法:取得日期的星期數值
出勤紀錄表中,需要確認打卡日期是星期幾。
| 日期 | 員工 | 打卡時間 |
|---|---|---|
| 2026/10/23 | 陳怡君 | 08:55 |
在 D2 輸入公式:
=WEEKDAY(A2)結果:6。取得 A2 日期的星期數值。省略傳回類型時,系統預設星期日為 1,因此 2026/10/23(星期五)會計算出 6。
範例 2:進階判斷:檢查是否為週末
計算加班費時,自動判斷加班日期是平日還是週末。
| 加班日期 | 時數 |
|---|---|
| 2026/10/24 | 4 |
| 2026/10/26 | 2 |
在 C2 輸入公式:
=IF(WEEKDAY(A2, 2)>5, "週末", "平日")結果:週末。傳回類型設為 2 時,星期一為 1、星期六為 6。搭配 IF 函數判斷,只要數值大於 5 即代表該日期為週末。
範例 3:文字轉換:顯示中文星期名稱
將排班表上的日期,自動轉換為中文的星期幾。
| 排班日期 | 姓名 |
|---|---|
| 2026/10/25 | 林家豪 |
在 C2 輸入公式:
=CHOOSE(WEEKDAY(A2, 2), "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日")結果:星期日。先以 WEEKDAY 取得 1 到 7 的數值,再利用 CHOOSE 函數將數字依序對應並轉換為中文的星期名稱。
使用 WEEKDAY 的技巧與注意事項
- 若只是想在畫面上顯示中文的「星期一」,不需要使用 WEEKDAY 函數,直接將儲存格格式自訂為 aaaa 即可。
- 判斷是否為週末時,將傳回類型設為 2(星期一為 1),再判斷結果是否大於 5,是實務上最直覺的寫法。
WEEKDAY 常見錯誤與解決方法
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| #VALUE! | 序號參數輸入了無法被辨識為日期的文字(例如 2026.10.23)。 | 確保儲存格內容為標準的日期格式,或使用 DATE 函數來建立日期。 |
| #NUM! | 傳回類型參數輸入了不支援的數字(例如 0 或 100)。 | 確認傳回類型設定為 1、2、3 或 11 到 17 之間的有效數值,一般建議使用 2。 |
Google 試算表可以用 WEEKDAY 嗎?
Google 試算表完全支援 WEEKDAY 函數,參數與用法與 Excel 相同。
下載 WEEKDAY 範例檔
上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:WEEKDAY 範例.xlsx(範例公式都在試算表軟體實際計算過)。
常見問題
如何讓 WEEKDAY 顯示中文的「星期一」?
WEEKDAY 函數只能回傳數字。若要顯示中文,可以使用 =CHOOSE(WEEKDAY(A1,2), "一", "二", "三", "四", "五", "六", "日") 將數字對應轉換,或直接改用 =TEXT(A1, "aaaa")。
傳回類型 1 和 2 有什麼差別?
傳回類型 1(或省略)會將星期日當作 1、星期六當作 7。傳回類型 2 則是將星期一當作 1、星期日當作 7,這較符合一般上班族將週一視為一週開始的習慣。
為什麼算出來的數字和實際星期幾對不上?
通常是因為忽略了傳回類型的預設值。如果不特別指定,Excel 預設星期日為 1。建議在公式中明確加入傳回類型參數(例如輸入 2),以避免判斷混淆。
相關函數
這篇收錄在「Excel 函數字典」。




