「あれ、ここ数式が入ってたはずなのに……」。共有ファイルで数式が値に貼り替えられていた。よくありますよね。
数百行のシートを1セルずつ確認するのは大変です。そんなときに活躍するのが、ExcelのISFORMULA関数です。
この記事では、ISFORMULA関数の基本から実務活用パターンまでまとめて紹介します。
この記事は次のような人におすすめ
– セルに数式が入っているかどうかを確認したい
– 値の貼り付けで数式が消えていないかチェックしたい
– 条件付き書式で数式セルだけを色分けしたい
ISFORMULA関数とは?
ISFORMULA(いず ふぉーみゅら)関数は、セルに数式が入っているかを判定します。formulaは「数式」の意味。
数式(=で始まる式)が入っていれば TRUE を返します。値・文字列・空白セルなど、数式以外はすべて FALSE です。
IS系(情報関数)の1つです。セルのデータの種類を確認するための関数ファミリーに属しています。
NOTE
ISFORMULA関数は Excel 2013 以降で使用できます。Excel 2010 以前ではこの関数を使えません。
ISFORMULA関数の書き方(構文と引数)
基本構文
=ISFORMULA(参照)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 参照 | 必須 | 数式が入っているか判定したいセル参照 |
引数は1つだけです。省略はできません。
NOTE
ISFORMULA関数の引数にはセル参照を指定します。直接値(
=ISFORMULA(100)など)を入れると #VALUE! エラーになります。この点が他のIS系関数(ISTEXT、ISNUMBERなど)と異なるポイントです。
ISFORMULA関数の基本的な使い方
まずはシンプルな例で動きを確認してみましょう。
セルの内容ごとの判定結果
さまざまなセルを ISFORMULA 関数で判定すると、次のような結果になります。
| A列のセル内容 | 数式バーの表示 | =ISFORMULA(A1) の結果 | 理由 |
|---|---|---|---|
| =SUM(B1:B10) | =SUM(B1:B10) | TRUE | 数式が入っている |
| 100(直接入力) | 100 | FALSE | 値なので数式ではない |
| 東京(文字列) | 東京 | FALSE | 文字列なので数式ではない |
| (空白セル) | FALSE | 空白なので数式ではない | |
| =IF(B5>100,”合格”,”不合格”) | =IF(B5>100,… | TRUE | 結果が文字列でも数式は数式 |
| =1+1 | =1+1 | TRUE | 計算結果が数値 2 でも数式 |
| TRUE(直接入力) | TRUE | FALSE | 論理値でも直接入力は数式ではない |
数式の「結果」ではなく「有無」を判定する
ここが重要なポイントです。ISFORMULA関数は数式の計算結果ではなく、数式の有無を見ています。
上の表の =1+1 がわかりやすい例です。結果は 2 でも数式だから TRUE。2 と直接入力すれば FALSE です。
TIP
セルの「値の種類」を判定するには ISTEXT関数 や ISNUMBER関数 を使いましょう。ISFORMULA関数は「数式かどうか」だけに特化した関数です。使い分けの基準として覚えておきましょう。
ISFORMULA関数の実務活用パターン
パターン1: IF関数と組み合わせて数式セルを判別する
セルの内容に応じてラベルを表示したい場面で使えます。
=IF(ISFORMULA(B2),"数式","値")
B2 に数式が入っていれば「数式」と表示します。値が直接入力されていれば「値」です。
テンプレートシートの検品に便利です。数式であるべきセルに値が混ざっていないかを確認できます。
パターン2: 値の貼り付けミスを検出する
共有シートで「数式が値に貼り替えられた」トラブルを見つけるパターンです。
C列が本来すべて数式であるべき場合、次のように書きます。
=IF(AND(C2<>"",NOT(ISFORMULA(C2))),"要確認","OK")
C2 が空白でなく、かつ数式でもない場合に「要確認」と表示します。値が直接入力されたセルを効率よく見つけられます。
パターン3: 条件付き書式で数式セルを色分けする
数式が入っているセルだけをハイライトしたい場合に使えます。
- 対象範囲を選択します
- 「ホーム」タブ → 「条件付き書式」 → 「新しいルール」を選択します
- 「数式を使用して、書式設定するセルを決定」を選びます
- 数式欄に
=ISFORMULA(A1)と入力します - 好きな書式(塗りつぶし色など)を設定します
これで数式セルだけが色分けされます。値セルだけを色分けするなら =NOT(ISFORMULA(A1)) です。
パターン4: SUMPRODUCT と組み合わせて数式セルの個数を数える
範囲内の数式セルの個数を数えるには、SUMPRODUCT関数と組み合わせます。
=SUMPRODUCT(ISFORMULA(A2:A100)*1)
各セルが TRUE/FALSE で返ります。*1 で数値化して合計すれば個数がわかります。
「数式セルが想定どおりの個数あるか」のチェックに便利です。
パターン5: シート保護前の数式チェックリストを作る
シートを保護する前に、数式セルを一覧化しておくと管理が楽になります。
=IF(ISFORMULA(B2),FORMULATEXT(B2),"---")
B2 に数式が入っていれば、その数式のテキストを表示します。値のセルは「—」です。
FORMULATEXT関数との組み合わせで、数式の一覧表が作れます。チームに共有する資料として重宝しますよ。
TIP
FORMULATEXT関数は数式のテキストを表示する関数です。ISFORMULA関数で先に「数式があるか」を判定してから使うと、値セルで #N/A エラーになるのを防げます。
パターン6: データ入力規則でテンプレートの数式を保護する
共有テンプレートで「数式セルに値を上書き入力してしまった」という事故、ありますよね。データの入力規則で予防できます。
- 保護したい数式セルの範囲を選択します
- 「データ」タブ → 「データの入力規則」を開きます
- 「設定」タブで「入力値の種類」を「ユーザー設定」にします
- 数式欄に
=NOT(ISFORMULA(A1))と入力します - 「エラーメッセージ」タブでメッセージを設定します(例: 「このセルは数式です。直接入力しないでください」)
この設定で、数式セルにキーボードから値を入力しようとするとエラーが出ます。数式が入っている限り入力をブロックできるわけです。
ただし、貼り付け操作は入力規則では防げません。完全にブロックしたい場合は、シート保護との併用がおすすめです。「数式セルのロック + シート保護」と組み合わせると安心ですよ。
経理テンプレートや勤怠シートなど、数式を壊されたくないファイルで特に活躍します。
ISFORMULA関数とFORMULATEXT関数の使い分け
ISFORMULA関数と似た名前の関数に、FORMULATEXT関数があります。名前は似ていますが、役割はまったく違います。
| 比較項目 | ISFORMULA関数 | FORMULATEXT関数 |
|---|---|---|
| 役割 | 数式の有無を判定する | 数式のテキストを取得する |
| 戻り値 | TRUE / FALSE | 数式の文字列(例: =SUM(A1:A10)) |
| 数式がないセル | FALSE を返す | #N/A エラーを返す |
| 主な用途 | 数式チェック・条件分岐 | 数式の一覧表示・ドキュメント化 |
ポイントは、FORMULATEXT関数は対象セルに数式がないと #N/A エラーになることです。そのため、ISFORMULA関数でガードしてから呼ぶのが安全なパターンです。
=IF(ISFORMULA(B2), FORMULATEXT(B2), "---")
数式があれば数式テキストを表示し、なければ「—」を表示します。この組み合わせはパターン5でも紹介しました。
TIP
「数式があるかどうか」だけ知りたい → ISFORMULA関数。「数式の中身を見たい」 → FORMULATEXT関数。迷ったらこの基準で選んでみてください。
よくあるエラーと対処法
ISFORMULA関数自体がエラーを返すことは少ないです。ただし「思った結果にならない」ケースがあります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! エラーが出る | 引数に直接値(数値や文字列)を指定した | ISFORMULA関数の引数にはセル参照のみ指定可能。直接値は使えない |
| 値のセルなのに TRUE が返る | =100 のように = で始まる数式が入っている | 数式バーで確認。=100 も数式扱いになる |
| 数式セルなのに FALSE が返る | 値の貼り付け(Ctrl+Shift+V)で数式が消えている | 数式バーでセルの内容を確認する |
| 空白セルで FALSE が返る | 空白セルには数式が入っていない | 数式の有無ではなく空白判定には ISBLANK関数 を使う |
| 配列数式のセルで TRUE が返る | 配列数式も数式の一種 | 正常な動作。Ctrl+Shift+Enter で入力した配列数式もISFORMULAは TRUE を返す |
| スピルのゴーストセルで FALSE が返る | スピル数式の先頭セルのみが数式扱い | スピル範囲の先頭セルは TRUE。値が流れ込んでいるだけのゴーストセルは FALSE になる |
NOTE
スピル数式(UNIQUE、SORT、FILTERなど)を使っている場合の注意点です。スピル範囲の先頭セルは TRUE を返しますが、結果が展開されたゴーストセルは FALSE です。スピル範囲全体をまとめてチェックしたい場合は
=ISFORMULA(A1#)のようにスピル演算子(#)を使いましょう。
IS系12関数の違い・使い分け
IS系関数は、セルに入っているデータの種類を判定するファミリーです。用途に合わせて使い分けましょう。
| 関数名 | 判定内容 | TRUE になる例 |
|---|---|---|
| ISBLANK | 空白セルか | 未入力のセル |
| ISERROR | 任意のエラー値か | #N/A, #VALUE!, #REF! など |
| ISERR | #N/A 以外のエラー値か | #VALUE!, #REF!, #DIV/0! など |
| ISNA | #N/A エラーか | #N/A のみ |
| ISLOGICAL | 論理値(TRUE/FALSE)か | TRUE, FALSE |
| ISNUMBER | 数値か | 100, 3.14, 日付のシリアル値 |
| ISTEXT | 文字列か | “東京”, “123”(文字列型) |
| ISNONTEXT | 文字列以外か | 100, TRUE, 空白 |
| ISFORMULA(この記事) | 数式が入っているか | =SUM(A1:A10) が入ったセル |
| ISREF | 有効なセル参照か | A1, Sheet2!B3 |
| ISEVEN | 偶数か | 2, 4, 100 |
| ISODD | 奇数か | 1, 3, 99 |
TIP
ISFORMULA関数は他のIS系関数と性質が異なります。ISTEXT や ISNUMBER はセルの値の種類を判定します。一方 ISFORMULA は、数式が入っているかどうかを判定します。数式の結果が数値でも文字列でも、数式であれば TRUE になります。値の種類ではなく”入れ物”を見ているイメージですよ。
まとめ
ISFORMULA関数は、セルに数式が入っているかどうかを判定するシンプルな関数です。
- 引数は1つだけ(セル参照のみ指定可能)
- 数式が入っていれば TRUE、値や空白なら FALSE
- IF関数や条件付き書式と組み合わせるのが実務での定番パターン
- 値の貼り付けミスの検出やテンプレート検品に便利
- 数式の中身を見たいときはFORMULATEXT関数と組み合わせる
「数式が消えてしまった」トラブル防止に、ぜひ活用してみてください。
関連記事
- FORMULATEXT関数の使い方|数式のテキストを取得する方法
- ISBLANK関数の使い方|空白セルを判定する方法
- ISNUMBER関数の使い方|数値かどうかを確認する方法
- ISTEXT関数の使い方|文字列かどうかを確認する方法
- ISLOGICAL関数の使い方|論理値を判定する方法
- ISNA関数の使い方|#N/Aエラーを判定する方法
- ISERROR関数の使い方|エラー値を判定する方法
- ISREF関数の使い方|セル参照が有効か判定する方法
- IFERROR関数の使い方|エラーを非表示にする方法
- IF関数の使い方|条件分岐の基本
- SUMPRODUCT関数の使い方|複数条件の集計
- COUNTBLANK関数の使い方|空白セルを数える方法
- Excel関数一覧(機能別)
