Excelのカレンダーや予定表で、土曜日や日曜日の行に自動で色をつけるために「条件付き書式」と「WEEKDAY関数」を組み合わせる手法は一般的です。しかし、数式を正しく入力したつもりでも、特定の日付だけ色が反映されなかったり、土曜日なのに日曜日の色がついてしまったりする不具合が頻発します。
この現象は、WEEKDAY関数の「種類(戻り値)」の指定ミスや、条件付き書式内でのセル参照($記号)の論理的な誤りによって発生します。本記事では、条件付き書式が土日に正しく反応しない技術的な原因を整理し、正確な色分けを実現するためのデバッグ手順を詳説します。
結論:土日の色分け不全を解消する3つのチェックポイント
- WEEKDAY関数の「第2引数」を再定義する:月曜始まりか日曜始まりか、引数によって変わる戻り値の数値を修正します。
- セル参照の「複合参照($A1)」を徹底する:行全体に色を広げる際、列を固定していないための参照のズレを解消します。
- ルールの優先順位と「適用先」を同期させる:祝日の色設定との競合や、範囲指定の不整合を論理的に整理します。
目次
1. WEEKDAY関数が「ずれる」技術的背景:戻り値の仕様
WEEKDAY関数は、日付に対応する曜日を「1〜7」の数値で返しますが、第2引数(種類)の設定によって数値と曜日の対応関係が劇的に変化します。ここでの誤解がエラーの最大の要因です。
引数「種類」による論理の差異
- WEEKDAY(日付, 1) または省略:1(日曜)〜7(土曜)を返します。日曜を判定する場合は
=1、土曜は=7と指定する必要があります。 - WEEKDAY(日付, 2):1(月曜)〜7(日曜)を返します。土日は
>=6で一括判定できるメリットがありますが、ここを「1」と混同すると曜日が1日ずれます。 - WEEKDAY(日付, 11〜17):特定の曜日を「1」とする特殊な設定です。共有されたファイルでこれが使われていると、標準的な判定式が機能しません。
2. 手順①:WEEKDAY関数の引数と判定値の修正
土曜日・日曜日の判定が正しく行われるよう、数式の論理構成を修正する手順です。
- 「条件付き書式」 > 「ルールの管理」 を開き、対象の数式を確認します。
- 日曜始まり(標準)を使用する場合:
・日曜の判定式:=WEEKDAY($A1, 1)=1
・土曜の判定式:=WEEKDAY($A1, 1)=7 - 月曜始まりを使用する場合(週末の一括判定に便利):
・土日の判定式:=WEEKDAY($A1, 2)>=6
3. 手順②:複合参照($記号)による行全体の色付け
「日付の列には色がつくが、その横のセルに色が広がらない」というトラブルの解消手順です。
- 数式内のセル参照を確認します。
=WEEKDAY(A1, 1)=7のように「$」がない相対参照になっていると、右隣の列では参照先がB1, C1…とずれてしまい、判定が機能しません。 - 日付が入っている列を 「$」で固定 します。
例:日付がA列にある場合、=WEEKDAY($A1, 1)=7 - これにより、B列やC列から見ても常にA列の日付が参照されるようになり、行全体に正しく色が適用されます。
4. 手順③:祝日ルールとの優先順位調整
土日よりも祝日の色(例:赤)を優先させたい、あるいはその逆を設定する際の論理的な整理手順です。
- 「条件付き書式」 > 「ルールの管理」 を開きます。
- リストの上にあるルールほど優先度が高くなります。 「祝日」の判定ルールを最上位 に配置します。
- 祝日と日曜が重なった際に祝日の色を優先したい場合は、祝日ルールの右側にある 「条件を満たす場合は停止」 にチェックを入れます。
- 「適用先」の範囲が、土日ルールと祝日ルールで完全に一致しているか確認します。範囲がずれていると、一部のセルで不整合が起きます。
5. 技術仕様:WEEKDAY関数「種類」別の判定数値一覧表
| 第2引数(種類) | 1 が示す曜日 | 日曜日の判定式 | 土曜日の判定式 |
|---|---|---|---|
| 1 (または省略) | 日曜日 | =1 |
=7 |
| 2 | 月曜日 | =7 |
=6 |
| 3 | 月曜日(0から開始) | =6 |
=5 |
まとめ:関数の戻り値と参照形式の論理的整合
Excelの条件付き書式で土日の色が正しく反映されない問題は、関数の「戻り値の解釈」と、セル参照における「$記号(複合参照)」という、Excelの基礎的な仕様の不整合から生じています。特に、コピー&ペーストを繰り返したシートでは参照先が予期せずずれていることが多く、これが「色がつくセルとつかないセルが混在する」という現象の正体です。
実務においては、まずWEEKDAY関数の第2引数が「1」か「2」かを明確に定義し、それに合わせた判定値を設定してください。その上で、数式内で列を$で固定($A1)することで、表全体のレイアウトが崩れても正確な色分けが維持されるようになります。また、祝日設定を含む複雑なルールでは優先順位の管理を徹底することで、論理矛盾のない視認性の高いカレンダー運用が可能になります。
