ExcelのISFORMULA関数の使い方|セルに数式が入っているか判定する方法

スポンサーリンク

「あれ、ここ数式が入ってたはずなのに……」。共有ファイルで数式が値に貼り替えられていた。よくありますよね。

数百行のシートを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(直接入力)100FALSE値なので数式ではない
東京(文字列)東京FALSE文字列なので数式ではない
(空白セル) FALSE空白なので数式ではない
=IF(B5>100,”合格”,”不合格”)=IF(B5>100,…TRUE結果が文字列でも数式は数式
=1+1=1+1TRUE計算結果が数値 2 でも数式
TRUE(直接入力)TRUEFALSE論理値でも直接入力は数式ではない

数式の「結果」ではなく「有無」を判定する

ここが重要なポイントです。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: 条件付き書式で数式セルを色分けする

数式が入っているセルだけをハイライトしたい場合に使えます。

  1. 対象範囲を選択します
  2. 「ホーム」タブ → 「条件付き書式」 → 「新しいルール」を選択します
  3. 「数式を使用して、書式設定するセルを決定」を選びます
  4. 数式欄に =ISFORMULA(A1) と入力します
  5. 好きな書式(塗りつぶし色など)を設定します

これで数式セルだけが色分けされます。値セルだけを色分けするなら =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: データ入力規則でテンプレートの数式を保護する

共有テンプレートで「数式セルに値を上書き入力してしまった」という事故、ありますよね。データの入力規則で予防できます。

  1. 保護したい数式セルの範囲を選択します
  2. 「データ」タブ → 「データの入力規則」を開きます
  3. 「設定」タブで「入力値の種類」を「ユーザー設定」にします
  4. 数式欄に =NOT(ISFORMULA(A1)) と入力します
  5. 「エラーメッセージ」タブでメッセージを設定します(例: 「このセルは数式です。直接入力しないでください」)

この設定で、数式セルにキーボードから値を入力しようとするとエラーが出ます。数式が入っている限り入力をブロックできるわけです。

ただし、貼り付け操作は入力規則では防げません。完全にブロックしたい場合は、シート保護との併用がおすすめです。「数式セルのロック + シート保護」と組み合わせると安心ですよ。

経理テンプレートや勤怠シートなど、数式を壊されたくないファイルで特に活躍します。

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関数と組み合わせる

「数式が消えてしまった」トラブル防止に、ぜひ活用してみてください。

関連記事

タイトルとURLをコピーしました