「このセル、どんな数式が入ってるんだっけ?」と思ったとき、1セルずつクリックして数式バーを確認していませんか。
セル数が多いシートだと、数式を目視チェックするのは時間がかかりすぎます。数式の一覧をまとめて確認できたら便利ですよね。
そんなときに活躍するのが、スプレッドシートのFORMULATEXT関数です。この記事では、基本の使い方から数式のデバッグ・ドキュメント化まで、実務で使えるパターンを紹介します。
この記事は次のような人におすすめ
– セルに入っている数式をテキストとして確認したい
– 数式の一覧表を自動で作りたい
– チームに共有するシートの仕様書(ドキュメント)を作りたい
– 数式のデバッグや検証を効率化したい
スプレッドシートのFORMULATEXT関数とは?
FORMULATEXT(読み方: フォーミュラテキスト)関数は、指定したセルに入っている数式をテキスト文字列として返す関数です。
「formula」は数式、「text」はテキストの意味です。
たとえばセルB2に =SUM(A1:A10) という数式が入っていたとします。=FORMULATEXT(B2) と書くと、「=SUM(A1:A10)」という文字列が返ります。
数式の「計算結果」ではなく、「数式そのもの」を取得できるのがポイントです。
FORMULATEXT関数の基本構文
=FORMULATEXT(セル)
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| セル | 必須 | 数式を取得したいセルの参照。セル参照のみ指定可能 |
引数は「セル」の1つだけです。直接値(数値や文字列)は指定できません。
NOTE
Excel版のFORMULATEXT関数とまったく同じ構文で動作します。Excelで使い慣れている人はそのまま使えますよ。
FORMULATEXT関数の基本的な使い方
別のセルの数式をテキストで表示する
もっとも基本的な使い方です。B2セルに数式が入っているとき、C2セルに次のように入力します。
=FORMULATEXT(B2)
B2の数式がそのまま文字列で表示されます。計算結果ではなく数式の文字列が返る点がポイントです。
たとえばB2に =SUM(A1:A5) が入っていれば、C2には「=SUM(A1:A5)」と表示されます。
数式がないセルを参照すると #N/A エラーになる
FORMULATEXT関数は、参照先に数式がないとき #N/A エラーを返します。値が直接入力されたセルや空白セルを参照した場合もエラーです。
「数式が見つからない」という意味の正常な動作なので、焦らなくて大丈夫です。エラーを表示したくない場合は、後述のIFERROR関数との組み合わせで回避できます。
別シートの数式も取得できる
別のシートにあるセルの数式も取得できます。シート名を付けて参照するだけです。
=FORMULATEXT('集計シート'!B2)
シート名にスペースや日本語が含まれる場合は、シングルクォーテーション(')で囲みます。スプレッドシートでは多くのシートが日本語名なので、クォーテーションを忘れないようにしましょう。
FORMULATEXT関数の実務活用パターン
パターン1: 数式の一覧表を自動作成する
シートの数式をまとめて一覧にしたい場面は多いですよね。FORMULATEXT関数を使えば、手作業なしで数式一覧を作れます。
たとえばB列に計算式が入っている場合、C2に次の数式を入れて下方向にコピーします。
=FORMULATEXT(B2)
これだけで、B列の数式がC列にテキストで一覧表示されます。
ただし、値セルでは #N/A エラーになります。値セルも含めて一覧にしたい場合はパターン2の方法がおすすめです。
パターン2: IFERROR関数でエラーを回避する
数式のないセルで #N/A エラーになるのが困りどころです。IFERROR関数を使えば、シンプルにエラーを処理できます。
=IFERROR(FORMULATEXT(B2), "(値)")
数式があれば数式テキストを表示し、なければ「(値)」を表示します。数式セルと値セルが混在するシートでも、エラーなしで一覧を作れますよ。
TIP
エラー時の表示は
""で空欄にしても構いません。ただし「(値)」や「—」のように明示しておくと、数式がないことが一目でわかって便利です。
パターン3: IF関数で数式セルと値セルを区別する
もう少し丁寧に判定したい場合は、IF関数と組み合わせる方法もあります。
=IF(ISFORMULA(B2), FORMULATEXT(B2), "---")
ISFORMULA関数でB2に数式があるかをTRUE/FALSEで判定します。数式があるときだけFORMULATEXT関数で中身を取得する流れです。
IFERROR関数よりも明示的に判定しているため、#N/A 以外のエラーまで隠してしまう心配がありません。
パターン4: ARRAYFORMULA関数で一括表示する
スプレッドシートならではの便利な使い方です。ARRAYFORMULA関数と組み合わせると、1つの数式で複数セルの数式を一括表示できます。
=ARRAYFORMULA(IFERROR(FORMULATEXT(B2:B20), "(値)"))
B2からB20までのすべてのセルの数式を一括でテキスト表示します。1セルずつコピーする必要がないので、広い範囲の数式確認にとても便利ですよ。
NOTE
ARRAYFORMULA関数でFORMULATEXTを展開する場合、IFERROR関数も一緒にラップしないと値セルの行で #N/A エラーが出ます。セットで使うのがポイントです。
パターン5: 数式のドキュメント化(仕様書作成)
複雑なシートの引き継ぎ資料や仕様書を作るとき、FORMULATEXT関数が重宝します。
「セル番地」「説明」「数式」の3列構成にすると、メンテナンスしやすいドキュメントになります。
| A列(セル番地) | B列(説明) | C列(数式) |
|---|---|---|
| D2 | 売上合計 | =FORMULATEXT(‘集計’!D2) |
| D3 | 原価合計 | =FORMULATEXT(‘集計’!D3) |
| D4 | 粗利 | =FORMULATEXT(‘集計’!D4) |
別シートの数式もそのまま取得できます。計算シートと仕様書シートを分けて管理できますよ。
パターン6: 数式のデバッグに活用する
「計算結果がおかしいけど、どのセルの数式が原因かわからない」というとき、FORMULATEXT関数でデバッグできます。
隣の列に数式をテキスト表示させれば、計算結果と数式を横に並べて確認できます。参照先の間違いやカッコの閉じ忘れなど、数式バーだけでは見つけにくいミスも発見しやすくなりますよ。
=FORMULATEXT(B2) & " → " & B2
数式テキストと計算結果を1つのセルにまとめて表示する書き方です。「=SUM(A1:A5) → 150」のように、数式と結果を並べて確認できます。
よくあるエラーと対処法
FORMULATEXT関数で遭遇するエラーは、ほとんどが #N/A です。原因と対処法をまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #N/A | 参照先に数式がない(値や空白セル) | IFERROR関数でラップする(パターン2) |
| #N/A | 別のスプレッドシートのセルを参照した | 同一スプレッドシート内のセルのみ参照可能。別ファイルの数式は取得できない |
| #REF! | 参照先の行や列が削除された | 参照先セルが存在するか確認する |
| 古い数式が表示される | シートの再計算が走っていない | セルを再入力するか、空のセルを編集してEnterを押す |
NOTE
スプレッドシートのFORMULATEXT関数は、同一スプレッドシート内のセルのみ参照可能です。IMPORTRANGE関数で取り込んだ先の数式は取得できません。Excel版とはこの点が異なるので注意してください。
ISFORMULA関数との違い・使い分け
FORMULATEXT関数とよく似た名前のISFORMULA関数があります。役割がまったく違うので、整理しておきましょう。
| 比較項目 | FORMULATEXT関数 | ISFORMULA関数 |
|---|---|---|
| 役割 | 数式のテキストを取得する | 数式の有無を判定する |
| 戻り値 | 数式の文字列(例: =SUM(A1:A10)) | TRUE / FALSE |
| 数式がないセル | #N/A エラーを返す | FALSE を返す |
| 主な用途 | 数式の一覧表示・ドキュメント化 | 数式チェック・条件分岐 |
使い分けの基準はシンプルです。
- 「数式があるかどうか」を知りたい → ISFORMULA関数
- 「数式の中身を見たい」 → FORMULATEXT関数
そして実務では、この2つを組み合わせるのが鉄板パターンです(パターン3で紹介)。
=IF(ISFORMULA(B2), FORMULATEXT(B2), "---")
ISFORMULA関数で「数式があるか」を先に判定し、あるときだけFORMULATEXT関数で中身を取得する流れです。
まとめ
FORMULATEXT関数は、セルの数式をテキスト文字列として取得できる関数です。
この記事のポイントをおさらいしておきましょう。
- 引数は「セル」の1つだけ。セル参照を指定するだけで使える
- 数式の計算結果ではなく、数式そのものを文字列で返す
- 数式がないセルでは #N/A エラーになる
- IFERROR関数でラップすればエラーを簡単に回避できる
- ARRAYFORMULA関数と組み合わせれば一括で数式一覧を作れる
- 数式の一覧表やシートの仕様書作成、デバッグに便利
まずは =FORMULATEXT(B2) のシンプルな使い方から試してみてください。IFERRORとARRAYFORMULAの組み合わせを覚えれば、数式の「見える化」がグッとラクになりますよ。
