エクセルで土日・祝日に自動で色付けする方法|条件付き書式とWEEKDAY(色がずれる時の直し方つき)

スケジュール表や工程表、シフト表で、土日と祝日のセルだけ自動で色を変える方法です。条件付き書式とWEEKDAY関数、祝日の一覧だけで作れます。日付を変えれば、色も自動で付け直されます。

横に日付が並ぶ表で、土日と祝日がグレーになった完成形

先に結論です。日付が4行目に横に並ぶ表(工程表など)なら、色を付けたい範囲を選び、条件付き書式に次の式を入れます。

=OR(WEEKDAY(J$4,2)>5,COUNTIF(祝日,J$4)>0)

日付がA列に縦に並ぶ表(スケジュール表など)なら、こうです。

=OR(WEEKDAY($A2,2)>5,COUNTIF(祝日,$A2)>0)

「祝日」は、祝日の一覧に付けた名前です(3章)。以下、1つずつ説明します。

目次

1. 曜日を自動で表示する

日付の隣(横の表なら下)に曜日を出しておくと、色が合っているかを確かめやすくなります。

  • 関数で出す:=TEXT(A2,"aaa") で「月」「火」…、=TEXT(A2,"aaaa") で「月曜日」「火曜日」…と出ます。
  • 表示形式で出す:日付のセルの[セルの書式設定]→[表示形式]→[ユーザー定義]に m/d(aaa) と入れると、「11/3(火)」のように日付と曜日を1つのセルに出せます。

2. 土日に色を付ける(条件付き書式)

日付がA列に縦に並ぶ表(A2から下に日付、1行目は見出し)で説明します。

  1. 色を付けたい範囲を選ぶ(例:A2:E31)。日付の列だけでなく、行ごと色を付けたい範囲を選びます。見出しの行は含めません。
  2. [ホーム]→[条件付き書式]→[新しいルール]→[数式を使用して、書式設定するセルを決定]を選ぶ。
  3. 式に =WEEKDAY($A2,2)>5 と入れ、[書式]→[塗りつぶし]でグレーを選ぶ。

WEEKDAY(日付,2)は、月曜が1、日曜が7を返します。6(土)と7(日)だけが「5より大きい」ので、土日に色が付きます。

土曜は青、日曜は赤に分けたいときは、ルールを2つにします。土曜は =WEEKDAY($A2,2)=6、日曜は =WEEKDAY($A2,2)=7 です。

日付が横に並ぶ表(4行目に日付)なら、式は =WEEKDAY(J$4,2)>5 です。縦の表は「$A2」(列を固定)、横の表は「J$4」(行を固定)。ここを取り違えると色がずれます(6章)。

条件付き書式のルールの管理画面。土日に色を付ける式と適用先

3. 祝日にも色を付ける

  1. 別のシート(例:「祝日」)のA列に、祝日の日付を並べる。
  2. その範囲(例:祝日!A2:A100)を選び、[数式]→[名前の定義]で「祝日」という名前を付ける。
  3. 土日のルールの式を、次の形に変える。
=OR(WEEKDAY($A2,2)>5,COUNTIF(祝日,$A2)>0)

COUNTIF(祝日,$A2)は、その日付が祝日の一覧に何回出てくるかを数えます。1以上なら祝日です。土日か祝日のどちらかに当てはまれば、色が付きます。

祝日の一覧は、内閣府のホームページ(国民の祝日について)で公開されています。春分の日と秋分の日は、前の年の2月に正式に決まるので、翌年分は2月以降に足してください。

祝日の一覧と、名前の管理で付けた名前「祝日」

4. 会社の休み(年末年始・お盆)も入れる

祝日の一覧の下に、会社の休みの日付を足すだけです。名前「祝日」の範囲に入っていれば、同じルールでグレーになります。範囲を少し広め(例:A2:A100)にしておくと、日付を足しても式を直さずに済みます。

5. 日曜だけ休みの現場は

土曜も稼働する現場なら、「>5」を「=7」に変えます。

=OR(WEEKDAY($A2,2)=7,COUNTIF(祝日,$A2)>0)

6. 色がずれる・付かないときの直し方

「色が1つ(2つ)ずれる」「全部に色が付く」「まったく付かない」は、ほとんどが次の4つのどれかです。

原因1:選んだ範囲の左上と、式の参照がずれている

条件付き書式の式は、「選んだ範囲の左上のセル」を基準に書きます。A2:E31を選んだなら、式はA2を基準に書きます。見出しを含めてA1から選んだのに式を$A2のままにすると、どの行も1つ下の行の日付を見てしまい、色が1行上にずれます。2行ずれるときは、選んだ範囲が2行上から始まっています。

直し方:[条件付き書式]→[ルールの管理]で、ルールの「適用先」の左上のセルと、式の中のセル($A2など)が同じ行(横の表なら同じ列)になっているかを確かめます。

適用先がA1から始まっていて、土日の色が1行上にずれた例

原因2:「$」の付け方が逆

縦の表で =WEEKDAY(A2,2)>5 のように$を付けないと、B列のセルはB2を、C列のセルはC2を見に行き、日付ではないセルを判定してしまいます。縦の表は$A2(列を固定)、横の表はJ$4(行を固定)です。

原因3:日付が「文字」になっている

ほかのファイルから貼り付けた「11月3日(火)」のような値は、見た目は日付でもただの文字のことがあります。文字のままだと曜日を計算できず、色が付きません。空いているセルに =ISNUMBER(A2) と入れてFALSEなら文字です。日付として入れ直してください。

原因4:ほかのルールと重なっている

工程表のバーのように、同じ範囲に別の色のルールがあると、[ルールの管理]で上にあるルールが優先されます。休日のグレーを一番下に置くと、バーの色が優先されます。

7. 工程表で使うなら

土日祝の色分けは、工程表を見やすくする土台です。バー・今日の線・遅れの色分けまで含めた作り方は、「エクセルで工程表を作る方法」で数式つきで説明しています。

土日祝の色分け・休みの曜日の切り替え・祝日入りの工程表は、完成品を無料で配っています。メールアドレスを入れると、ダウンロードのリンクをすぐにメールでお届けします。

作った人

Excel30年×製造現場20年。現場でそのまま使える形にこだわって、工程表のテンプレートを作っています。運営者について

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次