「あれ、ここ数式が入ってたはずなのに……」。共有シートで数式が値に貼り替えられていた経験、ありますよね。
数百行のシートを1セルずつ確認するのは大変です。そんなときに便利なのがISFORMULA関数です。
スプレッドシートのISFORMULA関数を使えば、セルに数式が入っているかどうかをTRUE/FALSEで瞬時に判定できます。この記事では、基本から実務で役立つ活用パターンまでまとめて紹介します。
スプレッドシートのISFORMULA関数とは?
ISFORMULA関数(読み方: いず ふぉーみゅら)は、指定したセルに数式が入っているかどうかを判定する関数です。
名前は英語の「IS FORMULA(数式ですか?)」からきています。
セルに数式(=で始まる式)が入っていればTRUEを返します。値・文字列・空白セルなど、数式以外はすべてFALSEです。
ISFORMULA関数にできることをまとめると、次のとおりです。
- セルに数式が入っているかをTRUE/FALSEで返す
- IF関数と組み合わせて数式セルと値セルを判別する
- 条件付き書式で数式セルだけを色分けする
- FORMULATEXT関数と組み合わせて数式の一覧表を作る
NOTE
ISFORMULA関数はGoogleスプレッドシートの全バージョンで使えます。Excelでも2013以降で同じ関数が使えるので、ファイルのやり取りでも安心です。
ISFORMULA関数の書き方(構文と引数)
基本構文
=ISFORMULA(セル)
カッコの中に、数式が入っているか確認したいセルを指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| セル | 必須 | 数式が入っているか判定したいセル参照 |
引数は1つだけです。省略はできません。
TIP
ISFORMULA関数の引数にはセル参照を指定します。直接値(
=ISFORMULA(100)など)を入れると正しく判定できません。この点がISNUMBER関数やISTEXT関数など、他のIS系関数と異なるポイントです。
ISFORMULA関数の基本的な使い方
まずはシンプルな例で動きを確認してみましょう。
セルの内容ごとの判定結果
さまざまなセルをISFORMULA関数で判定すると、次のような結果になります。
| セルの内容 | 数式バーの表示 | ISFORMULA の結果 | 理由 |
|---|---|---|---|
| =SUM(A1:A5) | =SUM(A1:A5) | TRUE | 数式が入っている |
| 100(直接入力) | 100 | FALSE | 値なので数式ではない |
| 東京(文字列) | 東京 | FALSE | 文字列なので数式ではない |
| (空白セル) | FALSE | 空白なので数式ではない | |
| =IF(B1>50,”合格”,”不合格”) | =IF(B1>50,… | TRUE | 結果が文字列でも数式は数式 |
| =1+1 | =1+1 | TRUE | 計算結果が2でも数式 |
数式の「結果」ではなく「有無」を判定する
ここが重要なポイントです。ISFORMULA関数は数式の計算結果ではなく、数式の有無を見ています。
上の表の =1+1 がわかりやすい例です。結果は2でも数式だからTRUE。2 と直接入力すればFALSEです。
TIP
セルの「値の種類」を判定するにはISTEXT関数やISNUMBER関数を使いましょう。ISFORMULA関数は「数式かどうか」だけに特化した関数ですよ。
ISFORMULA関数の実践的な使い方・応用例
IF関数と組み合わせて数式セルを判別する
セルの内容に応じてラベルを表示したい場面で使えます。
=IF(ISFORMULA(B2),"数式","値")
B2に数式が入っていれば「数式」と表示します。値が直接入力されていれば「値」です。
テンプレートシートの検品に便利ですよ。数式であるべきセルに値が混ざっていないかを確認できます。
条件付き書式で数式セルを色分けする
数式が入っているセルだけをハイライトしたい場合に使えます。
- 対象範囲を選択します
- 「表示形式」メニュー →「条件付き書式」を選択します
- 「カスタム数式」を選びます
- 数式欄に
=ISFORMULA(A1)と入力します - 好きな書式(薄い青の塗りつぶしなど)を設定します
これで数式セルだけが色分けされます。値セルだけを色分けするなら =NOT(ISFORMULA(A1)) にしましょう。
TIP
値の貼り付けで数式が消えていないかを視覚的にチェックできます。共有シートの管理に活用してみてください。
値の貼り付けミスを検出する
共有シートで「数式が値に貼り替えられた」トラブルを見つけるパターンです。
C列が本来すべて数式であるべき場合、次のように書きます。
=IF(AND(C2<>"",NOT(ISFORMULA(C2))),"要確認","OK")
C2が空白でなく、かつ数式でもない場合に「要確認」と表示します。値が直接入力されたセルを効率よく見つけられますよ。
FORMULATEXT関数と組み合わせて数式一覧を作る
数式の中身をテキストとして表示したい場面があります。FORMULATEXT関数と組み合わせると便利です。
=IF(ISFORMULA(B2),FORMULATEXT(B2),"---")
B2に数式が入っていれば、その数式のテキストを表示します。値のセルは「—」です。
FORMULATEXT関数は対象セルに数式がないとエラーになります。ISFORMULA関数で先に「数式があるか」を判定してから使うのが安全なパターンです。
シート保護前の数式チェックリスト作りに重宝しますよ。
よくあるエラーと対処法
ISFORMULA関数で「思った結果にならない」ケースをまとめました。
| 症状 | 原因 | 対処法 |
|---|---|---|
| 値のセルなのにTRUEが返る | =100 のように =で始まる式が入っている | 数式バーで確認。=100 も数式扱い |
| 数式セルなのにFALSEが返る | 値の貼り付けで数式が消えている | 数式バーでセルの内容を確認する |
| 空白セルでFALSEが返る | 空白セルには数式がない | 空白判定にはISBLANK関数を使う |
| 直接値を引数に入れて判定できない | 引数にセル参照ではなく値を入れた | セル参照のみ指定可能。=ISFORMULA(A1) のようにセルを指定する |
| ARRAYFORMULAのゴーストセルでFALSEが返る | 数式の先頭セルのみがTRUE | 値が展開されただけのセルはFALSEになる。先頭セルを確認する |
Excelとの違い
ISFORMULA関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =ISFORMULA(参照) | =ISFORMULA(セル) |
| 動作 | 数式ならTRUE | 数式ならTRUE |
| 直接値を渡した場合 | #VALUE! エラー | FALSE(エラーにならない) |
| 対応バージョン | Excel 2013以降 | 全バージョン対応 |
大きな違いは、直接値を引数に渡した場合の挙動です。ExcelではエラーになりますがスプレッドシートではFALSEを返します。とはいえ、セル参照を使うのが正しい使い方なので、実務上の影響はほとんどありません。
Excelでの使い方はExcelのISFORMULA関数の記事で詳しく解説しています。
まとめ
ISFORMULA関数は、セルに数式が入っているかどうかを判定するシンプルな関数です。
ポイントを整理します。
- 構文は
=ISFORMULA(セル)で、引数は1つだけ - 数式が入っていればTRUE、値や空白ならFALSE
- 数式の「結果」ではなく「有無」を判定する
- IF関数や条件付き書式と組み合わせるのが実務での定番パターン
- 値の貼り付けミスの検出やテンプレート検品に便利
- 数式の中身を見たいときはFORMULATEXT関数と組み合わせる
- ExcelのISFORMULA関数とほぼ同じ動作で、互換性も安心
まずは =ISFORMULA(A1) で、数式が入っているかどうかの確認から試してみてください。
