スプレッドシートでスケジュールやタスク管理をしていると、土日や祝日の行や列の色を自動で変えられたら便利ですよね。手作業でセルを塗りつぶすのは手間がかかりますし、月が変わるたびに設定し直すのも大変かと思います。スプレッドシートの曜日や色を自動で変更する設定ができれば、業務の効率がグッと上がります。でも、TEXT関数を使って曜日を表示させたり、いざ条件付き書式を設定しても全然色が変わらないと悩んでしまうことも多いかもしれません。また、英語での曜日表示や、独自のカスタマイズはどうすればいいのか迷うこともあると思います。そこで今回は、私が普段スプレッドシートを使う中で便利だと感じている、曜日に合わせた色分けのテクニックをまとめてみました。少しでも皆さんの作業が楽になるヒントになれば嬉しいです。

- スプレッドシートで土日を判定して色を変える基本的な手順
- 曜日を基準にして行や列全体の色を自動的に変更する仕組み
- 別のシートを参照して祝日を判定し色分けする方法
- 設定した条件付き書式で色が変わらない時の具体的な解決策
スプレッドシートで曜日の色を自動変更
まずは、スプレッドシートで曜日に合わせて色を自動変更するための、基本的な仕組みや設定についてお話ししますね。カレンダーのような表を作るとき、土日や祝日をパッと見てわかるようにするのは基本中の基本かなと思います。ここでは、セル単体の色を変える方法から、行全体、列全体の色を一気に変える設定、さらには別シートのデータを使った応用まで、具体的な手順を順番に見ていきましょう。
土日の判定でセルの色を変える方法
スプレッドシートで曜日の色を変えるための第一歩は、日付のデータがシステムの中でどう扱われているかを知ることですね。実はスプレッドシートって、日付をただの文字ではなく「シリアル値」という裏側の数字として記憶しているんです。
このシリアル値があるおかげで、WEEKDAY関数という便利なツールが使えます。WEEKDAY関数は、指定した日付が1週間のうちのどこにあるかを計算して、1(日曜日)から7(土曜日)までの数字で教えてくれる関数です。
日曜日なら「1」、土曜日なら「7」が返ってくることを覚えておくと設定がすごく楽になりますよ。
これを条件付き書式に応用します。設定したい範囲を選んで、「表示形式」から「条件付き書式」を開き、条件のルールで「カスタム数式」を選んでみてください。たとえば、日曜日をピンク色にしたいなら、数式を「=WEEKDAY($A2)=1」のように入力します。これだけで、システムが自動的に日曜日を探し出して指定した色に塗りつぶしてくれます。土曜日なら「=WEEKDAY($A2)=7」として青色にするなど、ルールを組み合わせることで見やすい表が作れますね。
曜日の条件で行全体の色を変える
特定の日付セルだけじゃなく、「その日付がある行全体」の色を変えたいケースって実務でとても多いですよね。タスク表などでは、行全体が色付けされている方が圧倒的に見やすいかなと思います。
ここでのポイントは、条件付き書式がセルをどう評価していくかを理解することです。行全体の色を変えるには、「曜日を判定するセルは常に日付がある列を見に行く」という強制的な指示が必要になります。これを実現するのが「絶対参照($マーク)」の使い方です。
カスタム数式に「=WEEKDAY(A2)=1」と書いてしまうと、評価が右の列に進んだときに参照先もズレてしまい、意図しない変な場所に色がついてしまいます。
正解は「=WEEKDAY($A2)=1」のように、列のアルファベットの前にだけ「$」をつけること(複合参照)です。こうすることで、B列やC列のセルを評価するときも、常にA列の日付を基準に判断してくれるため、行全体が綺麗に同じ色に染まりますよ。
曜日を基準に列全体の色を変更する
行全体ではなく、横に日付が並ぶガントチャートやシフト表のように「列全体」の色を変えたい場合は、先ほどの考え方を直角に回転させるイメージですね。
この場合は、日付が入力されている「行」を固定する必要があります。たとえば、1行目に日付がズラッと並んでいるなら、カスタム数式は「=WEEKDAY(A$1)=1」のようになります。数字の前に「$」をつけて行を固定するのがコツです。
土日をまとめて色分けする小技
土曜日と日曜日を別々の色にしてもいいですが、「週末」としてまとめて同じ色で列を塗りつぶしたいこともありますよね。そんな時はOR関数を使うと便利です。
| 数式の例 | 意味 |
|---|---|
| =OR(WEEKDAY(A$1)=1, WEEKDAY(A$1)=7) | 1行目の日付が日曜日(1)か土曜日(7)のどちらかなら色をつける |
この数式を一つ設定するだけで、週末の列全体を一括で色付けできるので設定がスッキリしますよ。
祝日の色分けを別シート参照で作る
土日の判定はスプレッドシートの内部機能だけで完結しますが、日本の「祝日」となると少し工夫が必要です。ハッピーマンデー制度などで毎年日付が変わるため、スプレッドシート内に「祝日リスト」という別のシートを作って、そこを参照するのがベストな方法かなと思います。
ただ、条件付き書式には「別シートの範囲を直接指定できない」というちょっと厄介な仕様があります。これを回避するために、INDIRECT関数という裏技的な関数を使います。
カスタム数式:=COUNTIF(INDIRECT(“祝日リスト!A:A”), $A2)>0
この数式は、対象の日付が「祝日リスト」シートのA列の中に存在するかをカウントして、1つでもあれば色をつける、という仕組みです。これで、別シートのリストと連携して動的に祝日を判定できるようになります。
TEXT関数を用いた曜日表示の最適化
色分けだけでなく、セルの見た目として「月」「火」という文字を綺麗に表示させたい時もありますよね。こういう時に役立つのがTEXT関数やカスタム数値形式です。
もし、日付のデータはそのままにして見た目だけを変えたいなら、「表示形式」から「数字」→「カスタム数値形式」を選びます。「m/d (ddd)」と設定すれば「8/22 (木)」のように表示されますし、内部的には日付のままなのでWEEKDAY関数との連携もバッチリです。
一方、別のセルに独立して曜日の文字だけを取り出したい場合はTEXT関数の出番ですね。
「=TEXT(A2, “ddd”)」と入力すれば、対象のセルから「木」という文字だけをピンポイントで抽出してくれます。表のレイアウトを自由に調整したい時にとても便利ですよ。
スプレッドシートの曜日の色の応用と対策

ここからは、もう少し踏み込んだ応用テクニックや、設定してみたけどうまくいかない時の対策についてお伝えしますね。英語での表示方法や、一番よくある「色が変わらない」というトラブルの解決方法、そしてGASを使った究極の自動化まで、知っておくと業務が格段にスムーズになる情報ばかりです。
曜日を英語表記で表示させる方法
グローバルなプロジェクトや、ちょっとデザインにこだわりたい時に、曜日を「Monday」や「Mon」といった英語表記にしたいこともありますよね。
昔は対応表を作ったりしていましたが、今は先ほどのTEXT関数を使うのが一番スマートかなと思います。スプレッドシートの言語設定が英語に準拠しているなら、「=TEXT(A2, “dddd”)」とするだけで「Monday」がサクッと取り出せます。
日本の環境で強制的に英語にする場合は、TEXT関数の中でロケール(地域)を指定するちょっと高度な書き方もありますが、基本的にはフォーマットの調整で対応可能です。
設定した色が変わらない時の対処法
「条件付き書式を設定したのに、スプレッドシートの曜日の色が変わらない!」これ、本当に一番よくあるご相談です。
原因として圧倒的に多いのは、「参照のズレ」と「ルールの優先順位」です。絶対参照の「$」をつける場所を間違えていて、評価するセルが明後日の方向を向いているケースですね。もう一度、行を変えたいなら「$A2」、列を変えたいなら「A$1」になっているか確認してみてください。
また、条件付き書式はリストの上から順番に評価されるルールがあります。例えば、「日曜日は赤」というルールの下に「祝日は緑」というルールを置いていると、日曜日と祝日が重なった時に赤色が優先されてしまいます。祝日を一番目立たせたいなら、リストの一番上に祝日のルールをドラッグして移動させましょう。
GASを使って祝日リストを自動更新
祝日リストを別シートで作ったはいいものの、毎年手作業で内閣府のサイトを見て入力し直すのは正直面倒ですよね。人為的なミスも起こりやすいです。そこで、Google Apps Script(GAS)を使ってこの作業を完全に自動化しちゃいましょう。
内閣府が公開している祝日のCSVデータを、GASを使って直接読み込み、シートに自動で書き込むスクリプトを設定できます。
GASを使えば、定期的に自動で最新の祝日データを取得し、古いデータを消して新しいリストに作り直す、といった「完全自律型」のシステムが作れますよ。
ちなみに、官公庁のデータは文字コードが「Shift_JIS」であることが多いので、GASのコード内で文字化けを防ぐ処理(エンコーディング指定)を入れるのがちょっとしたコツです。これを設定すれば、祝日のメンテナンスから一生解放されます。
関数エラーで色が変わらない問題の解決
色が変わらないもう一つの隠れた原因が「データ型の不一致」です。これは少し専門的になりますが、要するに「システムが日付だと思っていない」状態ですね。
たとえば、月末の日付を自動計算している表や、「10月1日」と直接手入力したセルに対してWEEKDAY関数を使おうとすると、エラーになることがあります。人間の目には日付に見えても、スプレッドシート側がそれを「ただの文字列」と判断してしまっているからです。
文字列に対してWEEKDAY関数を当てると計算ができず、結果として条件付き書式の評価エンジンも止まってしまいます。
対策としては、日付を入力する列を選んで、メニューから明示的に「表示形式」→「数字」→「日付」を適用し、スプレッドシートに「これは日付データだよ」と強制的に教えてあげることが大切です。
スプレッドシートの曜日の色設定のまとめ
いかがでしたでしょうか。今回は、スプレッドシートの曜日で色を自動変更するための様々なアプローチについてお話ししてきました。
WEEKDAY関数の基礎から始まり、行や列の固定、INDIRECT関数を使った祝日リストの参照、そしてGASを活用した自動更新まで、知れば知るほどスプレッドシートの奥深さを感じられるかと思います。論理的なデータの持ち方と、見た目のフォーマットを切り離して考えるのが、壊れにくいシステムを作るコツですね。
設定がうまくいかない時は、焦らず「絶対参照の位置」と「データ型」をチェックしてみてください。なお、ここでご紹介した数値データや関数の挙動はあくまで一般的な目安です。正確な情報は公式サイトをご確認くださいね。また、業務システムなどに関する最終的な判断は専門家にご相談ください。少しずつ設定を試して、ご自身やチームにとって使いやすいカレンダーを作ってみてくださいね。
