【Excel】WEEKDAY関数を利用した曜日判定と条件分岐の活用法

この記事は約5分で読めます。

今回は、ExcelのWEEKDAY関数を使用して、日付から曜日を判定し、条件に応じた処理を行う方法について紹介します。

WEEKDAY関数とは何か

Excelでスケジュール表や勤務シフト表を作成する際、入力された日付が「何曜日か」を自動的に判別して、土日だけ色を変えたり、特定の曜日にだけ特定の計算を行わせたりしたい場面がよくあります。
セルの表示形式を変更して「月」や「火」と見かけ上は曜日を表示させることは簡単ですが、Excel内部ではあくまで「シリアル値(日付を表す数値)」として認識されているため、「もし土曜日なら〜」といった条件分岐(IF関数など)の判定材料として使うことができません。
このようなときに活躍するのが、WEEKDAY関数です。
WEEKDAY関数は、指定した日付が「1週間のうちの何番目の日か」を、1から7までの数値(シリアル値とは異なる独自の曜日番号)に変換して返してくれる関数です。
この曜日番号を使うことで、Excelが「この日は日曜日だ」と明確に認識できるようになり、条件付き書式やIF関数と組み合わせた高度な自動化が可能になります。

関数の構文と引数の指定方法

WEEKDAY関数は、以下のように2つの引数を指定して構成されます。
=WEEKDAY(シリアル値, [種類])

  • シリアル値: 曜日を判定したい日付が入力されているセルを指定します。
  • 種類(省略可能):
    どの曜日を「1」としてカウントし始めるか(週の始まりを何曜日にするか)を数値で指定します。この引数は省略可能で、省略した場合は「1(日曜日を1とし、土曜日を7とする)」が適用されます。

種類(戻り値の種類)の選び方と違い

WEEKDAY関数の第二引数である「種類」は、目的に合わせて適切なものを選択することが重要です。
よく使われる代表的な3つの種類とその特徴を解説します。

種類「1」または省略(日曜日スタート)

最も標準的な設定であり、種類を省略した場合はこれが適用されます。
日曜日を「1」とし、月曜が「2」、火曜が「3」…と続き、土曜日が「7」となります。
カレンダーが日曜日始まりになっている場合や、単純に曜日を判定したいだけの場面で広く使われます。

種類「2」(月曜日スタート)

ビジネスシーンで最も使い勝手が良いのが、この種類「2」です。
月曜日を「1」とし、火曜が「2」…と続き、土曜日が「6」、日曜日が「7」となります。
「平日(1〜5)」と「週末(6と7)」というように、数値の大小で平日と休日を明確に区別できるため、IF関数などで「6以上なら休日」といった条件式を非常にシンプルに組み立てることができます。

種類「3」(月曜日スタートの0起算)

種類「2」と似ていますが、月曜日を「0」として起算する点が異なります。
月曜日が「0」、火曜が「1」…と続き、土曜日が「5」、日曜日が「6」となります。
特定の計算式に組み込む際など、ゼロベースでの数値が必要な特殊なケースで使用されますが、一般的な用途では種類「2」を使う方が直感的でわかりやすいです。

WEEKDAY関数を活用する具体的な場面

日付から曜日番号を取得できるという特性は、他の機能と組み合わせることで大きな力を発揮します。

条件付き書式で土日に色をつける

シフト表やカレンダーを作成する際、土曜日は青色、日曜日は赤色にセルの背景色を自動的に変更する仕組みは、WEEKDAY関数と条件付き書式を組み合わせることで実現できます。
日付が入力されている範囲を選択し、「条件付き書式」から「新しいルール」を作成します。
「数式を使用して、書式設定するセルを決定」を選び、数式欄に「=WEEKDAY(A2)=1」(A2が日付セルで、日曜日の場合)と入力し、書式から赤色を設定します。
同様に「=WEEKDAY(A2)=7」(土曜日の場合)というルールを追加して青色を設定します。
これにより、年や月を変更して日付が変わっても、常に正しい曜日に色が自動で塗られるようになります。

IF関数と組み合わせて平日と休日で処理を分ける

アルバイトの時給計算などで、「平日は時給1,000円、土日は時給1,200円」というように曜日によって単価を変えたい場合にも、WEEKDAY関数が役立ちます。
ここで、種類「2(月曜=1、土日=6,7)」を指定したWEEKDAY関数とIF関数を組み合わせます。
「=IF(WEEKDAY(日付セル, 2)>=6, 1200,
1000)」という数式を組み立てることで、「曜日番号が6以上(土日のどちらか)であれば1,200、そうでなければ(平日であれば)1,000」という判定を自動で行わせることができます。
手作業で休日を探して単価を入力し直す手間がなくなり、計算ミスも防げます。

WEEKDAY関数を使用する際の注意点

曜日を自動判定する便利な関数ですが、いくつか注意すべきポイントがあります。

表示形式ではなく「値」そのものを取得している

よくある誤解として、セルの表示形式を「aaaa」にして「月」と表示させているセルに対して、IF関数で「=IF(A2=”月”,
…)」と判定しようとするケースがあります。
しかし、これは前述の通り見た目が変わっているだけで、セルの実際の値はシリアル値のままであるため、この条件式は正しく機能しません。
「値そのものを曜日情報として取得する」ためには、必ずWEEKDAY関数を介在させる必要があります。

祝日の判定はできない

WEEKDAY関数が判定できるのは、あくまでカレンダー上の「曜日(月〜日)」のみです。
日本の祝日や、会社独自の休業日(創立記念日など)を判定することはできません。
もし「土日祝日」をまとめて休日として判定したい場合は、WEEKDAY関数単体では対応できないため、COUNTIF関数を使って別途作成した「祝日リスト」と照合したり、営業日を計算するWORKDAY関数などを併用したりする工夫が必要になります。

まとめ

ExcelのWEEKDAY関数を使用して、日付から曜日番号を取得し、条件に応じた処理を自動化する方法について解説しました。
「=WEEKDAY(日付, 種類)」という数式で、日付を1から7までの数値に変換することで、Excelに曜日を認識させることができます。
特に、第二引数の「種類」に「2」を指定して月曜日を「1」、土日を「6と7」とする設定は、平日と週末の判定をシンプルに行えるため、ビジネス実務において非常に強力です。
条件付き書式と組み合わせて土日のセルに自動で色をつけたり、IF関数と組み合わせて曜日ごとに異なる時給や計算単価を適用したりと、スケジュール管理や給与計算の効率化に直結します。
表示形式の変更だけではできない「曜日を基準とした条件分岐」を実現するために、WEEKDAY関数の仕組みをマスターしてみてはいかがでしょうか。