勤怠表や会議室予約表、納品スケジュールなど、日付が並ぶ一覧表では「土日の行だけ薄い色をつけて見やすくする」という体裁がよく求められます。これを毎月・毎週手作業で塗り分けていると、日付を差し替えたときに塗り忘れる、コピペで色がずれるといったミスが起こりがちです。WEEKDAY関数を条件付き書式と組み合わせると、日付セルの中身に応じて自動的に色分けされる仕組みを1回作るだけで、以降はメンテナンス不要になります。この記事では、その組み合わせ方と、実務で特につまずきやすいポイントを解説します。
WEEKDAY関数の基本構文
WEEKDAY関数は、日付から曜日を表す数値を取り出す関数です。第2引数の「種類」によって、どの曜日を1番として数えるかが変わります。
例:2026/4/1(水曜日)の場合
=WEEKDAY(A2) または =WEEKDAY(A2,1) → 4(日曜日=1,月曜日=2…で数えるため水曜日は4)
=WEEKDAY(A2,2) → 3(月曜日=1,火曜日=2…で数えるため水曜日は3)
=WEEKDAY(A2,3) → 2(月曜日=0,火曜日=1…で数えるため水曜日は2)
条件付き書式で土日を判定する場合、種類に2を指定すると「月曜日=1〜日曜日=7」という並びになり、土日は「6以上」という単純な条件で判定できるため、実務ではもっとも扱いやすい設定です。
条件付き書式と組み合わせて土日を自動色分けする
日付が入ったA列(2行目〜)に対して、土日の行全体を色分けする手順は次のとおりです。
- 色をつけたい範囲(例:A2:D31)を選択する
- 「ホーム」タブ→「条件付き書式」→「新しいルール」→「数式を使用して、書式設定するセルを決定」を選ぶ
- 数式欄に =WEEKDAY($A2,2)>=6 と入力する
- 「書式」ボタンから塗りつぶし色を指定して「OK」
A列を月曜始まり(種類2)で数えたとき、土曜日(6)・日曜日(7)に該当する行全体が指定した色で塗りつぶされます。日付を入れ替えたり行を挿入したりしても、条件付き書式は数式で自動判定されるため、塗り直しが不要になります。
WEEKDAYとTEXT関数(曜日書式)の違い
TEXT(A2,"aaa")
- 「月」「火」のような文字列を表示するのに向く
- 結果が文字列のため、条件付き書式の不等号(>=など)での判定には使いにくい
- 人が読む曜日表示を作りたいときに使う
WEEKDAY(A2,種類)
- 1〜7の数値を返すため条件式・IF・COUNTIFSと相性が良い
- 条件付き書式・CHOOSE・SUMPRODUCTなど計算処理に向く
- そのままセルに表示しても数字にしか見えない
「表に曜日の文字を表示したい」のか「土日かどうかを条件として判定したい」のかで、使うべき関数が変わります。両方必要な場合は、表示用のセルにはTEXT関数、条件付き書式の数式にはWEEKDAY関数、というように役割を分けて使うのが確実です。
実務でのよくある使用シーン
総務担当者であれば、勤怠表や会議室予約表の日付列にWEEKDAY関数を使った条件付き書式を設定し、土日の行を薄いグレーで自動的に塗り分けることで、印刷した紙面でも一目で休日がわかるようにできます。経理担当者であれば、支払期日の一覧表で「支払期日が土日にあたる行」を赤字で目立たせ、金融機関の休業日と重なる可能性がある支払いを事前にチェックする運用に使えます。営業事務担当者であれば、納品スケジュール表の土日納品予定を色分けし、配送業者の休業日と重ならないかを確認する目的でも活用されています。
WEEKDAY関数でよくあるエラー・トラブルと対処法
条件付き書式の数式を作るとき、参照方法(相対参照・絶対参照)の指定を誤ると、選択範囲のどのセルを見ても常に同じ1つのセルだけを判定してしまい、範囲全体が色づく、または全く色がつかないという症状になります。
日付が入っている列(この例ではA列)だけを$で固定し、行番号は固定しない「$A2」という形にしてください。これにより、条件付き書式が各行のA列を正しく参照しながら判定できます。
WEEKDAY関数の種類引数を省略すると、日曜日が1、土曜日が7として計算されます。この状態で「6以上」を土日の条件にしてしまうと、実際には金曜日(6)まで色がついてしまい、意図した曜日と1日ずれた色分けになります。
土日を「6以上」というシンプルな条件で判定したい場合は、必ず種類に2を指定してください。種類を省略したままにしたい場合は、条件を「WEEKDAY($A2)=1」(日曜日)「OR(WEEKDAY($A2)=1,WEEKDAY($A2)=7)」のように書き直す必要があります。
WEEKDAY関数はあくまで曜日(月曜〜日曜)を計算するだけの関数で、その日が祝日かどうかを判断する機能は持っていません。「土日は色がつくのに祝日には色がつかない」という問い合わせは、この仕様を知らないことが原因でよく発生します。
稼働日数の計算に祝日リストを使うNETWORKDAYS関数と同様、祝日情報は関数任せにできないため、年ごとに更新できる祝日リストを用意し、そこと照合する仕組みを別途組む必要があります。
初心者がつまずきやすいポイントとコツ
- 種類引数の意味を最初に決めて統一する。「月曜=1」で統一するのか「日曜=1」で統一するのか、社内の数式で種類を揃えておくと、後から見返したときに条件の意味を勘違いしにくくなります。
- 条件付き書式の数式は選択範囲の「左上のセル」を基準に考える。選択範囲の先頭セルにその数式を入れたときにTRUEになるかどうかをまず確認してから、参照方法(相対・絶対)を調整すると失敗が減ります。
- 「曜日を表示したい」のか「曜日で判定したい」のかを分けて考える。表示にはTEXT関数、判定(条件付き書式・IF・COUNTIFS)にはWEEKDAY関数、という役割分担を意識しましょう。
- 祝日は自動で判定されないと心得る。祝日まで含めて色分けしたい場合は、祝日リストとの照合が必須であることを前提に数式を設計してください。
まとめ
WEEKDAY関数は、日付から曜日番号を数値として取り出す関数で、単体で表示するだけでなく、条件付き書式やIF、COUNTIFSなどの条件判定と組み合わせることで真価を発揮します。土日の自動色分けは、種類引数を2に統一し、条件付き書式の数式で日付列だけを絶対参照にする、という2点さえ押さえれば安定して運用できます。祝日まで含めたい場合はWEEKDAY単体では対応できないため、祝日リストとの組み合わせが必要になる点も忘れずに設計しましょう。
よくある質問
関連記事
- CHOOSE関数で番号から値を選ぶ使い方|曜日ラベル・歩合率の自動切り替え
- NETWORKDAYS関数で稼働日数(営業日数)を計算する方法|祝日リストが反映されない原因と対処法
- TEXT関数で日付・金額の表示形式を自由自在に変える方法|書式コードの意味とよくある失敗