【スプレッドシート】条件付き書式で数式を使う方法

作りながら学ぶ!

シリーズ連載を通して、勤怠管理システムを作りながらスプレッドシートを体系的に学ぶ方法を解説。


こんにちは、たま(@closuppo)です!

今回は「第10回:条件付き書式で数式を使う方法」についてお伝えします。

指定した範囲に対して数式を使って条件を決め、その条件を満たしたセルの背景や文字を自動で色付けされるようにしましょう。

タマ

全シリーズは以下シートにまとめています


※目次をクリックすると
タイトルの先頭まで移動します(↓)

目次



前回記事のおさらい

前回記事では、背景色・文字色・太字・枠線を変更して表を見やすくデザインする方法をお伝えしました。

前回の記事はこちら

今回は、その続きで 【条件付き書式】の機能を使って、数式の条件を満たしたセル背景を自動で色付けされるようにする方法を解説します。

サンプルシート

サンプルシートのコピー方法の解説はこちらです

タマ

サンプルシートを用意しています

のでコピーして参考にしてください


まずはじめに

【条件付き書式】では、数式(関数)を条件に指定することができます。

今回は、COUNTIF関数とINDIRECT関数を組み合わせて【条件付き書式】を設定してみましょう。

まずは、関数の基礎から見ていきます。


COUNTIF関数

COUNTIF(カウントイフ)関数とは、指定した条件に合うデータを検索し、検索したデータに一致するセルの個数を求めることができる関数です。

COUNTIF関数の構文はこちら。

=COUNTIF(❶範囲,❷検索条件)

関数名の後の括弧「 () 」内の❶❷の引数(ひきすう)を指定することで、条件に一致する項目のセルの個数を返してくれます。

例えば、下図のようにセル範囲「C:C」に含まれる「合格」に一致する文字を求めることができます。

spreadsheet-countif04
=COUNTIF( C:C, "合格")

COUNTIF関数の基礎については以下ページに詳しくまとめています。


INDIRECT関数

INDIRECT(インダイレクト)関数とは、文字列を数式に変換してくれる関数です。

INDIRECT関数の構文はこちら。

=INDIRECT(❶参照文字列)

関数名の後の括弧「 () 」内の❶の引数(ひきすう)を指定することで、対象のセルの文字列を数式に変換してくれます。

例えば、下図のようにセル「B1」に入力された文字列をセル範囲として参照する使い方をします。

spreadsheet-formatting01

こちらは、セルB1に「B4:B6」と文字列がされており、セル「B2」にはSUM関数とINDIRECT関数を組み合わせた以下の数式が入力されています。

=SUM(INDIRECT(B1))

その結果、セル「B2」にはセル範囲「B4:B6」の合計値が反映されました。

このようにINDIRECT関数でセルを参照することで、文字列を数式に組み込むことができます。


日付を条件に背景色を変更する

日付を条件に、カレンダー行が自動でグレーに変更されるようにしていきましょう。

条件となる日付は設定シートのセル範囲「B3:G3」に入力した日付を参照します。

spreadsheet-formatting02

【条件付き書式】を設定する勤怠入力シートのセル範囲「A2:H32」を選択した状態で、表示形式から条件付き書式を選択してください。

spreadsheet-formatting03

【条件付き書式設定ルール】の各項目を設定していきましょう。

範囲に適用はセル範囲が選択されているのでこのままで大丈夫です。

セル書式設定の条件…で【カスタム数式】を選択し以下の数式を入力してください。

=COUNTIF(INDIRECT("'設定'!B3:G3"),$A2)=1
spreadsheet-formatting04
タマ

こちらの数式について詳しく

解説していきます

COUNTIF関数の構文はこちら。

=COUNTIF(❶範囲,❷検索条件)

【❶範囲】は、INDIRECT関数で設定シートを参照します。

INDIRECT関数の構文はこちら。

=INDIRECT(❶参照文字列)

【条件付き書式】で別シートからセル値を参照するにはINDIRECT関数を使用する必要があり、対象となるセル範囲を 「 INDIRECT() 」 で参照します。

COUNTIF関数の【❶範囲】にINDIRECT関数を組み込むとこうなります。

spreadsheet-formatting86

【❷検索条件】はカレンダー日付の列「$A2」と指定してください。

=COUNTIF( INDIRECT("'設定'!B3:G3") , $A2)

行番号(アルファベット)の左横に「$」を追加し【複合参照】にすることで、B列のそれぞれのセルが検索条件として適用されます。

その結果、設定シートに入力した日付と一致する日付は【1】とカウントされます。

COUNTIFの後に「=1」を付け加えることで、セル範囲「'設定'!B3:G3」で設定した日付に一致する個数が「1」に等しい。という条件になります。

【条件付き書式】に設定する完成した数式はこうなります。

spreadsheet-formatting87

書式設定のスタイルで【塗りつぶし】アイコンより【暗いグレー1】を選択し完了ボタンをクリックしたら完成です。

spreadsheet-formatting94

設定シートの日付を変更し、別日でも条件付き書式が適用されるか試してみましょう。


曜日を条件に背景色を変更する

曜日を条件に、カレンダーの行が自動でグレーに変更されるようにしていきましょう。

日付の条件付き書式設定と同じように、COUNTIF関数にINDIRECT関数を組み合わせて【条件付き書式】を設定をします。

【条件付き書式設定ルール】から+ 条件を追加をクリックしてください。

spreadsheet-formatting08

【条件付き書式設定ルール】の各項目を設定します。

範囲に適用にセル範囲「A2:H32」を指定してください。

セル書式設定の条件…で【カスタム数式】を選択し以下の数式を入力してください。

=COUNTIF(INDIRECT("'設定'!4:4"),$B2)=1
spreadsheet-formatting09

こちらは、INDIRECT関数で設定シートの4行目の範囲を指定しています。

COUNTIFの後に「=1」を付け加えることで、セル範囲「'設定'!4:4」で設定した曜日に一致する個数が「1」に等しい。という条件になっています。

書式設定のスタイルで【塗りつぶし】アイコンより【暗いグレー1】を選択し完了ボタンをクリックしたら完成です。

spreadsheet-formatting88

設定シートの曜日を変更し、別の曜日でも条件付き書式が適用されるか試してみましょう。


まとめ

Googleスプレッドシートで【条件付き書式】の機能を使って、条件を満たしたセル背景を自動で色付けされるようにする方法についてお伝えしました。

条件付き書式を使いこなせば、グラフを使わなくてもデータの状況が一目で分かったり、見落としを防止することができます。

手作業する手間が省け格段に作業効率がアップしますし、業務改善効率化に大きく役立つので、ぜひ使い方を覚えてください。

次回は、VLOOKUP関数を使って別シートから値を参照する方法についてお伝えします。