エクセルでスケジュール表や勤務表を作るとき、土日や祝日だけ目立つように自動で色付けできると、とても便利です。
しかし、条件付き書式の設定や関数の使い方が分からず、手作業で色を塗っている方も多いのではないでしょうか。
本記事では、初心者の方でも迷わず設定できるよう、土日祝日の自動色付けの手順とポイントを、実務レベルの具体例とともに丁寧に解説します。
週末だけでなく、国民の祝日をまとめて判別する方法、年間カレンダーへの応用、エラーになったときの確認ポイントまで一通り網羅していますので、ぜひブックマークしてお役立てください。
目次
エクセル 土日祝日 色付け 自動で行う基本の考え方
エクセルで土日祝日を自動で色付けするには、条件付き書式と関数を組み合わせて使うことが基本です。
セルに入力されている日付を判定し、「土曜日か日曜日か」「祝日一覧に含まれるか」をロジックとして定義し、その条件を満たしたセルにだけ背景色を設定します。
一度ルールを作成してしまえば、日付を変更したり行を追加しても自動で色が反映されるため、手作業の塗り忘れやミスを大幅に減らすことができます。
特に、年間カレンダーや勤務シフト表のように日付を大量に扱うシートでは、手動で色付けを行うと膨大な時間がかかります。
条件付き書式なら、ルールをコピーするだけで他のシートやファイルにも再利用できるため、運用面でも非常に効率的です。
ここでは、まず全体像としてどのような関数を使い、どこに祝日一覧を置き、どの範囲に条件付き書式を設定するのかといった構造を理解しておきましょう。
土日と祝日を自動色付けする仕組みの全体像
土日祝日を自動で色付けする仕組みは、次の3ステップに分解できます。
まず、セルに日付データが正しく入力されていることが前提です。文字列ではなく、エクセルが「シリアル値」として認識している日付である必要があります。
次に、土日かどうかの判定には WEEKDAY 関数を使います。曜日を数値で取得し、その結果が土曜または日曜のときに色を変えるという条件を書きます。
祝日については、別の列やシートに祝日一覧を作成し、その一覧の中に対象の日付が含まれているかどうかを COUNTIF や MATCH でチェックします。
最後に、これらの判定ロジックを条件付き書式の「数式を使用して、書式設定するセルを決定」に設定することで、日付を入力するだけで自動的に色付けされる仕組みになります。
この考え方さえ押さえておけば、色や条件を変えたバリエーションも自由に作成できます。
日付データと文字列の違いを理解する
自動色付けがうまく機能しない原因の多くは、セルに入力された日付が、実は日付ではなく「文字列」として扱われていることです。
一見すると同じように見えても、エクセル内部では「2025/1/1」という文字列と、シリアル値 45292 の日付データは別物です。
WEEKDAY 関数や条件付き書式の数式は、日付データを前提に動作するため、文字列が混ざっていると正しく判定できません。
セルが日付かどうかを確認する簡単な方法は、セルの表示形式を一度「標準」に変更してみることです。
標準に変更したときに数値に変われば日付データ、見た目がそのままなら文字列の可能性があります。
また、左寄せで表示されていたり、セルの左上に警告マークが出ている場合も、文字列日付であるケースが多いです。
こうした点を事前に確認しておくことで、条件付き書式のトラブルを未然に防ぐことができます。
条件付き書式と関数を組み合わせるメリット
条件付き書式に関数を使う最大のメリットは、データの変更に強いことです。
日付を追加したり、行や列を挿入しても、条件付き書式の範囲内であれば自動的にルールが適用されます。
また、書式の設定は見た目にのみ影響し、セルの値自体は変更されないため、集計や関数計算への影響もありません。
さらに、条件付き書式は複数のルールを組み合わせることができるため、土日は薄い青、祝日は赤、今日の日付は太枠、といったように細かくルールを分けたデザインも簡単です。
VBA マクロを使わずに実現できるため、社内の他のパソコンでもセキュリティ設定を気にせず共有できます。
運用コストと汎用性のバランスが良い方法と言えるでしょう。
土日を自動で色付けする具体的な手順

まずは、比較的シンプルな「土日だけ自動で色付けする」設定から確認していきます。
ここでは、日付が縦一列に並んでいるケースと、カレンダー形式で行列に配置されているケースの両方に対応できるよう、数式の書き方と範囲指定のコツを説明します。
基本となる WEEKDAY 関数の挙動を理解すれば、曜日別色分けにも応用できます。
対象となる範囲を選択したうえで条件付き書式を設定し、「数式を使用して、書式設定するセルを決定」を選ぶのがポイントです。
セルごとに違う日付が入っていても、数式は範囲の左上のセルを基準として相対参照で評価されるため、列全体や行全体に一括でルールを適用できます。
ここでは、代表的な設定例と入力ミスを防ぐためのチェックポイントを紹介します。
WEEKDAY関数で土日を判定する方法
WEEKDAY 関数は、指定した日付の曜日を数値で返す関数です。
基本形は「=WEEKDAY(シリアル値, 種類)」で、種類の指定によって返される数値の対応が変わります。
一般的によく使われるのは種類 2 で、この場合は月曜=1、火曜=2、…、日曜=7 となります。
土日は 6 または 7 なので、「=WEEKDAY(A1,2)>=6」で土日を判定することができます。
種類を 1 にした場合は、日曜=1、月曜=2、…、土曜=7 となるため、「=OR(WEEKDAY(A1,1)=1,WEEKDAY(A1,1)=7)」のような式になります。
どちらの方法でも結果は同じですが、種類 2 の方が「5日目以降が週末」といったロジックを書きやすく、実務では分かりやすいケースが多いです。
自分やチームで統一しやすいルールを決めておくと、後からシートをメンテナンスしやすくなります。
条件付き書式で土日を色付けする手順
実際の操作手順は次の通りです。
- 1. 日付が入力されている範囲を選択する
- 2. ホームタブ → 条件付き書式 → 新しいルール をクリック
- 3. 「数式を使用して、書式設定するセルを決定」を選択
- 4. 数式欄に「=WEEKDAY(A2,2)>=6」などを入力
- 5. 書式ボタンから背景色を指定して OK
このとき、A2 などのセル参照は、選択範囲の左上のセルを指定します。
列全体に適用したい場合は、行番号は相対参照のまま、列だけ固定するなどの工夫も有効です。
例えば「=$A2」で列 A を固定すれば、横に広いカレンダー形式でも、参照列をずらさずに同じルールをコピーできます。
設定後に、平日と土日の色が正しく切り替わるか、別の日付を入力して確認すると安心です。
土曜日だけ、日曜日だけ別の色にしたい場合は、条件を分けて2つのルールを作成します。
縦型・横型カレンダーでの範囲指定のコツ
月間カレンダーのように、日付が行列に散らばっている場合、どのセルを基準に数式を書くかで結果が変わります。
例えば、B3 から H8 までが1か月分のカレンダー範囲で、B3 に 1 日の日付が入っているとします。
この場合、B3 を基準に「=WEEKDAY(B3,2)>=6」という式を設定し、範囲全体に適用すれば、各セルごとの日付に応じて土日が色付けされます。
一方、行ごとに同じ日付が並んでいる勤務表のような形式では、参照する列を固定する必要があります。
例えば、A 列に日付、B 列以降に名前が並ぶ表なら、「=$A2」を使って、行だけ相対、列は絶対参照にします。
これにより、B2 から右方向のセルも、同じ行の A 列の日付を見て土日判定が行われるため、行単位で背景色を変えることができます。
相対・絶対参照の使い分けは、条件付き書式を扱ううえでの重要なポイントです。
祝日を自動で色付けするための設定と祝日リストの作り方

土日の色付けに慣れたら、次は祝日も自動で判定できるように設定していきます。
祝日は年や法改正によって変わる場合があるため、シート内に祝日一覧を作り、その一覧を参照して判定する仕組みを取るのが実務的です。
エクセルには標準で日本の祝日を自動判定する機能はないため、この祝日リストが非常に重要になります。
祝日リストは、同じブック内の別シートに作成するのが管理しやすくおすすめです。
日付だけの一覧にしてもよいですし、メモとして祝日名を隣の列に入れても構いません。
判定には COUNTIF 関数や MATCH 関数を使い、「指定した日付が祝日リストに含まれているかどうか」で条件を作ります。
次の項目で、実際の作成手順と数式例を詳しく解説します。
祝日リストを作成する手順と管理のポイント
祝日リストは、例えば「祝日」シートを新規作成し、A 列に祝日の日付を一覧で入力します。
日付は必ず日付形式で入力し、後から表示形式を変更しても内部的に日付データとして扱われるようにしておきます。
隣の B 列に祝日名を入れておくと、人が見たときに分かりやすくなりますが、条件付き書式の判定には必須ではありません。
管理しやすくするためには、年ごとに範囲を分けるのではなく、複数年分を同じリストで管理する方法が便利です。
例えば、2024年から2026年までの祝日をすべて同じ列に並べておけば、COUNTIF の範囲を広く取るだけで複数年のカレンダーに対応できます。
祝日が追加・変更された場合は、このリストに追記・修正するだけで、関連するすべてのシートに自動で反映されるのも大きな利点です。
COUNTIF関数で祝日リストと照合する方法
祝日判定で最もよく使われるのは COUNTIF 関数です。
COUNTIF は「範囲の中で条件に一致するセルの数」を数える関数で、基本形は「=COUNTIF(範囲, 検索条件)」です。
ここで、検索条件に判定対象の日付セルを指定し、範囲に祝日リストを指定すると、その日付が祝日リストに含まれていれば 1 以上、含まれていなければ 0 が返ります。
条件付き書式では、「=COUNTIF(祝日!$A:$A,$A2)>0」のような式を使うのが一般的です。
祝日シートの A 列全体を範囲とし、現在の行の A 列の日付がその中にあるかをチェックします。
この結果が 0 より大きい、すなわち 1 以上なら祝日と判定して色を付ける、というロジックです。
複数年分の祝日をまとめて管理する場合も、範囲を列全体にしておけば追加のたびに条件式を変更する必要がなくなります。
MATCH関数やXLOOKUPを使う応用的な方法
COUNTIF 以外にも、MATCH 関数や XLOOKUP 関数を使って祝日判定を行う方法があります。
MATCH は、「=MATCH(検索値, 検索範囲, 0)」のように使い、検索値が範囲内に見つかれば位置を表す数値、見つからなければエラーを返します。
この性質を利用して、「=ISNUMBER(MATCH($A2,祝日!$A:$A,0))」のような式を書き、その結果が TRUE のときに色付けすることができます。
また、XLOOKUP が利用可能な環境であれば、「=ISNUMBER(XLOOKUP($A2,祝日!$A:$A,祝日!$A:$A,,0))」といった書き方も可能です。
XLOOKUP は柔軟性が高く、将来的な拡張性もありますが、バージョンによっては使えない場合もあるため、互換性を重視する場合は COUNTIF ベースで構成するのが無難です。
いずれにせよ、「祝日リストに含まれているかどうかを真偽値で判定する」という基本発想は共通です。
土日と祝日を同時に自動色付けする条件付き書式ルール設計
土日と祝日を同時に扱う場合、「土日または祝日のセルに色を付ける」という単一ルールにするのか、「土日」と「祝日」で別々のルールと色を設定するのかで設計が変わります。
例えば、日曜日と祝日は赤、土曜日は青、平日は白、といった区別をしたい場合は、複数の条件付き書式ルールを優先順位付きで設定する必要があります。
ここでは、実務でよく使われるルール構成の例を整理します。
また、条件付き書式には評価順序があり、上にあるルールから順に判定されます。
「後から設定したルールが思うように効かない」という場合、ルールの順番や「優先される場合は停止」オプションの設定を確認することが重要です。
これらのポイントを押さえておくことで、見た目が分かりやすく、かつメンテナンスしやすいカレンダーを構築できます。
土日と祝日を同じ色で塗るシンプルな設定
最もシンプルなパターンは、「土日または祝日なら同じ色を付ける」というものです。
この場合、条件式は「=OR(WEEKDAY($A2,2)>=6,COUNTIF(祝日!$A:$A,$A2)>0)」のように、OR 関数で土日条件と祝日条件をまとめてしまう方法が分かりやすいです。
この1つのルールだけで、週末と祝日がすべて同じ背景色で表示されます。
シンプルな条件は誤作動も少なく、社内で配布するテンプレートとしても扱いやすい構成です。
特に、小規模なチームや個人利用であれば、まずはこのパターンから始めるのがよいでしょう。
後から色分けを細かくしたくなった場合にも、OR 条件を複数のルールに分解するだけで対応できますので、拡張もしやすい設計です。
祝日を優先して別の色にする複数ルールの作り方
日曜日と祝日を赤、土曜日を青といったように、祝日をより目立たせたい場合は、条件付き書式のルールを複数作成し、祝日ルールを上に配置します。
具体的には、まず「祝日のみ」を判定するルールを作り、赤色の背景を設定します。
次に、その下に「土日判定」のルールを作り、青や薄い色を設定します。
このとき、祝日ルールに対して「このルールが真の場合は他のルールの停止」に相当する設定を有効にすると、祝日が土曜日や日曜日と重なる場合でも、祝日色が優先されて表示されます。
こうすることで、「土曜かつ祝日」や「日曜かつ祝日」のセルが重複して別の色になってしまうことを防げます。
ルールの順番は、条件付き書式の管理画面からドラッグやボタンで並び替えることができます。
条件付き書式の優先順位と重なりの注意点
条件付き書式は、同じセルに複数のルールが適用されるとき、どのルールが最終的な見た目を決めるかが重要です。
基本的には、上から順に評価され、後から適用されるルールが前のルールの書式を上書きすることがあります。
ただし、「条件を満たしたら後続のルールを停止」というオプションが有効になっている場合は、その時点で評価が打ち切られます。
土日と祝日、さらには「今日の日付」などを組み合わせると、条件が重なるケースが増えるため、どの条件を優先するのかを明確に決め、それに合わせてルール順序を調整する必要があります。
思った色にならない場合は、ルールの順番、条件の範囲、参照セルの絶対・相対指定を順に見直すと原因を特定しやすくなります。
テスト用に簡単な日付表を用意し、条件ごとに色がどう変わるかを確認しながら調整すると、トラブルを避けやすくなります。
年間カレンダーや勤務表に応用する実践テクニック

ここまでの仕組みを使えば、月単位だけでなく、年間カレンダーや勤務表、シフト表など、さまざまな実務シートへ応用できます。
大きな表ほど、最初の設計をしっかり行っておくことが後々のメンテナンス性を左右します。
日付の自動入力、ルールのコピー方法、形式の違いごとの使い分けを押さえておくと便利です。
ここでは、代表的な3種類の表について、実務でよく用いられる構成例と、その際の条件付き書式の設定ポイントを紹介します。
また、表の見やすさや入力ミス防止の観点から、色の選び方や補助列の使い方についても解説します。
用途に応じて最適なパターンを選ぶことで、使いやすく、かつミスの少ないシートを作成できます。
月間・年間カレンダーでの自動色付け例
月間カレンダーは、1行が1週間、1列が曜日という形で構成するのが一般的です。
この場合、カレンダー範囲をすべて選択し、条件付き書式を設定します。
参照セルは、カレンダー範囲の左上に位置する日付セルを指定し、「=OR(WEEKDAY(B3,2)>=6,COUNTIF(祝日!$A:$A,B3)>0)」のような式を設定します。
年間カレンダーでは、各月ごとに同じルールをコピーするか、全体を一つの大きな範囲としてルールを適用するかを選べます。
年間カレンダーの場合、1月から12月まで一度に見渡せるのが利点ですが、条件付き書式の範囲も広くなるため、参照範囲と相対参照の設定を慎重に行う必要があります。
祝日リストの範囲は列全体指定にしておくと、年間をまたいでもそのまま使えるため便利です。
カレンダー上で祝日名も表示したい場合は、コメントや別列のメモを活用する方法もあります。
勤務表・シフト表で行全体を色分けする方法
勤務表やシフト表では、行見出しに日付、列見出しに担当者名が入り、その交差セルにシフト情報が入ることが多いです。
この形式では、行全体を一括して土日祝日の色にしたいというニーズがよくあります。
その場合、B 列以降の範囲を選択し、「=OR(WEEKDAY($A2,2)>=6,COUNTIF(祝日!$A:$A,$A2)>0)」のように、行の左端にある日付を参照する式を設定します。
ここでのポイントは、列を絶対参照「$A2」、行は相対参照にすることです。
これにより、右方向にどれだけ列が増えても、常にその行の A 列の日付をもとに判定が行われます。
色分けによって週末や祝日のシフトが一目で分かるようになり、勤務の偏りチェックや休暇計画がしやすくなります。
加えて、今日の行だけを別色で強調するルールを追加すると、日々の運用でさらに見やすくなります。
見やすさを高めるための色とフォントの設定
条件付き書式では、背景色だけでなく、文字色やフォントスタイル、罫線も設定できます。
しかし、色を多用しすぎると逆に見づらくなるため、用途ごとにルールを整理することが大切です。
例えば、次のような構成がバランスの取れた例です。
- 平日:白背景、黒文字
- 土曜:薄い水色背景
- 日曜・祝日:薄いピンク背景、太字
- 今日:黄色の薄い枠線
背景色は濃くしすぎると印刷時にインクを多く消費し、文字の視認性も落ちるため、薄いパステル調の色を選ぶと実務に適しています。
また、色覚特性に配慮する場合は、赤と緑だけに頼らず、パターンや枠線、フォントスタイルを併用して区別すると、より多くの人にとって読みやすい表になります。
シート全体で統一したカラーパレットを使うと、プロフェッショナルな印象に仕上がります。
バージョン別の注意点とトラブルシューティング
エクセルのバージョンや環境によって、利用できる関数や画面の表示がやや異なることがあります。
また、他人が作成したファイルを自分の環境で開いたときに、条件付き書式が期待通りに動かないケースもあります。
こうしたトラブルを避けるには、バージョン差異や設定項目の意味を理解しておくことが役立ちます。
ここでは、よくあるエラーや「色が付かない」「一部だけおかしい」といった症状の原因と、確認すべきチェックポイントを整理します。
加えて、互換性の高い関数選びや、ファイル共有時の注意点についても触れます。
問題が起きたときに闇雲にやり直すのではなく、原因を切り分けながら対処できるようになることを目指します。
Excelのバージョンによる機能差の確認ポイント
最新のエクセルでは XLOOKUP やダイナミック配列などの新機能が利用できますが、古いバージョンではこれらが存在しません。
そのため、社内に複数のバージョンが混在している場合や、取引先とファイルをやり取りする場合は、互換性の高い関数のみを使用するのが安全です。
土日祝日の色付けに関しては、WEEKDAY、COUNTIF、MATCH などの古くからある関数だけで十分実現可能です。
また、条件付き書式の管理画面の見た目もバージョンによって多少異なりますが、基本的な項目名や動作は共通しています。
特に、ルールの並び順や停止オプションの位置が違って見える場合でも、一つ一つの設定内容は同じです。
迷ったときは、条件付き書式ルールの一覧を開き、対象範囲、条件式、書式設定がそれぞれどうなっているか順番に確認する習慣をつけると良いでしょう。
色が付かない・誤判定になるときのチェックリスト
土日祝日の自動色付けがうまくいかない場合、次のような原因がよく見られます。
| 原因 | 確認ポイント |
| 日付が文字列になっている | 標準形式に変更して数値になるか確認 |
| 条件式のセル参照がずれている | 左上セル基準か、絶対参照・相対参照の設定を確認 |
| 祝日リストの範囲が狭い | 列全体や十分な範囲を指定しているか確認 |
| ルールの順番による上書き | 条件付き書式のルール順序と停止設定を確認 |
特に、日付の入力方法は重要で、「2025/1/1」とキーボードから入力したつもりでも、前後にスペースが入っていたり、コピー元の形式が文字列だったりすると、うまく認識されません。
また、シートをコピーした際に条件付き書式の対象範囲が意図せず変わることもあるため、コピー後の範囲設定の再確認も欠かせません。
問題が起きたときは、まず単純なテスト用セルで同じ条件式を試し、結果が正しいかどうかを切り分けると原因を特定しやすくなります。
共有ブックや別PCで開く場合の注意点
作成したファイルを社内で共有したり、別のパソコンで開く場合、環境の違いによって表示や動作が変わることがあります。
フォントやカラーテーマが異なると、同じ色指定でも見え方が変わることがあるため、標準的なテーマカラーから選択しておくと無難です。
また、セキュリティ設定によってはマクロが無効化されることがありますが、ここで紹介している方法はマクロを使わないため、その点では安心です。
一方で、祝日リストを外部ブックに置いて参照している場合は、リンク切れに注意が必要です。
共有先でも確実に参照できるように、祝日リストは同じブック内に保持する構成が推奨されます。
ファイルを配布する前には、別のユーザー権限や別PCで一度テストし、条件付き書式が期待通りに動作するか確認しておくと、トラブルを未然に防げます。
まとめ
エクセルで土日祝日を自動で色付けするには、条件付き書式と関数を組み合わせることが鍵です。
WEEKDAY 関数で曜日を判定し、祝日リストと COUNTIF などで照合することで、手作業なしにカレンダーや勤務表の休日を視覚的に分かりやすく表現できます。
一度ルールを設計しておけば、日付を増やしても、年をまたいでも、設定を使い回せるため、長期的な運用コスト削減にもつながります。
土日のみ、祝日のみ、土日祝日をまとめて、さらには祝日を優先色で表示するなど、目的に応じてルールを柔軟に組み替えられるのも大きな利点です。
トラブルが起きたときは、日付形式、セル参照、範囲、ルール順序の4点を順番に確認すれば、多くの問題は解決できます。
ぜひ本記事の内容を参考に、ご自身の環境に合わせたテンプレートを作成し、エクセルでのスケジュール管理や勤務表作成を、より効率的で見やすいものへと改善してみてください。
コメント