「日付から曜日を自動で出したい」「スケジュール表で土日だけ色を変えたい」――こんな場面、仕事でよくありますよね。
日付を見ながら手作業で「月・火・水…」と入力するのは手間ですし、ミスのもとです。ExcelのWEEKDAY関数を使えば、日付から曜日の番号を一発で取り出せます。
この記事では、WEEKDAY関数の基本の書き方から実務で使える活用パターン、よくあるエラーの対処法まで、まとめて紹介します。
この記事は次のような人におすすめ
– 日付から曜日を自動表示したい
– スケジュール表で土日を色分けしたい
– WEEKDAY関数の種類引数の違いを知りたい
ExcelのWEEKDAY関数とは?(日付から曜日番号を返す関数)
WEEKDAY関数は、指定した日付が何曜日かを整数(1〜7)で返す関数です。読み方は「ウィークデイ関数」。英語の weekday(平日・曜日)が語源です。
たとえば、2026年3月20日(金曜日)をWEEKDAY関数に渡すと 6 が返ります。これは「日曜=1」始まりの番号体系で、金曜が6番目だからです。
返ってくるのは曜日の「番号」であって、「月曜日」のような文字列ではありません。曜日名を表示したい場合は、TEXT関数やSWITCH関数と組み合わせます。
対応バージョンはExcel 2003以降すべてです。Microsoft 365でも使えますよ。
WEEKDAY関数の書き方(構文と引数)
基本構文
=WEEKDAY(シリアル値, [種類])
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| シリアル値 | 必須 | 曜日を調べたい日付。セル参照や日付文字列を指定 |
| 種類 | 省略可 | 曜日番号の割り当て方を指定する数値(省略時は1) |
シリアル値には、日付が入ったセル(A2など)を指定するのが一般的です。"2026/3/20" のように日付文字列を直接書くこともできます。DATE関数で日付を組み立てて渡すことも可能です。
種類(第2引数)の一覧表
種類引数によって「何曜日を1にするか」が変わります。実務でよく使うのは 1(日曜始まり) と 2(月曜始まり) の2つです。
| 種類 | 戻り値の範囲 | 週の始まり |
|---|---|---|
| 1(省略時) | 1(日)〜 7(土) | 日曜始まり |
| 2 | 1(月)〜 7(日) | 月曜始まり |
| 3 | 0(月)〜 6(日) | 月曜始まり(0始まり) |
| 11 | 1(月)〜 7(日) | 月曜始まり(種類2と同じ) |
| 12 | 1(火)〜 7(月) | 火曜始まり |
| 13 | 1(水)〜 7(火) | 水曜始まり |
| 14 | 1(木)〜 7(水) | 木曜始まり |
| 15 | 1(金)〜 7(木) | 金曜始まり |
| 16 | 1(土)〜 7(金) | 土曜始まり |
| 17 | 1(日)〜 7(土) | 日曜始まり(種類1と同じ) |
種類2と種類11は同じ結果
どちらも「月曜=1〜日曜=7」を返します。種類11はExcel 2010で追加された新しい書き方です。どちらを使っても問題ありません。
実務での選び方
日本のビジネスでは種類2(月曜始まり)が使いやすいです。カレンダーや勤怠表は月曜始まりが多いですよね。「土日判定」だけなら種類1(省略)でも十分です。
WEEKDAY関数の基本的な使い方
日曜始まり(種類1 / 省略時)で曜日番号を取得する
セルA2に 2026/3/20(金曜日)が入っているとします。
=WEEKDAY(A2)
結果は 6 です。日曜=1で数えると金曜は6番目になります。
月曜始まり(種類2)で曜日番号を取得する
月曜始まりにしたい場合は、第2引数に 2 を指定します。
=WEEKDAY(A2, 2)
結果は 5 です。月曜=1で数えると金曜は5番目になります。
日付文字列を直接指定する
セル参照を使わず、日付を直接書くこともできます。
=WEEKDAY("2026/3/20")
結果は 6 です。ただし実務ではセル参照のほうが使い回しがきくので、セル参照をおすすめしますよ。
WEEKDAY関数の実務活用パターン
パターン1: TEXT関数で曜日名を表示する
WEEKDAY関数は番号を返すだけなので、「月曜日」のような文字列にはなりません。曜日名を表示したいときはTEXT関数を使うのが最もシンプルです。
=TEXT(A2, "aaa")
"aaa" を指定すると「金」のように短縮表記になります。"aaaa" なら「金曜日」とフル表記です。
| 書式コード | 表示例 | 用途 |
|---|---|---|
"aaa" | 金 | 短縮表示(日本語環境向け) |
"aaaa" | 金曜日 | フル表示(日本語環境向け) |
"ddd" | Fri | 短縮表示(英語) |
"dddd" | Friday | フル表示(英語) |
aaaとdddの違い
日本語環境では
"aaa"と"ddd"はどちらも「金」を返します。ただし"aaa"は日本語専用のコードです。英語表記が必要なら"ddd"を使ってください。
パターン2: CHOOSE関数で曜日名を自由にカスタマイズする
「月」「火」ではなく「Mon」「Tue」のように表示したい場合は、CHOOSE関数が便利です。
=CHOOSE(WEEKDAY(A2), "日","月","火","水","木","金","土")
WEEKDAY関数が返す番号(1〜7)に対応する文字列をCHOOSE関数で選択します。好きな表記に変えられるのがメリットです。
パターン3: SWITCH関数で曜日名を表示する(Excel 2019以降)
SWITCH関数を使えば、値と結果のペアを並べて書けます。
=SWITCH(WEEKDAY(A2,2), 1,"月", 2,"火", 3,"水", 4,"木", 5,"金", 6,"土", 7,"日")
CHOOSE関数との違いは、番号の順番に縛られない点です。種類2(月曜始まり)の番号にも対応しやすくなります。
SWITCH関数の対応バージョン
SWITCH関数はExcel 2019以降またはMicrosoft 365で使用できます。お使いのバージョンが対応しているか、確認しておきましょう。
パターン4: 条件付き書式で土日を色分けする
スケジュール表で土日の行だけ背景色を変えたい場合は、条件付き書式とWEEKDAY関数を組み合わせます。
設定手順:
- 色を付けたいセル範囲を選択する
- 「ホーム」タブ →「条件付き書式」→「新しいルール」を選択
- 「数式を使用して、書式設定するセルを決定」を選択
- 以下の数式を入力する
土曜日を青くする数式:
=WEEKDAY($A2)=7
日曜日を赤くする数式:
=WEEKDAY($A2)=1
ポイントは列を $A で固定し、行は固定しないことです。これで各行の日付に応じて色が変わりますよ。
土日をまとめて判定するテクニック
=OR(WEEKDAY($A2)=1, WEEKDAY($A2)=7)と書けば、1つのルールで土曜と日曜の両方に同じ書式を適用できます。
パターン5: 平日だけ集計する(SUMPRODUCT連携)
売上データから平日分だけを合計したい場合は、SUMPRODUCT関数と組み合わせます。
=SUMPRODUCT((WEEKDAY(A2:A31,2)<=5)*(B2:B31))
WEEKDAY(日付, 2)<=5 で月曜〜金曜が TRUE になります。これを売上列と掛け合わせて、平日分だけ合計できます。
祝日も除外したい場合は、NETWORKDAYS関数のほうが簡単です。祝日リストを引数に渡せるので、手動で除外する手間が省けますよ。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
#VALUE! | シリアル値に日付以外の文字列を指定した | 日付が正しい形式か確認する |
#NUM! | 種類引数に無効な値(4〜10など)を指定した | 1, 2, 3, 11〜17 のいずれかを使う |
#NUM! | シリアル値が負の数 | 1900/1/1以降の日付を指定する |
| 期待と違う番号 | 種類引数の指定ミス | 上記の種類一覧表で番号体系を確認する |
文字列の日付に注意
セルに「3月20日」と入力しても、表示形式が文字列になっていると日付として認識されません。
#VALUE!エラーが出たら、セルの書式が「日付」になっているか確認してみてください。
似た関数との違い・使い分け
| 関数名 | 機能 | 使い分けのポイント |
|---|---|---|
| WEEKDAY | 日付 → 曜日番号 | 曜日の判定・条件分岐に使う |
| TEXT | 日付 → 曜日名(文字列) | 「月曜日」と直接表示したいとき |
| WORKDAY | 営業日後の日付を計算 | 納期計算・支払期日の算出に使う |
| NETWORKDAYS | 2つの日付間の営業日数 | 稼働日数のカウントに使う |
| YEAR / MONTH / DAY | 日付 → 年/月/日 | 日付の各パーツを取り出すとき |
WEEKDAY関数とWORKDAY関数の混同に注意してください。名前が似ていますが機能はまったく別です。WEEKDAYは「曜日の番号を返す」関数、WORKDAYは「営業日後の日付を返す」関数です。
まとめ
ExcelのWEEKDAY関数は日付から曜日番号を取り出す関数です。この記事で紹介したポイントをおさらいしましょう。
- 基本構文:
=WEEKDAY(シリアル値, [種類]) - 種類引数: 1(日曜始まり)と2(月曜始まり)をまず覚えればOK
- 曜日名の表示: TEXT関数
=TEXT(A2,"aaa")が最もシンプル - 自由な表記: CHOOSE関数やSWITCH関数で好きな文字列に変換
- 土日の色分け: 条件付き書式で
=WEEKDAY($A2)=1のように設定
「番号を返すだけ」のシンプルな関数ですが、他の関数や条件付き書式と組み合わせると活用の幅が大きく広がります。ぜひ日常の業務で試してみてください。
