Googleスプレッドシートを活用する上で、データの視認性を高めることは業務効率に直結する重要な要素です。
標準的な条件付き書式でも、特定の数値以上や指定したテキストを含むセルの色を変えることは可能です。
しかし、業務で扱うデータが複雑になるにつれ、標準機能だけでは対応できないケースが増えてきます。
そこで活用したいのが、カスタム数式機能です。
この機能を使いこなすことで、複数の条件を組み合わせたり、他のセルの値を参照して書式を変更したりすることが可能になります。
本記事では、カスタム数式を用いて複雑な条件でセルや行の色を動的に変えるための具体的な手法を紹介します。
条件付き書式のカスタム数式とは
Googleスプレッドシートの条件付き書式には、あらかじめ「次より大きい」「テキストに次を含む」といったプリセットが用意されています。
これらは設定が簡単である反面、あらかじめ定義された単純なルールにしか対応できません。
一方で「カスタム数式」を選択すると、スプレッドシートの関数をそのまま条件として利用できるようになります。
数式の評価結果が「TRUE(真)」になる場合にのみ、指定した書式が適用されるという仕組みです。
この自由度の高さこそが、カスタム数式の最大のメリットです。
例えば、在庫数が一定以下かつ発注フラグが立っていない場合のみ色を付けるといった複雑な処理が容易になります。
また、セルの値そのものではなく、隣のセルの値に基づいて自分自身のセルの色を変えるといった操作も可能です。
カスタム数式をマスターすれば、視覚的に状況を把握できる高度なダッシュボードを構築できるようになります。
カスタム数式の基本設定手順
まずは、カスタム数式をどこから設定するのか、基本的な操作手順を確認しておきましょう。
書式を適用したいセル範囲をドラッグして選択します。
メニューバーの「表示形式」をクリックし、「条件付き書式」を選択します。
画面右側に表示される「条件付き書式設定ルール」パネルで、「セルの書式設定の条件」のプルダウンを開きます。
リストの一番下にある「カスタム数式」を選択します。
「値または数式」という入力欄に、=から始まる数式を入力します。
最後に、適用したい背景色やフォントの色を設定して「完了」をクリックします。
絶対参照と相対参照の使い分けが成功の鍵
カスタム数式を記述する際に最も多くの人がつまずくポイントが、セルの参照方法です。
数式内でセルを指定するとき、$記号を付けるか付けないかで挙動が大きく変わります。
これを間違えると、意図しないセルに色がついてしまったり、全く反応しなかったりする原因になります。
相対参照(A1)の場合
=A1>100のように、$を付けずに記述すると、選択範囲内の各セルに対して数式が相対的に適用されます。
例えば、B2セルにこの書式が適用される際、スプレッドシートは内部的に「自分自身が100より大きいか」を判定します。
個々のセルの値に応じて個別に色を変えたい場合は、この相対参照を使用します。
絶対参照($A$1)の場合
=$A$1>100のように、行列ともに$を付けると、どのセルを判定するときも常に特定のセルだけを参照します。
特定のスイッチ用セルの値によって、範囲全体の書式を一括で切り替えたい場合に便利です。
複合参照($A1)の場合
これがカスタム数式で最も頻繁に使われる形式です。
列にだけ$を付けることで、「特定の列の値を参照して、行全体のプロパティを制御する」ことが可能になります。
例えば、A列に「完了」と入力されたら、その行(A列からZ列まで)の色をすべてグレーにするといった設定ができます。
実践的なカスタム数式の例
ここでは、実務でよく使われる具体的なカスタム数式のパターンをいくつか紹介します。
1. 複数の条件をすべて満たす場合に色を変える(AND関数)
「数値が100以上」かつ「ステータスが未着手」の場合にセルを強調したいときは、AND関数を使います。
数式例:=AND($A1>=100, $B1="未着手")
このように記述することで、複数の列にまたがる条件を一つのルールで管理できます。
2. いずれかの条件を満たす場合に色を変える(OR関数)
「期限が過ぎている」または「優先度が最高」のどちらかに該当する場合に色を付けたいときは、OR関数を使います。
数式例:=OR($C1<TODAY(), $D1="最高")
TODAY()関数を組み合わせることで、日付に基づいた動的なアラート設定が可能になります。
3. 土曜日と日曜日の行に色を付ける(WEEKDAY関数)
カレンダー形式の表において、土日の行を自動で色分けすると視認性が格段に向上します。
数式例(土曜):=WEEKDAY($A1)=7
数式例(日曜):=WEEKDAY($A1)=1
A列に日付が入っている場合、この数式を設定した範囲内の土日の行に自動で色が付きます。
テキスト操作関数を組み合わせた高度な条件設定
数値だけでなく、文字列の状態を判断して書式を変えることも可能です。
標準機能の「テキストに次を含む」では不十分な、より厳密な判定を行いたい場合に有効です。
特定の文字で始まるセルを特定する
例えば、製品コードが「PROD-」で始まるセルだけを目立たせたい場合を考えます。
数式例:=LEFT(A1, 5)="PROD-"
LEFT関数で先頭の文字数を指定して抽出することで、部分一致よりも正確なフィルタリングが可能です。
重複データをチェックして色を付ける
リストの中に同じ値が複数存在する場合に、重複しているセルを赤く表示させる手法です。
数式例:=COUNTIF($A$1:$A$100, A1)>1
COUNTIF関数を使って、範囲内に自分と同じ値が2つ以上存在するかどうかをカウントしています。
データの入力ミスをリアルタイムで検知するために非常に役立つ設定です。
カスタム数式を利用する際の注意点とトラブルシューティング
カスタム数式は強力ですが、正しく設定しないとパフォーマンスの低下や表示の不具合を招くことがあります。
| 発生する問題 | 主な原因 | 解決策 |
|---|---|---|
| 色が全く付かない | 数式の先頭に「=」が抜けている | 数式の始まりが「=」であることを確認する |
| ずれたセルに色が付く | 範囲の起点と数式の参照セルが一致していない | 範囲がA1からなら数式もA1を参照するように修正する |
| 動作が非常に重い | 広範囲に複雑な数式を適用しすぎている | 適用範囲を必要最小限に絞る |
| エラーが出る | 数式内で参照している別シートの記述が不正 | INDIRECT関数を使用して別シートを参照する |
特に「範囲の起点」と「数式内のセル番地」の一致は重要です。
条件付き書式の適用範囲が「B2:E100」であれば、数式内で最初に参照するセルも「B2」を起点にする必要があります。
ここがずれていると、スプレッドシートはすべての判定を一行ずらして計算してしまいます。
また、カスタム数式の中で別シートのセルを直接参照することはできません。
他のシートのデータを条件に使いたい場合は、INDIRECT("シート名!A1")といった形式で記述する必要があります。
まとめ
Googleスプレッドシートのカスタム数式は、標準の条件付き書式では到達できない高度なデータ表現を可能にします。
ANDやORといった論理関数、COUNTIFやWEEKDAYといった集計・日付関数を組み合わせることで、活きたデータを可視化できるようになります。
設定の際は、絶対参照と相対参照の使い分け、そして適用範囲と数式内のセル番地の整合性に注意してください。
まずはシンプルな重複チェックや行全体の色付けから試し、徐々に複雑なロジックへと応用していくのが上達の近道です。
今回紹介したテクニックを活用して、チーム全員が一目で状況を判断できる、使いやすいスプレッドシートを作成してみてください。
