【条件付き書式ルール】スプレッドシートで土日の文字色・背景色を変更する



特定の条件の時にセルのスタイルを変えたい場合は「条件付き書式ルール」を利用します。
条件を入力し対象セルの値と一致していれば発動し、セルや文字のスタイルを変化させることができます。

この記事でやれること


この記事では、Google Driveのスプレッドシートで日付を表示させたときに、土日の文字色や背景色を変更する方法を解説しています。勤怠の管理やスケジューリングに応用できますので、覚えておいて損はないと思います。
なお祝日の判定については長くなってしまいますので、以下の別記事を御覧ください。
祝日の記事はこの記事で解説する「条件付き書式ルール」を理解している前提で記載していますので、土日・祝日どちらも変えたい方や、条件付き書式ルールを把握していない方はまず当記事を読んでから祝日の記事を読むのをおすすめします。
スプレッドシートで祝日のセルの背景色を変える

条件付き書式ルールで文字色や背景色を変える

まず「特定の条件の時に背景色や文字の色を変える方法」を知ることから始めましょう。条件付き書式に詳しい方は見出し2の「土日だったらtrueを返すルールを作成する」まで飛ばしてしまって結構です。
ルールを適応したいセルを選択し、右クリックするとメニュー下部に条件付き書式…という項目が存在するのでクリックします。

 

右側に「条件付き書式設定ルール」というツールバーが表示されるので「新しい条件を追加」をクリック。

 

こちらが設定画面です。中央の「セルの書式設定の条件」で『どういう場合に色(スタイル)を変化させたいか』を指定します。
デフォルトだと「空白ではないセル」となっており、この例で言うとA2は空白ではなく日付が入っているため条件が満たされてスタイルが発動し、背景色が緑色になります。

セルの書式設定の条件」のプルダウンをクリックするとこのように簡易的な条件が出てきます。
しかしエクセルやスプレッドシートに多少なりとも慣れてる方にとってはかえって分かりづらいかと思います。そういう方は一番下の「カスタム数式」を使用しましょう。

 

先ほどの空白ではないセルをカスタム数式に置き換えると式は「 =NOT( ISBLANK(対象セル) ) 」で、入力するとこうなります。

これで「特定の条件の時に背景色や文字の色を変える方法」がわかったので次は「土日」の判定方法を調べてみます。

土日だったらtrueを返すルールを作成する

先ほど説明した「条件付き書式ルールのカスタム数式」とWEEKDAY関数を組み合わせると土日の背景色を変えることができます。

土日だったらtrueを返すルール

WEEKDAY関数を使用すると、
土曜「 =WEEKDAY(A1)=7
日曜は「 =WEEKDAY(A2)=1
といった形で判定ができます。
土曜の例でいうと、「A1に入力されている値が日付であり、かつ土曜日」であればtrueと判定されます。

WEEKDAY関数

上の式・関数の解説なので、今やっているスプレッドシートを変えれれば良いやという方は読み飛ばして下さい。
曜日の判定にはWEEKDAY関数を使用します。
WEEKDAY関数は日付を渡すと数値を返す関数です。
WEEKDAY – ドキュメント エディタ ヘルプ

構文
WEEKDAY(date, [type])
date – 曜日を検証する日付です。日付を含むセルへの参照、日付の種類を返す関数、または数値を指定します。
type – [省略可 – デフォルトは 1] – 曜日を表すのに使用する番号方式を数値で指定します。デフォルトでは、日曜日を先頭にして数えます(日曜日 = 1)。
type が 1 の場合、曜日を日曜日から数え始めて日曜日の値を 1 とするため、土曜日の値は 7 となります。
type が 2 の場合、曜日を月曜日から数え始めて月曜日の値を 1 とするため、日曜日の値は 7 となります。
type が 3 の場合、曜日を月曜日から数え初めて月曜日の値を 0 とするため、日曜日の値は 6 となります。

第二引数を省略した場合の返り値

第一引数 返り値
日曜 1
月曜 2
火曜 3
水曜 4
木曜 5
金曜 6
土曜 7

第二引数を指定した場合の返り値

第二引数は省略可能で、使用する機会はあまり無いと思いますが対応表を置いておきます。デフォルトは1となっています。
基本的には第一引数だけで運用して問題無さそうです。

WEEKDAY関数を使う時の注意点

第一引数で自動変換を行わない点に注意が必要です。
例えば2015年1月5日を渡したい場合に
WEEKDAY(“2015/1/5”) と入力すると正常な返り値である 2 が返ってきますが、
WEEKDAY(2015/1/5) と入力すると「 2015 ÷ 1 ÷ 5 = 403 」という除算が行われた上で
WEEKDAY(403) と解釈され、1901年2月6日の曜日である水曜日の返り値 4 が帰ってきてしまいます。
なぜ403が1901年2月6日を表すかというとスプレッドシートやエクセルの日付型は1900年1月0日(1899年12月31日)を起点としており、そこから403日後が1901年2月6日なのです。
1900年1月0日から42009日後2015年1月5日なので、WEEKDAY(42009) と値を渡すと2015年1月5日の返り値 2 が返ってくることになります。
今回の条件付き書式ルールで使用する場合は日付型が入っている他のセルを参照しますので問題はありませんが、
通常の関数として使用する場合は注意して下さい。

「条件付き書式ルールで背景色を変える」と「土日の判定」を組み合わせる

では「条件付き書式ルール」の「カスタム数式」とWEEKDAY関数を組み合わせて、土日を判定してみましょう。
分かりやすいように土曜・日曜で別々のルールとして設定します。

日曜の設定

1.セルを右クリックし、「条件付き書式」をクリック
2.「新しい条件を追加」をクリック
3.「範囲に適用」から適用する範囲を設定します。(例 A2:A32 )
4.「セルの書式設定の条件」をカスタム数式に設定。
5.「値または数式」に「 =WEEKDAY(A2)=1 」と入力します。(日曜だった場合にスタイルを変更する)
6.「書式設定のスタイル」からデザインを整えます。文字色・背景色・太字・斜体・取り消し線が設定できます。
7.「完了」を押して保存

土曜の設定

保存したらもう1度「新しい条件を追加」をクリックし、先程の手順を繰り返します。
土曜の場合は先程の手順中の5の式を「 =WEEKDAY(A2)=7 」として上記の手順を繰り返します。

祝日も追加する

以上で土日の判定・色変更の解説は終了です。
祝日を判定するのは少し面倒になってきますのでこちらを参考にして下さい。
スプレッドシートで祝日のセルの背景色を変える