スプレッドシートで祝日を自動色付け!手動更新ゼロにする完全ガイド

目次
スプレッドシートで祝日を自動色付け!手動更新ゼロにする完全ガイド
スプレッドシートで祝日を自動色付け!手動更新ゼロにする完全ガイド
@ creator • Click to Play Video Inline
🎵 スプレッドシートで祝日を自動色付け!手動更新ゼロにする完全ガイド

Googleスプレッドシートでスケジュール表や勤怠管理表、プロジェクトの工程表を作成する際、多くのビジネスパーソンが頭を悩ませるのが「土日祝日の色分け作業」です。土日は関数で簡単に判定できても、毎年日付が変わるハッピーマンデーや振替休日を含む日本の祝日を手作業で着色していては、膨大な時間と更新ミスが発生します。

本記事では、関数と条件付き書式を組み合わせた基本的な色分けテクニックから、Googleカレンダーの公式祝日データを連携させて「毎年の手動更新を完全ゼロにする」自動化の裏ワザまでを徹底解説します。そのまま使えるコピペ用数式も完備しているため、今日から日々のシート管理を大幅に効率化できます。

📌 【この記事の重要ポイントまとめ】
  • 要点1:「条件付き書式」と「WEEKDAY関数」「COUNTIF関数」を組み合わせることで、土日および祝日の自動色分けが即座に実現する。
  • 要点2:Googleカレンダーの祝日データやGAS(Google Apps Script)を連携すれば、毎年祝日一覧を手動更新するメンテナンスの手間がゼロになる。
  • 要点3:条件付き書式には「ルールの適用順序(優先順位)」があり、祝日判定を最上位に配置することが正確な色分けの鉄則となる。

【基本編】条件付き書式とWEEKDAY関数で作る土日の色分け設定

スプレッドシート上で日付を視覚化する第一歩は、土曜日と日曜日を自動で識別する土日祝色分け設定の構築です。ここで主役となるのが、指定した日付の曜日を数値で返す「WEEKDAY関数」です。

WEEKDAY関数は、デフォルト設定で日曜日を「1」、土曜日を「7」としてカウントします。これを利用して、スプレッドシートの「条件付き書式」にカスタム数式を組み込みます。

設定手順は極めてシンプルです。まず日付が入力されている列(例:A2からA100)を選択し、メニューの「表示形式」>「条件付き書式」を開きます。「セルの書式設定の条件」で「カスタム数式」を選び、以下の数式を入力します。

【土曜日を青色にするカスタム数式】
=WEEKDAY($A2)=7
※書式設定で背景色を「薄い青」や文字色を「青」に指定します。

【日曜日を赤色にするカスタム数式】
=WEEKDAY($A2)=1
※書式設定で背景色を「薄い赤」や文字色を「赤」に指定します。

列全体や行全体に色を広げたい場合は、数式内のセル参照に「$(絶対参照記号)」を付け、$A2のように列固定で記述するのがポイントです。これにより、日付列だけでなく該当行全体の自動着色が可能になります。

【実践編】祝日一覧シート作成とCOUNTIF関数による祝日自動判定

土日の設定が完了したら、次は不定期に訪れる祝日への対応です。祝日は計算式だけで算出するのが難しいため、別シートにあらかじめ祝日データをストックしておく祝日一覧シート作成を行うのが標準的なアプローチです。

作業用の別タブを新規作成し、シート名を「祝日」に変更します。A列に「2026/01/01」のような形式で対象年の祝日日付を一覧化しておきます。この祝日マスターを参照し、対象の日付がリスト内に存在するかを判定するのが「COUNTIF関数」です。

本表の条件付き書式を開き、以下のCOUNTIF関数祝日判定のカスタム数式を追加します。

【祝日を赤色(または任意の色)にするカスタム数式】
=COUNTIF(INDIRECT("祝日!$A:$A"), $A2)>0

ここで重要な技術的ポイントは、INDIRECT関数を挟む点です。スプレッドシートの条件付き書式では、別シートのセル範囲を直接参照(祝日!$A:$Aなど)するとエラーになる仕様があります。INDIRECT("シート名!範囲")の形式で文字列として渡すことで、別シートにある祝日一覧との照合がスムーズに機能します。

この数式により、A列の日付が祝日一覧に1件でも合致すればセルに色が付き、スプレッドシート祝日自動色付けが完成します。

【自動化の極意】Googleカレンダー祝日連携で手動メンテをゼロにする裏ワザ

祝日一覧シートを手作業で作る方法には、「毎年新しい年の祝日データを手動入力しなければならない」という運用上の弱点が存在します。この課題を完全に解消するのが、Googleカレンダー祝日連携による完全自動化です。

Googleは公式に「日本の祝日」カレンダー(カレンダーID: ja.japanese#holiday@group.v.calendar.google.com)を公開しており、常に最新の祝日や振替休日が自動更新されています。このデータをスプレッドシート祝日判定GAS(Google Apps Script)で取得し、シートへ自動流し込みを行うことで、カレンダー自動色変更の仕組みが恒久化します。

スプレッドシートのメニュー「拡張機能」>「Apps Script」を開き、以下のコードを貼り付けて実行するだけで、祝日シートに自動でデータが生成されます。

function syncJapaneseHolidays() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('祝日') || SpreadsheetApp.getActiveSpreadsheet().insertSheet('祝日'); sheet.clear(); sheet.appendRow(['日付', '祝日名']); const calendarId = 'ja.japanese#holiday@group.v.calendar.google.com'; const calendar = CalendarApp.getCalendarById(calendarId); const now = new Date(); const startDate = new Date(now.getFullYear(), 0, 1); const endDate = new Date(now.getFullYear() + 1, 11, 31); const events = calendar.getEvents(startDate, endDate); const holidayData = events.map(event => [ Utilities.formatDate(event.getStartTime(), 'Asia/Tokyo', 'yyyy/MM/dd'), event.getTitle() ]); if (holidayData.length > 0) { sheet.getRange(2, 1, holidayData.length, 2).setValues(holidayData); } }

内閣府が提供するCSV形式の祝日一覧日本の祝日URLから関数で取得する方法もありますが、GASとGoogleカレンダーの連携はAPI認証が不要で動作が極めて安定しています。トリガー設定で「年1回の自動実行」をスケジュールしておけば、今後一切メンテナンスを行う必要がなくなります。

【コピペで即完了】土日祝色分けの条件付き書式数式一覧&適用順序

条件付き書式を設定する際、初心者が最も陥りやすい落とし穴が「ルールの適用順序(優先順位)」です。条件付き書式はリストの上にあるルールが優先して適用されます。

例えば、「祝日」が「日曜日」と重なった場合(振替休日の発生元など)、祝日ルールを上位にしておかないと、意図した色分けになりません。以下の順序でルールを並べ替えて配置してください。

優先順位対象コピペ用カスタム数式推奨スタイル
第1優先(最上位)祝日=COUNTIF(INDIRECT("祝日!$A:$A"), $A2)>0背景:濃いピンク / 文字:赤
第2優先日曜日=WEEKDAY($A2)=1背景:薄い赤 / 文字:赤
第3優先土曜日=WEEKDAY($A2)=7背景:薄い青 / 文字:青

行全体に色を付けたい場合は、適用範囲を「A2:G100」のように表全体の範囲に広げた上で、上記の数式をそのまま使用します。数式内の$A2が常に日付列を参照するため、行全体が連動して綺麗に色分けされます。

【ビジネス応用】ガントチャート祝日反映とNETWORKDAYS関数の活用術

土日祝日の自動色付けは、単なるカレンダー作成にとどまらず、プロジェクト管理におけるガントチャート祝日反映で真価を発揮します。休業日をグレーアウトして可視化することで、タスクの期日設定ミスや工数見積もりの狂いを未然に防ぎます。

さらに、実働日数を正確に算出するNETWORKDAYS関数を組み合わせることで、業務の自動計算は一気に高度化します。

【営業日数を自動計算する数式】
=NETWORKDAYS(開始日セル, 終了日セル, INDIRECT("祝日!$A:$A"))

第3引数に祝日リストを指定することで、土日だけでなく日本の祝日を除外した「真の実働日数」が一瞬で導き出されます。納期管理や有給休暇の管理台帳など、ビジネス現場のあらゆるシーンで絶大な威力を発揮するテクニックです。

【トラブルシューティング】祝日の色が反映されない原因と解決策

設定したはずの色が付かない、あるいは意図しないセルに着色される場合、以下の典型的な原因をチェックしてください。

1. 日付が「文字列」として認識されている
スプレッドシートが日付を数値(シリアル値)ではなくテキストとして扱っている場合、WEEKDAY関数やCOUNTIF関数が正しく動作しません。セルを選択してメニューの「表示形式」>「数字」>「日付」を再適用してください。

2. INDIRECT関数内のシート名不一致
数式内のINDIRECT("祝日!$A:$A")に記述されたシート名と、実際のタブ名(スペースの有無や全角半角)が完全一致しているか確認してください。

3. 条件付き書式の適用範囲と数式の先頭行ズレ
適用範囲が「A2:A100」であるのに対し、カスタム数式が=WEEKDAY($A1)=1のように1行目から始まっていると、色が1行ずつずれて表示されます。範囲の開始行と数式の行番号は必ず一致させてください。

【スプレッド シート 祝日 色】に関するよくある質問(FAQ)

Q1:条件付き書式で別シートの祝日リストを参照すると数式エラーになります。どうすればよいですか?
A1:Googleスプレッドシートの条件付き書式は、別シートを直接参照(例: 祝日!A:A)できません。必ずINDIRECT("祝日!$A:$A")のようにINDIRECT関数でラップして記述してください。

Q2:会社の創立記念日や夏季休暇など、独自の特別休暇も色分けできますか?
A2:可能です。「祝日」シートのA列に会社の独自休日を追加するだけで、COUNTIF関数が自動的に判定して同じように色付けされます。

Q3:土曜日が祝日と重なった場合、どちらの色が付きますか?
A3:条件付き書式ルールの「上にある条件」が優先されます。祝日ルールを最上位に配置していれば祝日の色が付き、土曜ルールを上にすれば土曜の色が適用されます。実務上は祝日ルールを一番上に置くのが一般的です。

まとめ:祝日の自動色付けで業務効率を劇的に高めよう

スプレッドシートにおける土日祝日の色分けは、一度「WEEKDAY関数」「COUNTIF関数」「Googleカレンダー連携」を組み込んでしまえば、以降は完全に自動で回り続ける堅牢なシステムとなります。

毎年の日付更新や手動での色付けに費やしていた無駄な時間は、すべて自動化によって削減可能です。今回紹介した数式と設定順序を活用し、ミスがなく視認性に優れたスマートなシート運用をスタートさせてください。 (出典: スプレッド シート 祝日 色(Yahoo!ニュース))

スプレッド シート 祝日 色
スプレッド シート 祝日 色
スプレッド シート 祝日 色