• 作成日 : 2025年9月17日

スプレッドシートの条件付き書式カスタム数式とは?使い方と関数・条件を完全解説

Googleスプレッドシートの条件付き書式の標準機能では物足りない。もっと複雑な条件でセルを色分けしたい。そんな時に強力な味方となるのが「カスタム数式」です。複数の条件を組み合わせたり、他のセルの値を参照したり、関数を使った動的な条件設定が可能になります。

本記事では、Googleスプレッドシートの条件付き書式におけるカスタム数式の仕組みから、実践的な使い方、利用できる関数や条件の具体例までを、わかりやすく解説します。

スプレッドシートの条件付き書式のカスタム数式とは

条件付き書式のカスタム数式は、数式の評価結果がTRUE(真)となったセルに書式が適用される仕組みです。標準の条件設定では「次より大きい」「テキストを含む」といった単純な条件しか設定できませんが、カスタム数式を使えば、複雑なビジネスロジックに基づいた書式設定が可能になります。

例えば、「売上が目標の80%以上なら黄色、100%以上なら緑色」といった段階的な評価や、「期限が3日以内かつ未完了のタスクを赤色で強調」といった複合条件も簡単に実現できます。さらに、他のセルの値を参照して「A列が『重要』ならその行全体を強調表示」といった、行や列をまたいだ条件設定も可能です。

カスタム数式は、IF、AND、OR、VLOOKUP、さらにはREGEXMATCHなどの多くの関数を利用できます。(一部の配列関数などは使えない場合があります。)

参考:Google スプレッドシートで条件付き書式ルールを使用する

なぜカスタム数式が必要なのか

実務では、単一の条件だけでなく、複数の要素を考慮した判断が必要になることが多々あります。例えば、在庫管理では「在庫数が発注点以下」かつ「リードタイムが長い商品」を優先的に発注する必要があります。このような複合的な判断を視覚的に表現するには、カスタム数式が不可欠です。

また、データの関連性を表現する場合にも有効です。売上データと目標値が別々の列にある場合、達成率を計算して色分けすることで、パフォーマンスを一目で把握できます。経費精算では、承認者のレベルに応じて金額の閾値を変えるといった、動的な条件設定も可能になります。

さらに、カスタム数式を使えば、メンテナンスも容易になります。条件の閾値を別のセルで管理し、そのセルを参照する数式を作成すれば、閾値の変更時に数式を修正する必要がなくなります。これは、頻繁に基準が変わる業務において特に重要です。

カスタム数式の仕組み

カスタム数式は、適用範囲の各セルに対して評価され、TRUEを返したセルに指定した書式が適用されます。ここで重要なのは、数式内でのセル参照の扱い方です。

絶対参照($A$1)を使用すると、すべてのセルで同じセルを参照します。一方、相対参照(A1)を使用すると、適用範囲内での相対的な位置関係に基づいて参照先が変化します。この仕組みを理解することが、効果的なカスタム数式作成の第一歩です。

例えば、B2:B100の範囲に条件付き書式を適用する場合、数式=$A2=”重要”は、B2セルではA2を、B3セルではA3を参照します。列を固定($A)して行を相対参照(2)にすることで、「同じ行のA列」を参照する動的な条件を作成できるのです。

カスタム数式の使い方

基本的な設定手順

カスタム数式を使った条件付き書式の設定は、以下の手順で行います。

まず、書式を適用したいセル範囲を選択します。単一のセル、行、列、または任意の範囲を選択できます。次に、メニューバーから「表示形式」→「条件付き書式」を選択すると、画面右側に条件付き書式の設定パネルが表示されます。

「セルの書式設定の条件」のドロップダウンメニューから「カスタム数式」を選択します。すると、数式入力欄が表示されるので、ここに条件となる数式を入力します。数式は必ず「=」で始まり、TRUE/FALSEを返すように作成します。

最後に、条件がTRUEの場合に適用する書式を設定します。背景色、文字色、太字、斜体、取り消し線など、様々な書式を組み合わせることができます。設定が完了したら「完了」ボタンをクリックして適用します。

単一セルの条件設定

最も基本的な使い方は、各セルの値に基づいて書式を設定することです。例えば、

売上データで10万円以上の値を強調表示する場合:

適用範囲:B2:B100

カスタム数式:=$B2>=100000

書式:背景色を緑に設定

この数式は、B2セルでは$B2>=100000として評価され、B3セルでは$B3>=100000として評価されます。$マークで列を固定することで、同じ列内での比較を確実に行えます。

より複雑な例として、

前月比で20%以上増加したセルを強調する場合:

適用範囲:C3:C100

カスタム数式:=AND($C3>$C2*1.2, $C2>0)

書式:背景色を黄色、太字に設定

この数式では、前の行との比較に加えて、ゼロ除算を避けるための条件も含めています。

行全体への条件適用

特定の条件を満たす場合に行全体を強調表示することで、重要なレコードを見逃さないようにできます。

例えば、

ステータスが「緊急」の行全体を赤色で強調する場合:

適用範囲:A2:Z100

カスタム数式:=$D2=”緊急”

書式:背景色を薄い赤に設定

ここでのポイントは、列番号の前に$を付けて列を固定し、行番号は相対参照にすることです。これにより、各行のD列の値に基づいて、その行全体に書式が適用されます。

複数の条件を組み合わせた例:

適用範囲:A2:Z100

カスタム数式:=AND($E2<TODAY(), $F2<>”完了”)

書式:背景色をオレンジに設定

この数式は、期限(E列)が過ぎており、かつステータス(F列)が「完了」でない行を強調表示します。プロジェクト管理や課題管理で、遅延しているタスクを一目で確認できます。

他のセルを参照した条件設定

カスタム数式の強力な機能の一つは、評価対象のセル以外の値を参照できることです。これにより、データ間の関係性に基づいた書式設定が可能になります。

目標達成率による色分けの例:

適用範囲:C2:C100(実績列)

カスタム数式:=$C2/$B2>=1

書式:背景色を緑に設定

追加の条件:

カスタム数式:=AND($C2/$B2>=0.8, $C2/$B2<1)

書式:背景色を黄色に設定

この設定により、目標(B列)に対する実績(C列)の達成率に応じて、100%以上は緑、80%以上100%未満は黄色で表示されます。

範囲を跨いだ条件設定

より高度な使い方として、離れた場所にあるデータを参照した条件設定も可能です。

マスターデータを参照した例:

適用範囲:A2:A100(商品コード列)

カスタム数式:=COUNTIF(廃番リスト!$A:$A,$A2)>0

書式:文字色を赤、取り消し線を追加

この数式は、別シートの「廃番リスト」に含まれる商品コードを自動的に識別し、視覚的に区別します。マスターデータの更新が即座に反映されるため、情報の一元管理が可能です。

動的な閾値の設定

ビジネス環境では、判断基準が頻繁に変更されることがあります。カスタム数式では、閾値を別のセルで管理することで、柔軟な運用が可能です。

設定例:

閾値セル:設定!$B$1(警告レベル:80)

設定!$B$2(危険レベル:50)

適用範囲:B2:B100(在庫数列)

カスタム数式:=AND($B2<=設定!$B$1, $B2>設定!$B$2)

書式:背景色を黄色(警告)

カスタム数式:=$B2<=設定!$B$2

書式:背景色を赤(危険)

この方法により、閾値の変更時に条件付き書式の数式を修正する必要がなくなり、運用が大幅に簡素化されます。

カスタム数式で使える関数・数式の条件

論理関数の活用

カスタム数式で最も頻繁に使用されるのが論理関数です。これらの関数を組み合わせることで、複雑な条件を表現できます。

IF関数:条件分岐の基本

=IF($A2>100000, TRUE, FALSE)

単純にTRUE/FALSEを返すだけなら、=$A2>100000で十分ですが、より複雑な条件では IF関数が有用です。

AND関数:すべての条件を満たす場合

=AND($A2>10000, $B2<TODAY(), $C2=”未処理”)

売上が1万円以上、期限切れ、かつ未処理の案件を強調表示する例です。

OR関数:いずれかの条件を満たす場合

=OR($D2=”緊急”, $D2=”至急”, DAYS(TODAY(),$E2)>30)

優先度が高い、または30日以上経過した案件を識別します。

NOT関数:条件の否定

=NOT(ISBLANK($A2))

空白でないセルを強調表示する場合に使用します。

文字列関数の活用

テキストデータの分析では、文字列関数が重要な役割を果たします。

SEARCH/FIND関数:部分一致の検索

=SEARCH(“重要”,$A2)>0

セルに「重要」という文字が含まれている場合に書式を適用します。SEARCHは大文字小文字を区別せず、FINDは区別します。

REGEXMATCH関数:正規表現による高度な検索

=REGEXMATCH($A2,”^[0-9]{3}-[0-9]{4}$”)

郵便番号の形式(123-4567)に一致するセルを識別します。

=REGEXMATCH($B2,”urgente?|急ぎ|至急”)

複数のキーワードのいずれかを含む場合に適用されます。

LEN関数:文字数による条件

=LEN($A2)>100

100文字を超える長いテキストを含むセルを強調表示します。

日付・時刻関数の活用

期限管理や時系列分析では、日付関数が欠かせません。

TODAY/NOW関数:現在日時との比較

=AND($A2<TODAY(), $B2<>”完了”)

期限切れで未完了のタスクを識別します。

WEEKDAY関数:曜日による条件

=OR(WEEKDAY($A2)=1, WEEKDAY($A2)=7)

土日のデータを強調表示します。営業日カレンダーの作成に便利です。

DATEDIF関数:期間の計算

=DATEDIF($A2,TODAY(),”D”)>90

90日以上経過した案件を識別します。

WORKDAY関数:営業日の計算

=$A2=WORKDAY(TODAY(),-1)

前営業日のデータを強調表示します。

数値・統計関数の活用

データ分析では、平均や標準偏差などの統計値との比較が有効です。

AVERAGE関数との組み合わせ

=$B2>AVERAGE($B$2:$B$100)*1.5

平均の1.5倍を超える異常値を検出します。

STDEV関数による外れ値検出

=ABS($B2-AVERAGE($B$2:$B$100))>2*STDEV($B$2:$B$100)

平均から2標準偏差以上離れた外れ値を識別します。

RANK関数によるランキング表示

=RANK($B2,$B$2:$B$100)<=10

上位10件のデータを強調表示します。

検索・参照関数の活用

他のデータとの照合や、マスターデータの参照に使用します。

VLOOKUP関数:マスターデータの参照

=VLOOKUP($A2,マスター!$A:$C,3,FALSE)>10000

商品マスターから単価を取得し、1万円以上の高額商品を識別します。

COUNTIF関数:重複チェック

=COUNTIF($A$2:$A$100,$A2)>1

重複データを強調表示します。データクレンジングに有効です。

MATCH関数:リスト内存在チェック

=ISNUMBER(MATCH($A2,承認者リスト!$A:$A,0))

承認者リストに含まれる名前を識別します。

配列数式と高度な条件

より複雑な分析には、配列数式や複合的な条件設定が必要になります。

SUMPRODUCT関数による複合条件

=SUMPRODUCT(($A$2:$A$100=$A2)*($B$2:$B$100>1000))>3

同じカテゴリで1000以上の取引が3件以上ある場合を識別します。

FILTER関数との組み合わせ(利用可能な場合)

=COUNTA(FILTER($B$2:$B$100,$A$2:$A$100=$A2))>5

同じグループに属するデータが5件以上ある場合を強調表示します。

これらの関数を組み合わせることで、ビジネスの複雑な要求に応える条件付き書式を作成できます。重要なのは、まず単純な条件から始めて、徐々に複雑な条件へとステップアップすることです。

カスタム数式を使いこなして、データを可視化しよう

Googleスプレッドシートで条件付き書式のカスタム数式を使うと、単純な条件では実現できない複雑なルールを反映した書式設定が可能になります。セルの値や他列のデータを参照して動的に色分けしたり、複数条件を組み合わせたりすることで、データの見やすさと分析精度が向上します。

重要なのは基本の仕組みを理解し、実際の業務データで少しずつ試すことです。カスタム数式を活用すれば、スプレッドシートをより実用的で効果的なデータ管理ツールとして使いこなせます。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事