Googleスプレッドシートはブラウザ上で利用できるエクセルのようなアプリですが、データ共有ができるため共同作業にとても便利です。ウェブ制作においても、各ページのメタタグをまとめたり、進捗などタスク管理をまとめたりと、様々なシーンで利用できると思います。無料で使えますし、Googleアカウントは持っている人も多いので、クライアントとのデータ共有ツールとしてお勧めしやすいですね。
利用していくにつれて、「セルの内容によって色を変えたい」とか、もっと見やすくするためにあれがやりたいこれがやりたいが出てきます。私の場合、特に「条件に合わせてセルの書式を変更したい」ことが多いです。スプレッドシートは人気アプリのため、検索するとやり方が沢山出てきます。そしてこういった「○○の時に色を変えたい」だとかは「条件付き書式」という機能を利用すればできることはすぐに分かります。しかし、「やる方法は分かったけど参考の条件式とはちょっと違う、しかし条件式の書き方が分からないので書き換えができない」ことがしばしば。
私のようにエクセルも普段使わないと、条件式の書き方がいまいち分からない人も多いのではないでしょうか。そんな、Googleスプレッドシートやエクセル超初心者へ向けた、条件式の使い方をまとめた記事です。といいつつ、私自身が初心者で備忘録的なところもあるため、調べながら少しずつまとめていきたいと思います。
目次
Googleスプレッドシートの条件付き書式について
スプレッドシートでは手動で色や背景色などの書式変更はもちろんできますが、手間を省くために「○が△の時に、□の書式を×に変えたい」という場合があります。それを実現できるのが「条件付き書式」という機能です。
指定した範囲に対して条件付きで書式を設定できるわけですが、逆に言えば「適用範囲」と「条件」、「書式」を指定する必要があります。
- 適用範囲
- 「どのセルに対して書式を適用するか」という、条件付き書式を設定する範囲です。条件付き書式を設定する時に選択しているセルが初期値で挿入されますが、範囲を直接指定することができます。また、複数の範囲も指定することができます。
- 条件
- 「どういう場合に適用するか」という、書式を設定する条件です。該当のセルが「0より大きい場合」や「今日の日付の場合」など、デフォルトで用意された条件でも設定できますし、自分で数式を入力できる「カスタム数式」もあります。
- 書式
- 条件に合ったセルに対して、どのような書式変更を行うかという設定になります。文字色を変えたり、背景色を変えたり、この辺は感覚で設定できますね。
条件付き書式の設定方法
Googleスプレッドシートの「条件付き書式」の設定方法です。これだけ見れば簡単なんですが、範囲や条件が複雑になるにつれ難しくなってくるんですよね。
- 1)書式設定の対象となるセル範囲を選択します。(後で変更することもできます)
- 2)右クリックを押し「条件付き書式…」をクリック
- 3)右側に「条件付き書式設定ルール」が表示されるので、各項目を設定します。
→ 「範囲に適用」・・・どこを変更するかの適用範囲です。
→ 「セルの書式設定の条件…」・・・どういう場合に書式を適用するかの条件です。
→ 「書式設定のスタイル」・・・どのように変更するかの書式です。 - 4)青い「完了」ボタンをクリックします。
セルの適用範囲の指定
適用範囲の設定は、条件付き書式を設定した時に選択していた範囲がデフォルトで入っています。複数の範囲を指定したい場合は工夫(といっていいのか分からないけど)が必要です。初心者だからかここで既に躓きました。他にも見つけたら追加したいと思います。
1つのセルに対して適用:A1
「A1」の場合、「A」列の「1」行目を指定します。簡単ですね。
同じように「B」列の「5」行目を指定したい場合は「B5」と記述します。
セルの範囲に対して適用:A1:B2
「ここからここまでのセル」といった指定を行いたい場合は「:」(コロン)を使います。
「A1:B2」の場合、「A1」から「B2」までのセルすべてに対して適用するということになります。つまり「A1」、「A2」、「B1」、「B2」が適用範囲になるということですね。
複数のセルに対して適用:A1,B2
「ここセルと、ここのセル」といった指定を行いたい場合は「,」(カンマ)を使います。
「A1,B2」の場合、「A1」と「B2」の2つのセルに対して適用するということになります。
上の「セルの範囲に対して適用」と合わせて、「A1:A3,C1:C3」といった書き方も可能です。この場合は、「A1」~「A3」のセルと「C1」~「C3」のセルに対して適用ということになります。
特定の列の行全体に対して適用:A:B
行が増えても特定の列に対して行全体を範囲指定したい場合、数字は入れず「A:B」と入力すると「A列」~「B列」までの行全体を範囲指定できます。
1列だけ行全体を指定したい場合は「A」でいいのかと思いきや反応せず、「A:A」で反応しました。
一度「完了」を押すと「A1:A1000」のように範囲が変更されています。シートの最大値が表示されるようですが、行を追加してもきちんと「A1:A1001」のように自動で切り替わっています。
特定の行の列全体に対して適用:1:2
今度は列を加えても特定の行に対して列全体を範囲指定したい場合、列の英字は入れず「1:2」と入力すると「1行」~「2行」の列全体を範囲指定できます。
こちらも、1行だけ列全体を指定したい場合は「1」ではなく、「1:1」とすることで、1行目の全体の列を範囲指定できましたが、「完了」すると範囲が「A1:AC1」などのように書き変わります。
条件の指定①:デフォルト機能
Googleスプレッドシートでは、デフォルト機能として条件を選択できるようになっています。
これらの条件は「該当のセル」に対して判別されます。つまり「適用範囲のセル」に対して、条件にマッチしているセルの書式が設定されるといった仕組みです。デフォルトにない条件を指定したい場合や、より複雑な条件を設定したい場合は「カスタム数式」を選択して、自分で条件式を入力する必要があります。
セルの値の内容に対して条件分岐する
セルの値がどのような内容となっているかによって書式設定するかの条件判別になります。
- 空白セル
- セルの値が、空白(何も入っていない)の場合に書式適用。
- 空白ではないセル
- セルの値が、空白ではない(何か入っている)の場合に書式適用。
- 次を含むテキスト
- セルの値に、入力値に入れた値が含んでいる場合に書式適用。
入力欄に「Good」を入れた場合、「This is Good」は適用され、「This is Bad」には適用されません。 - 次を含まないテキスト
- セルの値に、入力値に入れた値が含んでいない場合に書式適用。
入力欄に「Good」を入れた場合、「This is Good」には適用されず、「This is Bad」は適用されます。 - 次で始まるテキスト
- セルの値が、入力値に入れた値で始まる場合に書式適用。
入力欄に「Good」を入れた場合、「This is Good」には適用されず、「Good Luck」は適用されます。 - 次で終わるテキスト
- セルの値が、入力値に入れた値で終わる場合に書式適用。
入力欄に「Good」を入れた場合、「This is Good」は適用され、「Good Luck」には適用されません。 - 完全一致するテキスト
- セルの値が、入力値に入れた値と同じ場合に書式適用。
入力欄に「Good」を入れた場合、「Good」は適用され、「This is Good」には適用されません。
日付のセルに対して条件分岐する
主に日付のセルを対象とする場合に利用すると思います。動的な要素(今日の日付)などにも対応しています。セルのデータ型が日付じゃないとうまくいかないと思いきや、テキストとして「2月6日」としても反応しました(二月六日では反応しませんでした)。
また、表示形式が「2018/02/06」でも「2018年2月6日(火)」でも反応したので、表示形式は関係ないと思います。
- 日付
- セルの日付がどのような場合に適用するかを選択できます。日付条件を選択すると、もう一つ選択肢が出てきます。
対象となる選択肢として、「本日」、「明日」、「昨日」、「過去1週間」、「過去1ヵ月以内」、「過去1年以内」、「正確な日付..」から選ぶことができます。
「本日」を選べば「セルの日付」が「今日」の場合に書式を適用…といった具合です。
「正確な日付」では、日付を入力すれば特定の日付に対して書式を設定することができます。数式については後ほど。。。 - 次より前の日付
- セルの日付が比較対象と比べて過去の日付の場合に適用されます。「日付」と同じように「本日」、「明日」などの比較対象を選択することができます。「本日」を利用して、過去の日付のセルはテキストの色を変えるなどといったこともできますね。
また、「正確な日付…」の入力欄に数式を入れることで、「特定のセルの日付より前の場合」に書式を変えるということも可能になります。
例として「A列(A1~A5)」の日付が隣の「B列」の日付より過去の時に色を付けたい、といった場合、範囲を「A1:A5」として、「正確な日付」の入力欄には「=B1」と入れればいいわけです。 - 次より後の日付
- セルの日付が比較対象と比べて未来の日付の場合に適用されます。これも「次より前の日付」同様、「本日」、「明日」などの比較対象を選択することができます。
セルの値を比較して条件分岐する
セルの値が対象と比較してどのような場合に適用するかを設定できます。
比較対象は「5」など固定値を入れることもできますし、「=B1」や「=$B$1」など、数式を利用して特定のセルに対して比較をすることができます。
- 大小を比較して書式設定(次より大きい、以上、次より小さい、以下)
- 「次より大きい」、「以上」、「次より小さい」、「以下」は、比較対象と比べて大きい(または小さい)かによって条件分岐することができます。「以上」は「>=」、「より大きい」は「>」、違いは対象を含むか含まないかですよね。
比較対象に「0」を入れてマイナスの値が入っているセルを赤字にしたり、数式を入れれば前のセルと比べて大きくなっている場合に青文字にしたりといったことが可能です。 - 等しいかどうかを比較して書式設定(次と等しい、次と等しくない)
- 「次と等しい」や「次と等しくない」は、比較対象と比べて、同じ値(もしくは違う値)が入っている場合に適用させます。
数式を利用して、特定のセルの合計値(=A1+A2)と違うって場合にハイライトするなんてこともできまね。とにかく複雑な表の場合に使う条件でしょうか。 - 上限と下限から比較して書式設定(次の間にある、次の間にない)
- 「次の間にある」や「次の間にない」は、上限と下限を設定することができ、その比較対象と比べて、間にある(またはない)かどうかによって適用されます。
試してみると、○○以上△△以下という設定のようで、対象の値も含むようです(間にあるって言い方だと、親指は親指から薬指の間にあるみたいな、ちょっと違和感を感じなくもないですが)。
条件の指定②:カスタム数式
カスタム数式は自分で数式を入力し条件を設定できる機能です。検索してヒットしたサンプルを少し書き換えたら出来そうってとこまで行っても、私はこの数式の書き方が分からないため苦戦してしまいました。「Googleスプレッドシート 書式 書き方」と検索しても、基本的なことがなかなか出てこないんですよね。
数式の基本①:「=」(イコール)から始まる
関数や何やらやってる人は分かるのかもしれませんが、まずはここから。私はこうゆうもんだと覚えました。
「=(数式)」と書くようで、どうやら(数式)が当てはまる時に適用されるらしいと。セルに対して代入って感じなんですかね。
数式の基本②:セルの値を参照する「A1」と「$A$1」のドルマークの意味
数式においてA列の1行目の値を参照する場合、「A1」と書けばよさそうですが、ドルマークの入った「$A$1」や「$A1」なんてものを見たことないでしょうか。この「A1」と「$A$1」では参照先が異なってきます。
以下の「B1:B2」(B1とB2)の適用範囲に設定し、条件付き書式を行ったとしましょう。
A列の値を参照し、それより大きければ文字を赤色にするとします。つまりBがAより大きければ、赤色にする、ということですね。
A | B | |
---|---|---|
1 | 50 | 100 |
2 | 70 | 60 |
まずは「A1」のドルマークがついていない場合、数式は「=A1<B1」。
「A1」は相対参照と呼ばれ、「基準となるセル」から見て「A1の位置」の値を取得します。
この時、基準となるセルは対象のセル範囲と関係していおり、範囲が「B1:B2」の場合は「B1」が基準点となります。
つまり「B1からA1の位置」なので、左1個となりの値を参照することになります。
そのため「B1」は「A1」と比較し、「B2」は左一個となりの「A2」を比較します。
A | B | |
---|---|---|
1 | 50 | 100 |
2 | 70 | 60 |
次には「$A$1」のドルマークがついている場合、数式は「=$A$1<B1」。
これは絶対参照と呼ばれ、常にその位置にあるセルを参照します。
そのため「B1」は「A1」と比較し、「B2」も「A1」を比較します。
A | B | |
---|---|---|
1 | 50 | 100 |
2 | 70 | 60 |
この時、「=$A$1<B1」ではなく、「=$A$1<$B$1」といった具合に「B1」にも「$」ドルマークを付けた場合、
「B1」も「B2」も「B1はA1より大きい」ので赤文字になります。
では、「$A1」や「A$1」のように、列や行の片方だけにドルマークを付けることもできます。
「$A1」の場合、範囲がB~Cであっても「A列」から参照します。B1はA1、B2はA2、C1もA1、C2もA2といった具合です。
「A$1」の場合、常に1行目を参照するので、B1はA1、B2はA1、C1はB1、C2もB1といった具合です。
数式の基本③:条件がTRUEの時に書式設定
今回は条件付き書式設定の数式になるため、「対象のセル」が「数式」が成り立っているときに書式設定が行われます。
適用範囲を「A1」、条件をカスタム数式で「=A1=0」と入れた場合、「A1」=「0」の結果が成り立つ場合になりますので、「A1」に入力された値が0なら反映され、3や5など0以外の時は反映されないといった具合です。
数式の基本④:比較演算子で値を比較する
書式設定の対象となるセルの値と比較する場合はデフォルトの「次より大きい」などを選択すればいいですが、特定のセルと特定のセルを比較した時に適用したい場合、カスタム数式で行う必要があります。
ここでは、「A列」と「B列」を比較して、「A列の方がB列より大きい」場合に「C列の文字色を変える」ということを実行してみます。
テーブルはこのような感じ。
A | B | C | |
---|---|---|---|
1 | 30 | 70 | テキスト |
2 | 70 | 30 | テキスト |
3 | 50 | 50 | テキスト |
範囲は「C列」なので、「C:C」とします。「C:C」はC列に対して行全体をしてしており、数字を入れて「C1:C3」とした場合は「C1」~「C3」という意味ですね。
次に、条件は「カスタム数式」を選択し、式は以下のようになります。
- =A1>B1
- まずは「=」から始めます。
- A列とB列の値を取得しますが、同じ行の値を参照したいので相対参照(ビックリマークがつかない)になります。(C2もC3も常にA1とB1との比較を行いたい場合は「$A$1」や「$B$1」とします)
- 範囲はC列の全体行を指定していますが基準は「C1」になるので、「A1(2つ左の値)」と「B1(左隣の値)」を参照することで、「C2」は「A2」と「B2」、「C3」は「A3」と「B3」を比較することになります。
- 次に、「B列よりA列の方が大きい」場合を記述する必要がありますが、「比較演算子」を利用します。「>」は左右を比較し、左>右だと、左の方が大きいということになります。
あとは条件がマッチした特に文字色を赤色にするなど書式設定を行えば完了です。
値を比べる比較演算子は「>」以外にもいろいろあります。PHPやJavascriptをやっていると何となくわかりますが、等しくないが「!=」ではなく「<>」でした。
> | より大きい 「A>B」:AはBより大きい |
---|---|
>= | 以上 「A>=B」:AはB以上 |
< | より小さい 「A<B」:AはBより小さい |
<= | 以上 「A<=B」:AはB以下 |
= | 等しい 「A=B」:AはBと等しい |
<> | 等しくない 「A<>B」:AはBと等しくない |
数式の基本⑤:論理関数を利用して条件を組み合わせる
複雑な条件になってくると、「条件1かつ条件2」や、「条件1または条件2」のときに適用したい場合があります。このように条件を組み合わせたい場合、論理関数を利用します。PHPでいうところの「A == B && C == D」や「A == B || C == D」ですね。
これはGoogleの方で用意している関数で、Googleのヘルプページにてまとめられています。
- AND(①,②):①かつ②の場合
- 2つの条件が全て成り立つ場合にTRUEを返す(書式が適用される)には、「AND()」関数を利用します。ANDの後に()をつけて、条件をカンマで区切ります。「AND(①,②,③)」のようにカンマでいくつもの条件を加えることができます。
「A1の値がB1の値より大きい(A1>B1)」かつ「A1の値が0ではない(A1<>0)」という条件を指定したい場合は、「=AND(A1>B1,A1<>0)」といった具合です。 - OR(①,②):①または②の場合
- 2つの条件のうち、どちらかが成り立つ場合にTRUEを返す(書式が適用される)には、「OR()」関数を利用します。使い方はANDと同様、後ろに()をつけて条件をカンマで区切り、複数の条件を加えることが可能です。
「A1の値がB1の値より大きい(A1>B1)」または「A1の値が0ではない(A1<>0)」という条件を指定したい場合は、「=OR(A1>B1,A1<>0)」です。
メモ
空白の判定は
ISBLANK()