【Excel】FORMULATEXT関数でセルの数式を文字列として表示する方法

【Excel】FORMULATEXT関数でセルの数式を文字列として表示する方法
🛡️ 超解決

【要点】FORMULATEXT関数で数式を文字列表示する

  • FORMULATEXT関数: 指定したセルの数式を文字列として取得できます。
  • 参照セル: 数式を表示したいセルのアドレスを指定します。
  • 数式表示: セルに数式ではなく、その数式自体を文字列として表示できます。

ADVERTISEMENT

FORMULATEXT関数で数式を文字列として表示する仕組み

FORMULATEXT関数は、Excelで数式を文字列として取得するための専用関数です。

通常、Excelのセルに数式を入力すると、その数式が計算した結果の値が表示されます。数式そのものを確認するには、セルを選択して数式バーを見る必要があります。

しかし、FORMULATEXT関数を使えば、数式バーを見なくても、別のセルに数式そのものをテキストとして表示できます。

これは、数式の監査、ドキュメント作成、または他のユーザーへの数式の説明に非常に便利です。

この関数は、Excel 2019およびMicrosoft 365のExcelで利用可能です。Excel 2016以前のバージョンでは使用できません。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

FORMULATEXT関数の基本的な使い方

FORMULATEXT関数は非常にシンプルで、数式を表示したいセルに以下の構文で入力します。

構文:

FORMULATEXT(参照)

引数:

参照 (必須): 数式の値を取得したいセルを指定します。

  1. 数式を表示したいセルを選択する
    例えば、セルA1に「=SUM(B1:B10)」という数式が入っているとします。この数式を文字列として表示したい場合、別のセル(例えばC1)を選択します。
  2. FORMULATEXT関数を入力する
    選択したセルC1に、「=FORMULATEXT(A1)」と入力してEnterキーを押します。
  3. 結果を確認する
    セルC1には、「=SUM(B1:B10)」という数式が文字列として表示されます。

FORMULATEXT関数を応用した活用例

FORMULATEXT関数は、単に数式を表示するだけでなく、様々な場面で活用できます。

数式を説明するためのドキュメント作成

複雑な計算を行うExcelシートを他の部署や担当者に引き継ぐ際、数式だけでは意図が伝わりにくいことがあります。

FORMULATEXT関数を使って、各セルの数式を一覧で表示し、その隣に説明文を追記することで、シートの仕様書のようなドキュメントを簡単に作成できます。

数式の監査とデバッグ

数式が意図した通りに動作しない場合、数式バーで確認するだけでなく、FORMULATEXT関数で数式を文字列として抽出し、別のセルに一覧表示することで、数式の構造を把握しやすくなります。

これにより、誤字脱字や論理的な誤りを見つけやすくなり、デバッグ作業が効率化します。

数式をコピーして別の場所で利用する

数式をそのままコピーして、例えばテキストファイルやメール本文に貼り付けたい場合があります。

FORMULATEXT関数で数式を文字列として取得し、そのセルをコピーして貼り付ければ、数式が計算結果ではなく、入力した数式として貼り付けられます。

ADVERTISEMENT

FORMULATEXT関数使用時の注意点と制限事項

FORMULATEXT関数は便利ですが、いくつかの注意点と制限事項があります。

参照先のセルに数式がない場合

FORMULATEXT関数で指定したセルに数式が入力されていない場合、またはそのセルが空の場合、関数は「#N/A」エラーを返します。

これを避けるためには、IFERROR関数と組み合わせるのが一般的です。

  1. IFERROR関数と組み合わせる
    例えば、セルA1の数式を表示したいが、A1に数式がない場合は空白にしたい場合、セルC1に以下の数式を入力します。

=IFERROR(FORMULATEXT(A1),””)

これにより、「#N/A」エラーが表示される代わりに空白が表示されます。

配列数式や共有ブックでの制限

FORMULATEXT関数は、動的配列数式や共有ブック(履歴の記録がオンになっている場合)では、期待通りに動作しないことがあります。

動的配列数式の場合、配列全体ではなく、数式が入力されている最初のセルのみの数式を返します。

共有ブックの履歴がオンになっていると、数式が変更されるたびに履歴が記録されるため、FORMULATEXT関数が最新の数式を正確に取得できない場合があります。

数式が長すぎる場合

Excelのセルに入力できる数式の最大長は8,192文字です。

FORMULATEXT関数で取得できる数式も、この文字数制限を超えません。

非常に長い数式の場合、セル幅を広げたり、セルの書式設定で「折り返して全体を表示する」を有効にしたりする必要があるでしょう。

Excelのバージョンによる違い

前述の通り、FORMULATEXT関数はExcel 2019およびMicrosoft 365のExcelで利用可能です。

Excel 2016、Excel 2013、Excel 2010などの古いバージョンでは、この関数は搭載されていません。

これらの古いバージョンで数式を文字列として表示したい場合は、VBA(Visual Basic for Applications)を使用するか、手動で数式をコピー&ペーストするしかありません。

Excel 2016以前のバージョンでの代替手段(VBA)

FORMULATEXT関数が使えないExcel 2016以前のバージョンでは、VBAを使用して同様の機能を実現できます。

VBAで数式を文字列として取得する

以下のVBAコードは、指定したセルの数式を文字列として取得し、別のセルに表示する例です。

  1. VBAエディターを開く
    Excelで「Alt」+「F11」キーを押し、VBAエディターを開きます。
  2. 標準モジュールを挿入する
    「挿入」メニューから「標準モジュール」を選択します。
  3. コードを貼り付ける
    表示されたコードウィンドウに、以下のコードをコピーして貼り付けます。
Function GetFormulaAsString(targetCell As Range) As String
    On Error Resume Next
    GetFormulaAsString = targetCell.Formula
    On Error GoTo 0
End Function
  1. Excelシートに戻る
    VBAエディターを閉じ、Excelシートに戻ります。
  2. 作成した関数を使用する
    数式を表示したいセル(例えばC1)に、「=GetFormulaAsString(A1)」と入力します。
  3. 結果を確認する
    セルC1に、セルA1の数式が文字列として表示されます。

このVBA関数は、FORMULATEXT関数と同様に、指定したセルの数式を文字列として返します。

VBA使用時のセキュリティに関する注意

VBAコードを含むブックを開く際には、セキュリティ警告が表示されることがあります。

信頼できるソースからのマクロのみを有効にするようにしてください。

また、VBAコードを保存する際は、「マクロ有効ブック(.xlsm)」形式で保存する必要があります。

FORMULATEXT関数と他の関数との組み合わせ

FORMULATEXT関数は、他のExcel関数と組み合わせることで、さらに強力な機能を発揮します。

IFERROR関数との組み合わせ(再掲)

前述の通り、参照セルに数式がない場合に「#N/A」エラーが表示されるのを防ぐためにIFERROR関数は非常に有効です。

例:

=IFERROR(FORMULATEXT(A1),”数式がありません”)

この場合、A1に数式があればその数式が表示され、なければ「数式がありません」と表示されます。

LEN関数との組み合わせ

数式の長さを取得したい場合にLEN関数と組み合わせます。

例:

=LEN(FORMULATEXT(A1))

これにより、セルA1の数式の文字数を数えることができます。

MID関数やLEFT関数、RIGHT関数との組み合わせ

数式の一部だけを抽出したい場合に、これらの文字列操作関数と組み合わせます。

例えば、数式の最初の10文字だけを表示したい場合は、以下のようになります。

=LEFT(FORMULATEXT(A1), 10)

これは、数式の構造を簡易的に確認したい場合などに役立ちます。

FORMULATEXT関数とVLOOKUP/XLOOKUP関数の比較

FORMULATEXT関数は、数式を文字列として取得する関数ですが、VLOOKUP関数やXLOOKUP関数は、表の中から特定の条件に合うデータを探して表示する関数です。

両者は目的が全く異なります。

項目 FORMULATEXT関数 VLOOKUP関数 XLOOKUP関数
主な目的 セルの数式を文字列として表示する 表の左端列で値を検索し、同じ行の指定列の値を返す 指定範囲で値を検索し、対応する範囲の値を返す(より柔軟)
戻り値の型 文字列 数値、文字列、日付など(検索値に一致するセルの値) 数値、文字列、日付など(検索値に一致するセルの値)
引数 参照 検索値,範囲,列番号,検索方法 検索値,検索範囲,戻り範囲,省略時,一致モード,検索モード
利用バージョン Excel 2019以降, Microsoft 365 Excel 2007以降 Excel for Microsoft 365, Excel 2021

まとめ

ExcelのFORMULATEXT関数を使えば、セルの数式を簡単に文字列として表示できます。

これにより、数式の共有、ドキュメント作成、デバッグ作業が格段に効率化します。

Excel 2019以降のバージョンをお使いであれば、ぜひこの関数を活用してみてください。

参照セルに数式がない場合の対処法としてIFERROR関数との組み合わせも覚えておくと便利です。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】