「このセル、どんな数式が入ってるんだっけ?」。数式バーをクリックして1セルずつ確認していませんか。
セル数が多いシートだと、数式をいちいち目視チェックするのは時間がかかりすぎます。数式の一覧をまとめて確認できたら便利ですよね。
そんなときに活躍するのが、ExcelのFORMULATEXT関数です。この記事では、基本の使い方から実務活用パターンまでまとめて紹介します。
この記事は次のような人におすすめ
– セルに入っている数式をテキストとして確認したい
– 数式の一覧表を自動で作りたい
– チームに共有するシートの仕様書(ドキュメント)を作りたい
FORMULATEXT関数とは?
FORMULATEXT(ふぉーみゅら てきすと)関数は、指定したセルに入っている数式をテキスト文字列として返す関数です。
「formula」は数式、「text」はテキストの意味です。
たとえばセルB2に =SUM(A1:A10) という数式が入っていたとします。FORMULATEXT(B2)と書くと、「=SUM(A1:A10)」という文字列が返ります。
数式の「計算結果」ではなく、「数式そのもの」を取得できるのがポイントです。
NOTE
FORMULATEXT関数は Excel 2013 以降で使用できます。Excel 2010 以前では使えません。
FORMULATEXT関数の書き方(構文と引数)
基本構文
=FORMULATEXT(参照)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 参照 | 必須 | 数式を取得したいセルの参照。セル参照のみ指定可能 |
引数は「参照」の1つだけです。直接値(数値や文字列)は指定できません。
範囲(A1:A10など)を指定した場合、左上のセルの数式のみ返します。
FORMULATEXT関数の基本的な使い方
別のセルの数式をテキストで表示する
もっとも基本的な使い方です。B2セルに数式が入っているとき、C2セルに次のように入力します。
=FORMULATEXT(B2)
B2の数式がそのまま文字列で表示されます。計算結果ではなく数式の文字列が返る点に注意です。
数式がないセルを参照すると #N/A エラーになる
FORMULATEXT関数は、参照先に数式がないとき #N/A エラーを返します。値や空白セルを参照した場合もエラーです。
「数式が見つからない」という意味の正常な動作です。エラーを表示したくない場合は、後述のISFORMULA関数との組み合わせで回避できます。
別シートの数式も取得できる
別のシートにあるセルの数式も取得できます。シート名を付けて参照するだけです。
=FORMULATEXT(Sheet2!B2)
ただし、別ブックが閉じている状態では #N/A エラーになります。別ブックの数式を取得したいときは、開いた状態で使いましょう。
FORMULATEXT関数の実務活用パターン
パターン1: 数式の一覧表を自動作成する
シートの数式をまとめて一覧にしたい場面は多いですよね。FORMULATEXT関数を使えば、手作業なしで数式一覧を作れます。
たとえばB列に計算式が入っている場合、C列に次の数式を入れてオートフィルで下にコピーします。
=FORMULATEXT(B2)
これだけで、B列の数式がC列にテキストで一覧表示されます。
ただし、値セルでは #N/A エラーになります。値セルも含めて一覧にしたい場合はパターン2の方法がおすすめです。
パターン2: ISFORMULA関数と組み合わせてエラーを回避する
数式のないセルで #N/A エラーになるのが困りどころです。ISFORMULA関数を使えば、スマートに回避できます。
=IF(ISFORMULA(B2), FORMULATEXT(B2), "---")
B2に数式があれば数式テキストを表示し、なければ「—」を表示します。数式セルと値セルが混在するシートでも、エラーなしで一覧を作れますよ。
TIP
ISFORMULA関数は、セルに数式が入っているかどうかをTRUE/FALSEで判定する関数です。FORMULATEXT関数とセットで覚えておくと便利ですよ。
パターン3: IFERROR関数でエラーを非表示にする
ISFORMULA関数を使わずに、IFERROR関数でシンプルにエラーを処理する方法もあります。
=IFERROR(FORMULATEXT(B2), "")
数式がないセルでは空欄を表示します。とにかく手軽にエラーを消したい場合はこちらが楽です。
ただし #N/A 以外のエラーも非表示になります。パターン2のISFORMULA関数による明示的な判定のほうが安全です。
パターン4: 数式のドキュメント化(仕様書作成)
複雑なシートの引き継ぎ資料や仕様書を作るとき、FORMULATEXT関数が重宝します。
「セル番地」「説明」「数式」の3列構成にすると、メンテナンスしやすいドキュメントになります。
| A列(セル番地) | B列(説明) | C列(数式) |
|---|---|---|
| D2 | 売上合計 | =FORMULATEXT(計算シート!D2) |
| D3 | 原価合計 | =FORMULATEXT(計算シート!D3) |
| D4 | 粗利 | =FORMULATEXT(計算シート!D4) |
別シートの数式もそのまま取得できます。計算シートと仕様書シートを分けて管理できますよ。
パターン5: 数式の教材・手順書を作る
Excel研修の資料やマニュアルを作るとき、数式をテキストとして表示したい場面がありますよね。
FORMULATEXT関数を使えば、入力済みの数式を自動でテキスト化できます。手入力でコピーする必要がなく、転記ミスも防げます。
=FORMULATEXT(B2)
数式を変更すれば、テキスト表示も自動で更新されます。教材の修正も楽ですよ。
よくあるエラーと対処法
FORMULATEXT関数で遭遇するエラーは、ほとんどが #N/A です。原因と対処法をまとめました。
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| #N/A エラー | 参照先に数式がない(値や空白セル) | IF+ISFORMULAでガードする(パターン2)か、IFERRORで処理する |
| #N/A エラー | 閉じているブックのセルを参照した | 参照先のブックを開いた状態で使う |
| #N/A エラー | 参照先が印刷範囲外(印刷プレビューで起きるケース) | 印刷範囲に含めるか、IFERROR関数でエラーを非表示にする |
| #VALUE! エラー | 引数にセル参照以外(直接値など)を指定した | 引数にはセル参照のみ使用可能。FORMULATEXT("=SUM(A1)") はNG |
| 結果が空文字列 | 自セルを参照している(循環参照) | 別のセルから参照するように数式を変更する |
| 古い数式が表示される | 手動計算モードになっている | Ctrl+Alt+F9 で再計算するか、自動計算モードに切り替える |
NOTE
FORMULATEXT関数の #N/A エラーは「数式が見つからない」の意味です。データの問題ではなく、参照先に数式がないだけなので焦らなくて大丈夫ですよ。
ISFORMULA関数との違い・使い分け
FORMULATEXT関数とよく比較されるのがISFORMULA関数です。名前は似ていますが、役割がまったく違います。
| 比較項目 | FORMULATEXT関数 | ISFORMULA関数 |
|---|---|---|
| 役割 | 数式のテキストを取得する | 数式の有無を判定する |
| 戻り値 | 数式の文字列(例: =SUM(A1:A10)) | TRUE / FALSE |
| 数式がないセル | #N/A エラーを返す | FALSE を返す |
| 主な用途 | 数式の一覧表示・ドキュメント化 | 数式チェック・条件分岐 |
使い分けの基準はシンプルです。
- 「数式があるかどうか」を知りたい → ISFORMULA関数
- 「数式の中身を見たい」 → FORMULATEXT関数
そして実務では、この2つを組み合わせるのが鉄板パターンです。
=IF(ISFORMULA(B2), FORMULATEXT(B2), "---")
ISFORMULA関数で「数式があるか」を先に判定します。あるときだけFORMULATEXT関数で中身を取得する流れです。
TIP
ISFORMULA関数の詳しい使い方は「ISFORMULA関数の使い方|セルに数式が入っているか判定する方法」で解説しています。FORMULATEXT関数とのセット使いについても紹介しているので、あわせて確認してみてください。
まとめ
FORMULATEXT関数は、セルの数式をテキスト文字列として取得できる関数です。
- 引数は「参照」の1つだけ。セル参照を指定するだけで使える
- 数式の計算結果ではなく、数式そのものを文字列で返す
- 数式がないセルでは #N/A エラーになる
- ISFORMULA関数と組み合わせてエラーを防ぐのが定番パターン
- 数式の一覧表やシートの仕様書作成に便利
数式の「見える化」は、シートの引き継ぎやチーム共有で大きく役立ちます。ぜひ活用してみてください。
