頑張らないために頑張る

ゆるく頑張ります

Excelのセルに数式が含まれるか確認する方法

Posted at — Sep 2, 2025

概要

Excelのセルには数値や文字列のデータだけではなく、=SUM(A1:C1)のような合計や平均を算出するような数式を格納できます。このとき、セルには数式が格納されていても表面上は計算結果が表示されるため、パッと見だとそのセルに格納されているのは「データなのか数式なのか」が判断できません。

あまり頻繁にあるケースではありませんが、「そのセルに含まれるものはデータか数式か?」を判断しなければならない場合に利用できる方法があります。今回はそんな方法についてメモしておきます。

まぁこういう記事を書いてるってことは、そういうレアなケースに遭遇したってことです・・・_( _´ω`)_ペショ

ISFORMULA関数(Excel 2013以降)

最も直接的な方法で、セルに数式が入っているかどうかを判定し、真偽値(TRUEまたはFALSE)で結果を返します。

基本構文

=ISFORMULA(セル参照)

使用例

=ISFORMULA(A1)

実践例

A列 B列(判定結果) 説明
100 =ISFORMULA(A1) → FALSE 数値のため
=SUM(C1:C5) =ISFORMULA(A2) → TRUE 数式のため
Hello =ISFORMULA(A3) → FALSE 文字列のため
=AVERAGE(D1:D10) =ISFORMULA(A4) → TRUE 数式のため

複合的な判定方法

数式かどうかを判定したうえで、結果に応じてメッセージを表示する方法です。

パターン1:シンプルな判定

=IF(ISFORMULA(A1),"数式","値")

パターン2:詳細な判定

=IF(ISFORMULA(A1),
   "数式: " & FORMULATEXT(A1),
   IF(ISNUMBER(A1),"数値: " & A1,
   IF(ISTEXT(A1),"文字列: " & A1,"その他")))

FORMULATEXT関数との組み合わせ

数式かどうかを判定したうえで、数式であればどんな式が格納されているかをメッセージで表示する方法です。

基本構文

=IF(ISFORMULA(A1),FORMULATEXT(A1),"数式ではありません")

使用例

=IF(ISFORMULA(B1),
   "数式: " & FORMULATEXT(B1),
   "値: " & B1)

配列数式での一括判定

複数のセルを一度に判定する方法です。

範囲内の数式セル数をカウント

=SUMPRODUCT(--(ISFORMULA(A1:A10)))

範囲内に数式があるかチェック

=IF(SUMPRODUCT(--(ISFORMULA(A1:A10)))>0,"数式あり","数式なし")

実用的な応用例

数式チェッカー関数

=IF(ISFORMULA(A1),
   "✓ 数式: " & LEFT(FORMULATEXT(A1),50) & 
   IF(LEN(FORMULATEXT(A1))>50,"...",""),
   "× 数式ではありません")

エラーハンドリング付き

=IFERROR(
   IF(ISFORMULA(A1),
      "数式: " & FORMULATEXT(A1),
      "値: " & A1),
   "エラーまたは空白")

VBAでの判定方法

Officeが古くISFORMULA関数が利用できない場合、VBAを使用して判断することが一応できます。

Function IsFormulaCell(rng As Range) As Boolean
    IsFormulaCell = rng.HasFormula
End Function

Function GetFormulaInfo(rng As Range) As String
    If rng.HasFormula Then
        GetFormulaInfo = "数式: " & rng.Formula
    Else
        GetFormulaInfo = "値: " & rng.Value
    End If
End Function

注意事項

ISFORMULA関数やFORMULATEXT関数は、Excel 2013以降でのみ使用可能です。古いバージョンのofficeでは、VBAを使用するしかなさそう。

まとめ

最も簡単で確実な方法はISFORMULA関数を使用することです。より詳細な情報が必要な場合は、FORMULATEXT関数と組み合わせて使用しましょう。

レアケースではありますが、知っておくと役立つ場面があるかもしれません_( _´ω`)_ペショ

参考

  1. ISFORMULA function
  2. ISFORMULA function
comments powered by Disqus