【Excel】エクセルで曜日を自動判定して土日祝日に色を付ける方法
エクセルの予定表や勤務表では、土曜日・日曜日・祝日を色分けすると、日付の見やすさが大きく変わります。
曜日を手入力して色を付ける方法では、月が変わるたびに修正が必要になり、日付の入力ミスにも気付きにくくなります。
そこで便利なのが、日付から曜日を自動判定する数式と、条件付き書式を組み合わせる方法です。
この記事では、土日を自動着色する基本設定から、祝日一覧を使って祝日も判定する応用設定までを詳しく解説します。
土日はWEEKDAY関数、祝日はCOUNTIF関数を条件付き書式に使うことで、日付を変更しても色分けを自動更新できます。
サンプルデータは、1行目に見出しがある表を前提として説明します。
エクセルで土日を自動着色する条件付き書式
| A列 | B列 | C列 |
|---|---|---|
| 日付 | 曜日 | 予定 |
| 2026/10/10 | 土 | 会議 |
| 2026/10/11 | 日 | 休業日 |
それではまず、日付が入力された行に対して土曜日と日曜日の色を自動で変える設定について解説していきます。
曜日そのものを入力しなくても、日付のシリアル値から土日を判定できる点が、この方法の大きな利点です。
日付範囲の選択
最初に、色を付けたい範囲を選択します。
たとえばA列に日付、B列に曜日、C列に予定がある場合は、A2からC32までをドラッグして選択しましょう。
行全体を色付けしたい場合は、日付セルだけではなく、予定を入力する列まで含めて選択することが重要です。
選択範囲の左上がA2であることを意識すると、後から数式を作成しやすくなります。

日付が空欄の行まで含めても問題ありませんが、表の外側まで広く指定しすぎると、入力予定のないセルにも色が付くことがあります。
月間予定表なら、その月に利用する行数に合わせて範囲を決めると管理しやすいでしょう。
【操作のポイント】条件付き書式は、最初に選択した範囲へまとめて適用されます。
土曜日を判定する数式
範囲を選択した状態で、ホームタブから条件付き書式、新しいルールの順にクリックします。
ルールの種類では、数式を使用して、書式設定するセルを決定を選びます。
土曜日を判定する数式には、次の式を入力します。
=WEEKDAY($A2,2)=6
WEEKDAY関数の2番目の引数に2を指定すると、月曜日が1、火曜日が2となり、土曜日が6、日曜日が7になります。
$A2の列だけを固定する混合参照にしておくことで、B列やC列にも同じ条件を正しく適用できます。

続いて書式ボタンをクリックし、塗りつぶしから薄い青色を選択します。
土曜日を青系にする配色は、一般的なカレンダーや勤務表でも判別しやすく、平日との差を自然に示せます。
【操作のポイント】WEEKDAY関数の種類を2にすると、土曜日と日曜日の番号を覚えやすくなります。
日曜日を判定する数式
日曜日も同じ手順で新しい条件付き書式ルールを作成します。
入力する数式は、土曜日の式にある最後の数字だけを変更した次の内容です。
=WEEKDAY($A2,2)=7
書式では、日曜日と分かりやすい赤色または淡い赤色を指定しましょう。
土曜日と日曜日を別ルールに分けると、青と赤で曜日の違いを明確にできます。
設定後にA2の日付を平日、土曜日、日曜日へ変更してみると、該当する行の色が即座に切り替わります。
日付をコピーして翌月分の表を作成する場合でも、条件付き書式が設定されたセルをコピーすれば、ルールも引き継がれます。
【操作のポイント】日曜日用の数式は、WEEKDAY関数の判定値を7に変更するだけです。
曜日表示を自動化するTEXT関数
| A列 | B列 | C列 |
|---|---|---|
| 日付 | 曜日 | 予定 |
| 2026/10/12 | 月 | 資料作成 |
続いては、日付に連動して曜日の文字を自動表示するTEXT関数を確認していきます。
曜日列を用意すると、表を見る人が日付だけでは判断しにくい曜日をすぐ確認できます。
TEXT関数による曜日の表示

B2セルに曜日を表示する場合は、次の数式を入力します。
=TEXT(A2,”aaa”)
この数式では、A2の日付をもとに月、火、水のような1文字の曜日を表示できます。
月曜日のように曜日を省略せず表示したいときは、表示形式をaaaaに変更します。
TEXT関数の結果は文字列なので、曜日を見せるための列として使うのに向いています。
数式をB2に入力した後、セル右下のフィルハンドルを下方向へドラッグすると、B3以降にも数式をコピーできます。
【操作のポイント】aaaは短い曜日名、aaaaは完全な曜日名を表示する書式です。
表示形式だけで曜日を見せる方法
曜日列を増やしたくない場合は、日付セルの表示形式を変更する方法もあります。
A2からA32を選び、セルの書式設定を開いて、表示形式のユーザー定義に進みます。
種類の欄へyyyy/m/d(aaa)と入力すると、2026/10/12(月)のように日付と曜日を1つのセルに表示できます。

この方法は見た目を整えたい予定表に便利ですが、曜日だけを別列で使って集計したい場合にはTEXT関数のほうが扱いやすいでしょう。
表示形式を変更しても、セル内部では日付データのまま保持されるため、日付計算や並べ替えにも利用できます。
【操作のポイント】日付と曜日を同一セルに表示しても、日付の計算機能は失われません。
曜日列と条件付き書式の使い分け
曜日列を作成した場合でも、土日判定には曜日文字ではなく日付セルを参照する方法がおすすめです。
たとえばTEXT関数で作成したB列を条件にすると、曜日の表記を変更した際に条件式も修正する必要があります。
一方で、WEEKDAY関数なら、曜日表示が月曜日でも月でも英語でも、日付が正しく入力されていれば判定できます。
予定表を他の人へ配布する場合には、A列に日付、B列に曜日、C列以降に予定という構成にすると、編集する人にも分かりやすい設計になります。
日付が文字列として入力されていると数式が正常に判定できないため、セルを右寄せにするなど、日付として認識されているかを確認しましょう。
【操作のポイント】判定は日付列、見やすさは曜日列という役割分担にすると安定します。
祝日一覧を参照する自動判定
| A列 | F列 | G列 |
|---|---|---|
| 日付 | 祝日の日付 | 祝日名 |
| 2026/10/12 | 2026/10/12 | スポーツの日 |
続いては、別途作成した祝日一覧と照合して、祝日を自動で着色する設定を確認していきます。
祝日は毎年日付が変わるものがあるため、一覧表を参照する方式が管理しやすいでしょう。
祝日リストの作成
まず、同じシートのF列など、予定表と重ならない場所に祝日一覧を作成します。
F1には祝日の日付、G1には祝日名と入力し、F2以降へ対象年の祝日を日付形式で入力します。
日付は2026/1/1のように入力し、文字列ではなくエクセルが日付として認識する形式にする必要があります。
祝日リストを別シートに作る場合は、シート名を祝日一覧など分かりやすい名称にしておくと、数式の参照先を確認しやすくなります。
翌年も使う予定表では、年ごとに祝日の日付を更新する運用を決めておくと安心です。
祝日名は着色の判定には必須ではありませんが、予定表に祝日名を表示したい場合や、一覧を確認する場合に役立ちます。
【操作のポイント】祝日リストの日付は、予定表の日付と同じ日付形式で入力します。
COUNTIF関数を使う条件式
祝日の行を赤くしたい場合は、予定表の範囲を選択してから、条件付き書式の新しいルールを作成します。
数式を使用して書式設定するセルを決定を選び、次の数式を入力します。
=COUNTIF($F$2:$F$30,$A2)>0
| A | B | C | F | |
|---|---|---|---|---|
| 1 | 日付 | 曜日 | 予定 | 祝日の日付 |
| 2 | 2026/10/12 | 月 | 休業日 | 2026/10/12 |
COUNTIF関数は、F2からF30の範囲内にA2と同じ日付が何件あるかを数える関数です。
一致する日付が1件以上なら結果が1以上となるため、>0という条件で祝日を判定できます。
祝日リストの範囲は絶対参照、予定表の日付行は相対参照にすることが、数式を複数行へ適用する重要なポイントです。
【操作のポイント】COUNTIFの検索範囲はF2からF30のようにドル記号で固定します。
祝日を最優先で表示するルール順序
祝日が日曜日と重なる場合には、土日用と祝日用の複数の条件付き書式が同じセルに適用されます。
このとき、条件付き書式のルールの管理を開き、祝日ルールを土日ルールより上に移動すると、祝日用の書式を優先できます。
祝日ルールには淡い赤色や濃い赤字を設定し、土曜日には青色、日曜日には別の赤色を設定するなど、用途に応じて配色を決めましょう。
休日をすべて同じ色にしたい場合は、土曜日、日曜日、祝日の書式を統一しても構いません。
ただし、休業日と通常の日曜日を区別したい職場では、祝日名の表示も併用すると情報量が増します。
条件付き書式のルールの管理では、適用先の範囲、数式、書式、優先順位をまとめて確認できます。
【操作のポイント】祝日と日曜日が重なる表では、ルールの管理で表示の優先順位を確認します。
予定表全体へ色を付ける参照設定
| A列 | B列 | C列 | D列 |
|---|---|---|---|
| 日付 | 曜日 | 担当者 | 予定 |
| 2026/10/17 | 土 | 田中 | 当番 |
続いては、日付列を基準に予定表の横長の行全体へ色を付ける参照設定について確認していきます。
担当者、内容、備考など複数列がある表では、曜日列だけを着色するより行全体を薄く色付けしたほうが視認性を高められます。
列固定と行可変の混合参照
A列の日付を見てA列からD列までの行を着色する場合、土曜日用の数式は=WEEKDAY($A2,2)=6です。
ドル記号がAの前だけに付いているため、数式がB列やC列へ適用されても、判定対象は常にA列の日付になります。
一方で2の前にはドル記号がないため、3行目ではA3、4行目ではA4というように、判定する日付が行ごとに変化します。
行全体を色付けする条件付き書式では、列固定と行可変の混合参照が基本です。
$A$2のように行まで固定すると、すべての行がA2だけを判定するため、予定表の自動着色としては正しく動作しません。
【操作のポイント】$A2は、日付の列を固定しながら、各行の日付を判定するための指定です。
月間カレンダーでの土日判定
月間カレンダーのように、日付が横方向へ並ぶレイアウトでもWEEKDAY関数を利用できます。
たとえばB2からH2に日付が並んでいる場合、選択範囲の左上がB2なら、数式は=WEEKDAY(B$2,2)=6のように作成します。
この場合は行番号を固定し、列番号を動かすためにB$2という混合参照を使います。
下方向へ予定を書き込むカレンダーでは、土曜日の列全体が青色になり、日曜日の列全体が赤色になります。
縦型の一覧表と横型のカレンダーでは、固定すべき参照先が異なる点に注意しましょう。
縦方向に日付が増える一覧表では$A2、横方向に日付が増えるカレンダーではB$2を基準に考えます。
【操作のポイント】数式をコピーしたとき、どの方向に日付セルが移動するかを先に確認します。
空白セルを着色しないための条件
予定表の下部に空白行がある場合、空白セルが日曜日などとして誤判定されるケースがあります。
空白行には色を付けたくない場合、AND関数を追加して、日付セルが空白ではない条件を設定します。
=AND($A2<>””,WEEKDAY($A2,2)=6)
日曜日用では、最後の6を7へ変更します。
祝日用の式でも、=AND($A2<>””,COUNTIF($F$2:$F$30,$A2)>0)とすれば、未入力行の不要な着色を防げます。
空白チェックを追加すると、月末以降の余白をきれいに保てるでしょう。
【操作のポイント】空白行が多いテンプレートでは、AND関数による空白除外を追加します。
条件付き書式が反映されない場合の確認
| A列 | 確認内容 |
|---|---|
| 日付 | セルが日付として認識されているか |
| 2026/10/18 | 日曜日なら着色されるか |
続いては、曜日や祝日の色分けがうまく反映されない場合に確認したい項目を解説していきます。
多くの場合、数式自体ではなく、日付の入力形式や条件付き書式の適用先に原因があります。
日付が文字列になっているケース
見た目は2026/10/18でも、セルが文字列として保存されていると、WEEKDAY関数は正しく処理できません。
セルを選択して数式バーを確認し、先頭にアポストロフィが付いている場合や、セルが左寄せになっている場合は文字列の可能性があります。
データタブの区切り位置を使って変換する方法や、VALUE関数で数値化する方法があります。
簡単な方法としては、対象セルを選択して警告マークから数値に変換を実行する方法もあります。
日付は表示の形ではなく、エクセル内部で日付データとして扱われているかが重要です。
【操作のポイント】日付データは通常右寄せで表示され、文字列は左寄せで表示されます。
適用先の範囲がずれているケース
条件付き書式のルールの管理を開き、適用先の欄を確認します。
たとえば=$A$2:$C$32に設定したつもりでも、実際には=$A$3:$C$32となっていると、2行目だけ書式が反映されません。
数式の基準セルと適用先の左上セルは、必ず対応させる必要があります。
適用先が複数に分かれている場合には、不要な範囲を削除し、予定表全体の範囲を再指定すると整理できます。
コピーした表では以前の条件付き書式が残っていることもあるため、古いルールが重複していないかも確認しましょう。
ルールの管理画面では、表示対象を現在の選択範囲からこのワークシートへ切り替えると、隠れたルールも確認できます。
【操作のポイント】数式のA2と、適用先の開始行が一致しているかを確認します。
書式の優先順位が競合するケース
セルに複数の条件付き書式が設定されていると、期待した色が表示されない場合があります。
特に祝日用、土曜日用、日曜日用、期限切れ用などを同じ表へ追加すると、ルールの並び順が結果に影響します。
ルールの管理で、優先したい書式を上へ移動してください。
必要に応じて、条件を満たす場合は停止する設定を利用すると、下位のルールを適用しないようにできます。
色が変わらないときは、数式だけでなくルールの優先順位を確認することが解決につながります。
【操作のポイント】祝日を最優先に見せたい場合は、祝日のルールを一覧の上位に配置します。
まとめ エクセルで土日祝日に色を付ける自動判定方法
エクセルで曜日を自動判定して土日祝日に色を付けるには、条件付き書式とWEEKDAY関数を組み合わせる方法が基本です。
土曜日は=WEEKDAY($A2,2)=6、日曜日は=WEEKDAY($A2,2)=7という数式で判定できます。
祝日も反映したい場合は、祝日一覧を作成し、COUNTIF関数で日付が一致するかを判定しましょう。
日付列を基準に混合参照を使うと、予定表の行全体を自動で色分けできます。
曜日表示にはTEXT関数やユーザー定義の表示形式を使うと、日付だけの表より見やすくなります。
色が反映されない場合には、日付が文字列になっていないか、適用先の範囲がずれていないか、ルールの優先順位が正しいかを確認してください。
一度テンプレートとして設定しておけば、日付を更新するだけで土日祝日の色が切り替わる、使いやすいスケジュール表になります。