- 作成日 : 2025年10月27日
スプレッドシートで土日に自動で色を付けるには?曜日別の背景色設定から応用テクニックまで解説
Googleスプレッドシートで土日に自動的に色を付ける設定を行うことで、カレンダーやスケジュール表の視認性が劇的に向上し、週末と平日を瞬時に識別できるようになります。条件付き書式とWEEKDAY関数を組み合わせることで、日付データから曜日を判定し、土曜日と日曜日に異なる背景色を自動適用できます。
本記事では、スプレッドシートで土日に色を付ける基本的な方法から、行全体や列全体への適用、祝日対応まで、実務で即座に活用できる設定方法を詳しく解説します。
目次
スプレッドシートで土日に自動で色付けする基本的な方法は?
スプレッドシートで土日に自動で色付けするには、条件付き書式でWEEKDAY関数を使い、土曜日(7)と日曜日(1)を判定して背景色を設定することで実現できます。
WEEKDAY関数は日付から曜日を数値で返す関数で、これを条件付き書式と組み合わせることで、土日の自動判定と色付けが可能になります。一度設定すれば、新しい日付を入力しても自動的に土日が色分けされるため、カレンダーやシフト表、プロジェクト管理表などで広く活用されています。
WEEKDAY関数を使った曜日判定の仕組み
WEEKDAY関数は、日付を引数として受け取り、曜日を表す数値を返します。デフォルトでは日曜日が1、月曜日が2、土曜日が7となります。この数値を利用して、土日を判定します。
WEEKDAY関数の基本構文:
=WEEKDAY(日付, [種類])
- 第1引数:判定したい日付
- 第2引数:週の開始曜日の指定(省略可能)
- 戻り値:1(日曜)~7(土曜)の数値
- 1または省略:日曜日を1とする(日=1, 月=2, … 土=7)
- 2:月曜日を1とする(月=1, 火=2, … 日=7)
- 3:月曜日を0とする(月=0, 火=1, … 日=6)
一般的な設定では第2引数を省略し、土曜日=7、日曜日=1として判定します。
条件付き書式での土日判定設定手順
日付が入力されているセル範囲に対して、条件付き書式を設定します。カスタム数式を使用することで、WEEKDAY関数による曜日判定を実装できます。
- 日付が入力されている範囲を選択(例:A2:A100)
- メニューから「表示形式」→「条件付き書式」を選択
- 「条件を追加」をクリック
- 「カスタム数式」を選択
- 土曜日の判定式:=WEEKDAY($A2)=7
- 背景色を薄い青などに設定
- 「完了」をクリック
- 「別の条件を追加」をクリック
- カスタム数式:=WEEKDAY($A2)=1
- 背景色を薄いピンクなどに設定
- 「完了」をクリック
この設定により、日付セルの曜日に応じて自動的に色が変わります。
複数の土日を一つの条件で色付けする方法
土曜日と日曜日を同じ色にしたい場合、OR関数を使って一つの条件式にまとめることができます。これにより、条件の管理が簡単になります。
統合された条件式:
=OR(WEEKDAY($A2)=1,WEEKDAY($A2)=7)
この数式は、日曜日(1)または土曜日(7)の場合にTRUEを返し、指定した色が適用されます。週末をまとめて同じ色で表示したい場合に便利です。
セル単位で曜日別に背景色を設定する詳細な方法は?
セル単位で曜日別に背景色を設定するには、各曜日に対応する条件付き書式を個別に作成し、月曜から日曜まで7つの異なる色を割り当てることで、曜日ごとの視覚的な区別が可能になります。
単一セルや特定のセル範囲に対して、きめ細かな曜日別の色分けを行うことで、週間スケジュールの管理やデータ分析がより効率的になります。各曜日に意味のある色を割り当てることで、直感的な理解を促進できます。
全曜日に異なる色を設定する手順
7つの曜日それぞれに異なる色を設定することで、カラフルで見やすいカレンダーを作成できます。各曜日の特性に合わせた色選びが重要です。
- 月曜日(2):薄い黄色 – 週の始まりを明るく
- 火曜日(3):薄いオレンジ – 活動的な印象
- 水曜日(4):薄い緑 – 週の中間で安定感
- 木曜日(5):薄い青 – 落ち着いた色調
- 金曜日(6):薄い紫 – 週末前の特別感
- 土曜日(7):水色 – 休日の爽やかさ
- 日曜日(1):ピンク – 休息日の柔らかさ
各条件式の設定:
月曜日: =WEEKDAY($A2)=2
火曜日: =WEEKDAY($A2)=3
水曜日: =WEEKDAY($A2)=4
木曜日: =WEEKDAY($A2)=5
金曜日: =WEEKDAY($A2)=6
土曜日: =WEEKDAY($A2)=7
日曜日: =WEEKDAY($A2)=1
特定の曜日のみを強調表示する設定
全ての曜日に色を付けるのではなく、特定の曜日のみを強調したい場合の設定方法です。例えば、定例会議がある曜日や、締め切り日となる曜日を目立たせることができます。
- 水曜日の定例会議:=WEEKDAY($A2)=4 → 黄色の背景
- 金曜日の締め切り:=WEEKDAY($A2)=6 → 赤色の背景
- 月初の月曜日:=AND(WEEKDAY($A2)=2,DAY($A2)<=7) → 濃い青
複合条件により、より具体的な日付パターンを特定できます。
日付形式に関わらず曜日を判定する工夫
日付が文字列として入力されている場合や、異なる形式で記載されている場合でも、適切に曜日を判定する方法があります。
柔軟な判定方法:
=WEEKDAY(DATEVALUE($A2))
DATEVALUE関数を組み合わせることで、文字列形式の日付も処理できます。
エラー処理を含む条件式:
=IFERROR(WEEKDAY($A2)=1,FALSE)
日付以外の値が入力されている場合のエラーを回避します。
行全体を土日で色分けする実践的な設定方法は?
行全体を土日で色分けするには、条件付き書式の範囲を行全体に拡張し、日付列を絶対参照($A2など)で指定することで、日付に基づいて行全体の背景色を変更できます。
スケジュール表やガントチャートなどで、土日の行全体を色付けすることで、週末の作業を明確に区別できます。この設定により、横に長い表でも土日が一目で分かるようになります。
日付列を基準に行全体を色付けする設定
A列に日付が入力されている場合に、その日付が土日なら行全体に色を付ける設定方法です。この方法は、プロジェクト管理表や勤怠管理表で特に有効です。
- 色付けしたい範囲全体を選択(例:A2:Z100)
- 「表示形式」→「条件付き書式」を選択
- カスタム数式を選択
- 土日判定の数式:=OR(WEEKDAY($A2)=1,WEEKDAY($A2)=7)
- 背景色を薄いグレーなどに設定
- 「完了」をクリック
重要なポイントは、日付列(この例では$A)に$マークを付けて列を固定することです。これにより、各行の判定が正しく行われます。
複数シートでの一括設定方法
複数のシートで同じ土日色分け設定を使用する場合、効率的な設定方法があります。一度作成した条件付き書式を他のシートにコピーすることで、作業時間を短縮できます。
- 元のシートで条件付き書式を完成させる
- 設定済みの範囲を選択してコピー(Ctrl+C)
- 別シートの同じ範囲を選択
- 「編集」→「特殊貼り付け」→「条件付き書式のみ貼り付け」
- 必要に応じて範囲を調整
スクリプトによる自動化:
function applyWeekendFormatting() {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
sheets.forEach(function(sheet) {
// 各シートに土日の条件付き書式を適用
var range = sheet.getRange(“A2:Z100”);
// 条件付き書式の設定コード});}
ガントチャートでの土日表示の応用
プロジェクト管理で使用するガントチャートにおいて、土日を視覚的に区別することで、作業日と休日を明確に分けることができます。
- 土日の列を薄い灰色で表示
- 祝日は赤色で強調
- 作業日は白背景を維持
- マイルストーンは特別な色で表示
縦方向のカレンダー表示の場合:
=OR(WEEKDAY(A$1)=1,WEEKDAY(A$1)=7)
行ではなく列の固定(A$1)により、縦方向の日付に対応します。
列単位で曜日別に色を設定する効果的な方法は?
列単位で曜日別に色を設定するには、各列のヘッダーに日付を配置し、列参照を固定した条件付き書式を適用することで、縦型カレンダーや週間スケジュール表を作成できます。
月間カレンダーや週間予定表など、列方向に日付が並ぶレイアウトでは、列単位での色分けが効果的です。この設定により、縦型の時間管理ツールを構築できます。
月間カレンダー形式での列色分け
一般的な月間カレンダーのように、各列が曜日を表す形式での色分け設定です。1行目に日付、2行目以降に予定を記入する構造で使用します。
- 1行目に日付を横に配置(B1:AF1など)
- データ範囲全体を選択(B2:AF50)
- 条件付き書式でカスタム数式を設定
- 土曜日の列:=WEEKDAY(B$1)=7
- 日曜日の列:=WEEKDAY(B$1)=1
列固定の記法(B$1)により、各列の1行目の日付を参照して曜日を判定します。
週間スケジュール表での曜日別配色
週単位のスケジュール表で、月曜から日曜までの各列を異なる色で表示する設定です。時間割や週間タスク管理に適しています。
- 月曜列:薄い黄色
- 火曜列:薄いオレンジ
- 水曜列:薄い緑
- 木曜列:薄い青
- 金曜列:薄い紫
- 土曜列:水色
- 日曜列:ピンク
各列に対する条件式:
B列(月曜): =WEEKDAY($B$1)=2
C列(火曜): =WEEKDAY($C$1)=3
(以下同様)
シフト表での土日勤務の可視化
従業員のシフト表において、土日勤務を明確に表示することで、休日出勤の管理が容易になります。
- 平日勤務:通常の背景色
- 土曜勤務:薄い青色の背景
- 日曜勤務:薄い赤色の背景
- 祝日勤務:濃い赤色の背景
複合条件の活用:
=AND(WEEKDAY(B$1)=1,B2<>”休”)
日曜日かつ「休」でない場合に色を付ける条件式です。
祝日も含めて自動で色付けする高度な設定は?
祝日も含めて色付けするには、祝日リストを別シートに作成し、COUNTIF関数やVLOOKUP関数を使った条件付き書式で、土日と祝日を異なる色で自動判定できます。
日本の祝日や企業独自の休業日を含めた包括的な休日管理を行うことで、より実用的なカレンダーシステムを構築できます。祝日データを外部から取り込むことで、メンテナンスも容易になります。
祝日リストを使った条件設定
別シートに祝日リストを作成し、それを参照して祝日を判定する方法です。年度ごとの祝日更新も簡単に行えます。
- 新しいシート「祝日」を作成
- A列に祝日の日付を入力
- B列に祝日名を入力(任意)
- 年度ごとに更新可能な構造に
祝日判定の条件式(時刻差吸収版):
=COUNTIF(ARRAYFORMULA(INT(祝日!$A:$A)), INT($A2))>0
もしくは
=ISNUMBER(MATCH(INT($A2), ARRAYFORMULA(INT(祝日!$A:$A)), 0))
この式で、日付が祝日リストに含まれるかを判定します。
土日祝日の優先順位設定
土日と祝日が重なる場合の表示優先順位を設定することで、より分かりやすい色分けを実現できます。
- 祝日(最優先):赤色
- 日曜日:ピンク色
- 土曜日:青色
- 平日:白色
- 第1条件:祝日判定
- 第2条件:日曜日判定
- 第3条件:土曜日判定
ルールは上から順に評価され、最初にTRUEになったルールが適用されます。祝日を最優先にしたい場合は、祝日判定を最上段に配置してください。
Google Apps Scriptでの自動祝日取得
Google Apps Scriptを使用して、Googleカレンダーから祝日を自動取得することも可能です。これにより、手動での祝日入力が不要になります。
祝日取得スクリプトの例:
function importJapaneseHolidays(year) {
// 年の指定がなければ当年
year = year || new Date().getFullYear();
const calId = ‘ja.japanese#[email protected]’;
const cal = CalendarApp.getCalendarById(calId);
if (!cal) throw new Error(‘日本の祝日カレンダーが見つかりません。’);
// その年の期間を厳密に指定(タイムゾーンはスクリプトの設定に依存)
const start = new Date(year, 0, 1); // year-01-01 00:00
const end = new Date(year, 11, 31, 23, 59, 59, 999);
// 祝日を取得
const events = cal.getEvents(start, end);
// 書き込み先は「祝日」シート固定(存在しなければ作成)
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(‘祝日’) || ss.insertSheet(‘祝日’);
// 見出しをセットし、既存データは値のみクリア
sheet.getRange(1, 1, 1, 2).setValues([[‘日付’, ‘名称’]]);
const lr = sheet.getLastRow();
if (lr >= 2) sheet.getRange(2, 1, lr – 1, 2).clearContent();
// 祝日を日付(終日)として整形しつつ一括書き込み
const rows = events.map(ev => {
const d = ev.getAllDayStartDate ? ev.getAllDayStartDate() : ev.getStartTime();
// 時刻を0:00に正規化(シリアル整数比較を安定させる)
const dateOnly = new Date(d);
dateOnly.setHours(0, 0, 0, 0);
return [dateOnly, ev.getTitle()];
}).sort((a, b) => a[0] – b[0]); // 日付順に並べ替え
if (rows.length > 0) {
sheet.getRange(2, 1, rows.length, 2).setValues(rows);
// 日付列を日付表示形式へ(任意)
sheet.getRange(2, 1, rows.length, 1).setNumberFormat(‘yyyy/mm/dd’);}}
※ 条件付き書式側は、前段の修正式(INT(…)での比較)を用いると確実です。
※ 年度更新は importJapaneseHolidays(2026) のように呼び出し、または時間トリガーで毎年自動取得にできます。
このスクリプトにより、日本の祝日を自動的にスプレッドシートに取り込めます。
条件付き書式の土日設定でよくあるトラブルと解決方法は?
土日の色付けでよくあるトラブルには、日付形式の不一致、タイムゾーンの問題、数式の参照エラーなどがあり、適切な対処により確実な動作を実現できます。
設定は正しいはずなのに色が付かない、意図しない日付に色が付くなどの問題は、多くの場合、データ形式や数式の記述ミスが原因です。これらの問題を体系的に解決する方法を理解することが重要です。
日付が認識されない場合の対処法
セルに入力された値が日付として認識されない場合、WEEKDAY関数が正しく動作しません。この問題の原因と解決方法を詳しく解説します。
- 文字列として入力された日付:DATEVALUE関数で変換
- 異なる日付形式:「表示形式」→「数字」→「日付」で統一
- スペースや特殊文字:TRIM関数やCLEAN関数で除去
- 和暦表記:西暦に変換または専用の処理を追加
- セルが“日付として入力済み”(=数値)か確認:
=ISNUMBER($A2) - 文字列として入力された日付が有効か確認(DATEVALUEで変換できるか):
=ISNUMBER(DATEVALUE($A2)) - 時刻付きでも“日付として”扱えるか確認(時刻を切り捨てて判定):
=ISNUMBER(INT($A2))
※ ISNUMBER が TRUE ならシート内部で日付(数値)として認識されています。DATEVALUE は文字列→日付変換
タイムゾーンによる曜日のずれ
スプレッドシートのタイムゾーン設定と実際の使用地域が異なる場合、曜日の判定がずれることがあります。
- 「ファイル」→「設定」を選択
- 「全般」タブでタイムゾーンを確認
- 使用地域に合わせて変更
- 「設定を保存」をクリック
国際的なチームで使用する場合は、UTC基準での管理も検討します。
数式の参照エラーと修正方法
条件付き書式の数式で、相対参照と絶対参照を誤ると、意図しない動作になります。
- =WEEKDAY(A2)=1:行が変わると参照もずれる
- =WEEKDAY($A$2)=1:常に同じセルを参照
- =WEEKDAY($A2)=1:列は固定、行は相対(正解)
- 条件付き書式を一時的に削除
- セルに直接数式を入力して動作確認
- 正しく動作する数式を条件付き書式に適用
土日色分けを活用した実用的なテンプレートの作成は?
土日色分けを組み込んだテンプレートを作成することで、年間カレンダー、月次レポート、プロジェクト管理表などを効率的に運用でき、チーム全体の生産性向上に貢献できます。
一度作成したテンプレートは、繰り返し使用できるため、初期設定の時間投資に対して大きなリターンが得られます。用途別に最適化されたテンプレートを準備することで、様々な業務シーンに対応できます。
年間カレンダーテンプレートの構築
1年分のカレンダーを一覧できるテンプレートを作成し、土日祝日を自動的に色分けします。年度計画や長期プロジェクトの管理に最適です。
- 12ヶ月分のシートまたは12の表を1シートに配置
- 各月の土日を自動色分け
- 祝日リストと連動
- 年度切り替えに対応した数式設計
- 1月分を完璧に作成
- 条件付き書式を含めてコピー
- 各月の日付を調整
- 年度パラメータの一括変更機能を追加
月次勤怠管理表の自動化
従業員の勤怠を管理する月次表において、土日の自動判定により、休日出勤や残業管理が容易になります。
- 土日の自動判定と色分け
- 祝日の特別表示
- 出勤日数の自動計算
- 休日出勤の自動集計
おすすめ:種類=2で土日を一括判定)
=SUMPRODUCT( (WEEKDAY(A2:A32,2)>=6) * (B2:B32<>”休”) )
(または、OR を足し合わせる形)
=SUMPRODUCT( ((WEEKDAY(A2:A32,1)=1)+(WEEKDAY(A2:A32,1)=7)) * (B2:B32<>”休”) )
※ WEEKDAY(…,2) は 月=1, …, 土=6, 日=7 なので >=6 で土日をまとめて判定できます。どちらの式も行数に応じて自動で配列計算され、土日かつ「休」以外の行をカウントします。
プロジェクトガントチャートへの応用
プロジェクト管理で使用するガントチャートに土日色分けを適用することで、作業可能日が明確になります。
- 土日を除いた工数計算
- 納期の自動調整
- リソース配分の可視化
- クリティカルパスの表示
WORKDAY関数との連携:
=WORKDAY(開始日, 工数, 祝日リスト)
土日と祝日を除いた完了予定日を自動計算できます。
スプレッドシートの土日色分けはWEEKDAY関数と条件付き書式を組み合わせる
Googleスプレッドシートで土日に自動的に色を付ける設定は、WEEKDAY関数と条件付き書式を組み合わせることで簡単に実現できます。セル単位、行単位、列単位での柔軟な色分け設定により、カレンダーやスケジュール表、勤怠管理表など、様々な用途に対応できます。祝日リストとの連携や、Google Apps Scriptを活用した自動化により、より高度な休日管理システムの構築も可能です。
適切なテンプレートを作成し、チーム全体で共有することで、土日と平日の区別が明確になり、業務計画の精度向上と作業効率の改善を実現できるでしょう。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
FALSE関数の使い方:論理値を扱う基本関数をマスターしよう
Excel の FALSE関数は、論理値「FALSE」を返すシンプルな関数です。単体では使用頻度が低いものの、IF関数やAND関数などの論理関数と組み合わせることで、条件分岐や判定処理において重要な役割を果たします。本記事では、FALSE関…
詳しくみるBASE関数の使い方!10進数を任意の基数に変換する方法
Excelの BASE関数 は、10進数を2進数・8進数・16進数など任意の基数に変換できる便利な関数です。Excel 2013以降で利用でき、2から36までの基数に対応しています。プログラミングのデバッグ、ネットワークのIPアドレス計算、…
詳しくみるCEILING関数の使い方:エクセルで数値を指定単位で切り上げる方法
CEILING関数は、数値を指定した基準値の倍数に切り上げるエクセルの数学関数です。価格設定での端数処理、在庫管理での発注単位の調整、時間計算での15分単位への丸め、建築資材の必要数計算など、ビジネスの様々な場面で実用的な切り上げ処理を行う…
詳しくみるNOT関数の使い方:エクセルで条件を反転させる
エクセルで特定の条件を満たさないデータを抽出したり、条件分岐をさせたいと思ったことはありませんか?そんな時に役立つのが「NOT関数」です。NOT関数は、指定した条件を「ではない」と反転させる論理関数で、使いこなせばより複雑なデータ処理が可能…
詳しくみるスプレッドシートでコメントを活用するには?表示・追加・編集・削除からトラブル対処まで
スプレッドシートのコメント機能は、チームでの共同作業や個人のメモ管理に役立つ機能です。Googleスプレッドシートでセルにコメントを追加することで、データの補足説明や作業指示を効率的に共有できます。 本記事では、コメント機能の基本的な使い方…
詳しくみるスプレッドシートとChatGPTを連携して業務を自動化するには?API設定から実践的な活用方法まで徹底解説
GoogleスプレッドシートとChatGPTを連携することで、データ分析の自動化、文章生成、翻訳、要約など、従来は手作業で行っていた知的作業を大幅に効率化できます。売上レポートの自動作成、顧客フィードバックの感情分析、多言語対応の自動化など…
詳しくみる