Excelで月間カレンダーを作成すると、土曜日と日曜日、さらに祝日を目立つ色で表示したい場面があります。
手作業でセルを塗りつぶす方法では、月や年を変更するたびに修正が必要になり、予定表や勤務表として使うほど手間が増えてしまいます。
そこで便利なのが、日付と曜日を判定する関数、祝日一覧、条件付き書式を組み合わせる方法です。
日付を変えるだけで土日と祝日の色が自動で切り替わり、祝日名も表示されるカレンダーを作れます。
この記事で作るカレンダーの要点です。
・WEEKDAY関数で土曜日と日曜日を判定します。
・COUNTIF関数で祝日一覧に含まれる日付を判定します。
・XLOOKUP関数またはVLOOKUP関数で祝日名を表示します。
・条件付き書式で日付セルの色を自動変更します。
サンプルデータは、1行目にヘッダーがある祝日一覧を前提にしています。
それでは、年や月を更新しても使い続けられるカレンダーの設定を確認していきましょう。
エクセルのカレンダーで土日と祝日を自動色付けする設定
| 月 | 火 | 水 | 木 | 金 | 土 | 日 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
それではまず、条件付き書式を使って日付セルを自動で色分けする手順について解説していきます。
カレンダーに入力する日付データ
色付けの対象は、見た目が数字だけであっても、Excel内部では日付として認識されているセルにすることが重要です。
たとえばB2セルに対象月の初日である2026年1月1日を入力し、カレンダーの開始セルB5には日付の連続データを配置します。
開始日を月曜日に合わせる数式の例です。
=DATE(YEAR($B$2),MONTH($B$2),1)-WEEKDAY(DATE(YEAR($B$2),MONTH($B$2),1),2)+1
WEEKDAY関数の第2引数を2にすると、月曜日が1、日曜日が7として返されます。
開始セルの右隣には開始セル+1、さらに右隣にも左セル+1という数式を入れ、7列6行程度までコピーします。
セルの表示形式をdに設定すれば、内部の日付を保ったまま画面には日だけを表示できます。
土曜日と日曜日を判定する条件付き書式
日付範囲を選択してから、ホームタブの条件付き書式、新しいルール、数式を使用して書式設定するセルを決定を選びます。
日曜日用の数式は次のようになります。
=WEEKDAY(B5,2)=7
この数式ではB5を選択範囲の左上セルに合わせ、列記号と行番号を固定しない相対参照にします。
書式で淡い赤やピンクを指定すると、日曜日だけが自動で判定されて色付けされます。
土曜日用には=WEEKDAY(B5,2)=6を登録し、淡い青など日曜日と異なる色を設定しましょう。
土曜と日曜を同じ休日色にしたい場合は、=WEEKDAY(B5,2)>=6という数式でも対応できます。

数式に使うセル番地は、選択範囲の先頭と一致していないと判定位置がずれるため注意が必要です。
祝日を優先させるルール順序
祝日が土曜日や日曜日と重なる場合、どちらの書式を表示するかは条件付き書式のルール順序で決まります。
祝日用のルールを土日用ルールより上に置き、必要なら真の場合は停止するにチェックを入れると、祝日の書式を優先できます。
【操作のポイント】条件付き書式のルールの管理で、祝日、日曜、土曜の順に並べると、休日の意味を見分けやすい表示になります。
祝日一覧を利用した休日判定の仕組み
| A列 | B列 |
|---|---|
| 祝日 | 祝日名 |
| 2026/1/1 | 元日 |
| 2026/1/12 | 成人の日 |
続いては、別シートの祝日一覧からカレンダーの日付を照合する方法を確認していきます。
祝日一覧シートの作成
新しいワークシートを追加して、シート名を祝日一覧に変更します。
A1セルには祝日、B1セルには祝日名と入力し、A2以降には日付形式の祝日データ、B2以降には名称を入力します。
年ごとの祝日を日付データとして正しく入力することが自動判定の前提です。
文字列の2026年1月1日ではなく、Excelが日付として扱える2026/1/1を入力するか、DATE関数を使います。
祝日一覧のA2セルに入力する例です。
=DATE(2026,1,1)
祝日一覧はテーブルとして設定しておくと、翌年分を追加したときに参照範囲を調整しやすくなります。
COUNTIF関数による祝日判定
祝日用の条件付き書式では、COUNTIF関数を使って日付が一覧に存在するかを確認します。
=COUNTIF(祝日一覧!$A$2:$A$50,B5)>0
COUNTIF関数は、祝日一覧のA2からA50までにB5の日付と同じ値がある場合に1以上を返します。
そのため、数式の結果が真となり、設定した書式がカレンダーへ反映されます。
ここでもB5は選択範囲の左上セルであり、コピー先では自動的に参照先が変わります。
祝日判定に使う範囲は絶対参照に固定することが、条件付き書式での基本です。

日付が一致しないときの確認
祝日なのに色が変わらない場合は、カレンダー側と祝日一覧側のどちらかが文字列になっている可能性があります。
セルを選択して数式バーを確認し、日付として入力されているかを調べましょう。
時刻が含まれるデータでは見た目が同じ日付でも値が異なる場合があります。
そのときはINT関数で時刻部分を取り除くか、日付だけを入力した一覧へ整える方法が有効です。
【操作のポイント】祝日一覧の年を更新したら、カレンダーの日付と同じ西暦になっているかも確認します。
祝日名をカレンダー内に表示する数式
| 日付 | 表示内容 |
|---|---|
| 2026/1/1 | 1 元日 |
| 2026/1/12 | 12 成人の日 |
続いては、日付の下や隣に祝日名を自動表示する数式について解説していきます。
XLOOKUP関数で祝日名を取得
Microsoft 365やExcel 2021以降では、XLOOKUP関数を使うと祝日名をわかりやすく取得できます。
日付セルB5に対応する祝日名を表示する数式です。
=XLOOKUP(B5,祝日一覧!$A$2:$A$50,祝日一覧!$B$2:$B$50,””)
最初のB5が探したい日付、次の範囲が祝日の日付列、その次の範囲が返したい祝日名の列です。
最後の空文字は、祝日でない日のエラー表示を空白にする指定です。
祝日以外の日をすっきり見せたい場合に便利な設定といえます。
旧バージョンで使えるVLOOKUP関数
XLOOKUP関数が使えないExcelでは、VLOOKUP関数とIFERROR関数の組み合わせで対応できます。
=IFERROR(VLOOKUP(B5,祝日一覧!$A$2:$B$50,2,FALSE),””)
VLOOKUP関数では、検索する日付列を参照範囲のいちばん左に置く必要があります。
第3引数の2は、範囲内の2列目である祝日名を返す指定です。
FALSEは完全一致の検索であり、日付の祝日判定では必ず指定したい条件です。
日付と祝日名を一つのセルに表示する方法
カレンダーのセル内に日付と祝日名をまとめて表示したいときは、TEXT関数と改行コードを使います。
=TEXT(B5,”d”)&IF(XLOOKUP(B5,祝日一覧!$A$2:$A$50,祝日一覧!$B$2:$B$50,””)=””,””,CHAR(10)&XLOOKUP(B5,祝日一覧!$A$2:$A$50,祝日一覧!$B$2:$B$50,””))
CHAR(10)はセル内改行を表し、セルの書式設定で折り返して全体を表示するを有効にします。
数式は長くなりますが、月間予定表として見やすいカレンダーに仕上げやすい方法です。

【操作のポイント】祝日名が長い場合は、列幅よりも行の高さを少し広げると読みやすくなります。
条件付き書式ルールとカレンダー表示の調整
| 月 | 火 | 土 | 日 |
|---|---|---|---|
| 5 | 6 | 10 | 11 |
続いては、見やすさを保ちながら条件付き書式を管理する方法を確認していきます。
祝日を目立たせる書式設定
祝日用の書式には、背景色だけでなくフォント色や太字を組み合わせると視認性が上がります。
赤を強くしすぎると予定文字が読みにくくなるため、淡い赤の塗りつぶしと濃い赤の文字色が使いやすい組み合わせです。
休日色は印刷時の見やすさも考えて選ぶと、家庭用プリンターでも扱いやすくなります。
当月以外の日付を薄くする数式
月間カレンダーでは、前月と翌月の日付を薄い文字色にすると、当月の予定へ視線を集められます。
=MONTH(B5)<>MONTH($B$2)
この条件付き書式では、B5の日付の月とB2に入力した対象月の月が違う場合に書式を適用します。
フォント色をグレーにし、祝日ルールより優先順位を下げれば、当月外の祝日も必要に応じて表現できます。
ルール管理画面での範囲確認
カレンダーを翌月へコピーした際は、条件付き書式の適用先が新しいセル範囲まで含まれているか確認します。
ホームタブの条件付き書式からルールの管理を開くと、適用先と数式を一覧で見直せます。
ルールが複数あるほど、優先順位と適用先の確認がトラブル防止につながります。
【操作のポイント】同じ色のルールを何度も作るより、既存ルールの適用先を広げるほうが管理しやすくなります。
毎月使い回せるカレンダーテンプレートの作り方
| 設定項目 | 入力例 |
|---|---|
| 対象年 | 2026 |
| 対象月 | 1 |
続いては、対象年と対象月を変更するだけで更新できるテンプレート作成を確認していきます。
年と月の入力セル
B2に年、C2に月を入力する方式にすると、カレンダーの開始日を数式で制御できます。
=DATE($B$2,$C$2,1)-WEEKDAY(DATE($B$2,$C$2,1),2)+1
この数式は指定月の1日を求め、その週の月曜日まで戻す仕組みです。
年と月のセルを変えるだけで、日付、曜日、土日色、祝日判定、祝日名が連動して更新されます。
入力規則による月選択
C2セルに入力規則のリストを設定し、1から12までを選択できるようにすると入力ミスを減らせます。
年も数値の範囲を設定しておけば、不要な文字列が入ることを防げます。
テンプレートでは入力セルを色付きにすると、更新する場所が初めて使う人にも伝わります。
印刷と保存時の注意点
印刷する場合は、ページレイアウトで横向き、余白を狭い、印刷範囲をカレンダー部分に設定します。
祝日一覧は印刷範囲から外しても、数式と条件付き書式の参照は維持されます。
翌年用に複製する前には、祝日一覧へ新しい年のデータを追加しましょう。
【操作のポイント】元ファイルをテンプレートとして保管し、月ごとの予定はコピーしたファイルに記入すると安心です。
まとめ エクセルのカレンダーで祝日名表示と土日を自動色付けする方法
Excelのカレンダーで土日と祝日を自動色付けするには、日付データ、祝日一覧、条件付き書式を連携させることが基本です。
土曜日はWEEKDAY関数で6、日曜日は7を判定し、祝日はCOUNTIF関数で祝日一覧に存在するかを確認します。
祝日用のルールを上位に置けば、土日と重なる祝日も意図した色で表示できます。
祝日名はXLOOKUP関数を使うと簡潔に表示でき、旧バージョンではVLOOKUP関数とIFERROR関数で代用できます。
年と月を入力セルにまとめれば、毎月の更新は数値の変更だけで済みます。
手作業の塗りつぶしから卒業し、見やすく間違いにくいカレンダーを作っていきましょう。