ISFORMULA 関数は、セルに数式が入っているかどうかを調べる関数です。数式なら TRUE、手で入力した値なら FALSE を返します。=ISFORMULA(D2) と書くと、金額のセルが計算式か、数字を直接打ち込んだものかが分かります。
見た目が同じでも、式を上書きして数字を入れてしまうと、単価を変えても金額が変わりません。この記事では、そうしたセルを見つける ISFORMULA の使い方を、実際の Excel で確かめた結果で説明します。
ISFORMULA 関数の書き方
=ISFORMULA(参照)
| 引数 | 意味 |
|---|---|
| 参照 | 数式かどうかを調べるセル |
表の D3(800)と D5(900)は、式ではなく数字を直接入れてあります。見た目では区別がつきません。
1. 数式かどうかを TRUE・FALSE で出す
I2 に式を入れて、下へコピーします。
=ISFORMULA(D2)

数式の D2・D4・D6 は TRUE、数字を入れた D3・D5 は FALSE でした。
2. 「式」「手入力」の文字にする
IF と組み合わせると、分かりやすい文字で表示できます。
=IF(ISFORMULA(D2),"式","手入力")

D3 と D5 が「手入力」になりました。手入力のセルを見つけたら、式に直しておきます。
3. 数式のセルを数える
ISFORMULA に範囲を指定すると、セルごとの TRUE・FALSE が返ります(Microsoft 365・Excel 2021)。-- で 1・0 にして合計します。
=SUM(--ISFORMULA(D2:D6))

結果は 3 でした。5 行のうち、数式でないセルが 2 つあると分かります。
4. 数式の中身を並べて表示する
FORMULATEXT は数式を文字で表示する関数です。数式でないセルに使うと #N/A になるので、ISFORMULA で確かめてから使います。
=IF(ISFORMULA(D2),FORMULATEXT(D2),"(手入力)")

D2 は「=B2*C2」、D3 は「(手入力)」と表示されました。FORMULATEXT は FORMULATEXT関数で説明しています。
【実機で検証】ISFORMULA でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| 空白のセル(A12) | =ISFORMULA(A12) | FALSE |
| 文字の「=1+1」(A13) | =ISFORMULA(A13) | FALSE |
| 数式で “” を返すセル(A14) | =ISFORMULA(A14) | TRUE |
| 数式ではないセルに FORMULATEXT | =FORMULATEXT(ISFORMULA!D3) | #N/A |
空白のセルは FALSE でした。先頭に「’」を付けて文字として入れた「=1+1」も FALSE です。
見た目は空白でも、="" のように数式で空の文字を返しているセルは TRUE になりました。空白に見えるセルが本当に空かどうかを調べるのにも使えます。
数式ではないセルに FORMULATEXT を使うと #N/A になりました。ISFORMULA の引数はセルの参照にします(=ISFORMULA(1) のように値を書くと、式として入力できませんでした)。
よくある質問
数式のセルに色を付けたいときは?
条件付き書式で「数式を使用して…」を選び、=ISFORMULA(D2) と書くと、数式のセルだけに色を付けられます。条件付き書式の使い方も参考にしてください。
数式を消されないようにしたいときは?
シートの保護で数式のセルだけロックできます。数式を消されないように保護する方法で説明しています。
数式をまとめて表示したいときは?
[数式]タブの[数式の表示](Ctrl+Shift+@)で、シート全体の数式を表示できます。

コメント