概要
「このセル、どんな数式が入っていたっけ?」
「結果じゃなくて“式そのもの”を一覧で確認したい」
「隣のセルと同じ式のつもりだけど、本当に同じか目で比べたい」
こういうときに便利なのが FORMULATEXT 関数です。
FORMULATEXT は、セルの中に入っている 数式そのものを“文字列”として表示 してくれる関数です。
結果ではなく“裏側の式”を見える化できるので、チェックやトレース、教材作りにも役立ちます。
FORMULATEXT の基本
書式と動き
基本の書式はとてもシンプルです。
=FORMULATEXT(参照)
ここでいう「参照」は、
数式を取り出したいセル(たとえば A1 や B2)です。
動きはこうなります。
- 参照先に「数式」が入っている場合
→ その数式を文字列として返す - 参照先が「ただの値」「空白」の場合
→#N/Aエラー(数式がないため)
たとえば、A2 に次の式が入っているとします。
=IFERROR(C2/B2, 0)
このとき、B2 に
=FORMULATEXT(A2)
と書くと、B2 には
=IFERROR(C2/B2, 0)
という「式自体の文字」が表示されます。
数式を一覧で文字表示する基本パターン
列の数式を丸ごと文字として確認する
例えば、B2:B10 にいろいろな数式が入っているとします。
それらを C列に「文字として」一覧表示したいときは、C2 にこう書きます。
=FORMULATEXT(B2)
あとは、この式を C10 までコピーします。
すると、
C列には B列の数式がそのまま文字としてズラッと並びます。
こうすると、
- どの行だけ参照範囲が違うか
- 絶対参照
$の付け方がどこでズレたか - 間違って違う列を参照している行がどこか
といった「数式の違い」を一目で確認できます。
隣のセルと“同じ数式”かどうかを確認する
結果は違うが、式が本当に同じかを比べたいとき
「B列とC列には同じ数式を入れたつもりなのに、結果が違う」
こういうときは、式の“見た目”を比べるのが早いです。
D2 と E2 に次のように入れます。
D2: =FORMULATEXT(B2)
E2: =FORMULATEXT(C2)
そうすると、B2 と C2 に入っている式が文字として表示されるので、
- 範囲が違っていないか
- 片方だけ
$固定が抜けていないか
などを目で比べて確認できます。
必要に応じて、D2:E2 を下にコピーすれば、各行ごとの違いも一覧で見られます。
数式を教材・ドキュメントとして残す
結果と式を並べて“教科書のような表”を作る
たとえば、A列に「説明」、B列に「数式セル」、C列に「その結果」を表示し、
D列に「式そのもの」を表示する、といった使い方もできます。
D2 に
=FORMULATEXT(B2)
と入れてコピーすれば、
「どんな式でその結果が出ているか」を読める形で一覧化できます。
マニュアル・社内資料・教育用シートなどで、
「この列はこういう式ですよ」と示したいときにとても便利です。
FORMULATEXT を使うときの注意点
数式がないセルは #N/A になる
FORMULATEXT は「結果」ではなく「数式」を取ってくる関数なので、
参照先が「ただの値」や「空白」の場合は #N/A になります。
混在している列に対して使うときは、
必要に応じて ISFORMULA などと組み合わせてあげると親切です。
例:
=IF(ISFORMULA(A2), FORMULATEXT(A2), "")
これなら、
- A2 に数式がある → その式を文字表示
- A2 が値や空白 → 空白を表示
という、きれいな一覧が作れます。
例題
問題1
A2 に =C2*D2 という数式が入っています。
この数式そのものを B2 に文字として表示したいとき、B2 にはどんな式を書けばよいですか。
=FORMULATEXT(A2)
問題2
B2:B10 にさまざまな数式が入っています。
それぞれの数式を C列(C2:C10)に文字として表示したいです。
C2 に入れる式を書いてください。
=FORMULATEXT(B2)
(この式を C10 までコピーします。)
問題3
A2:A10 のうち、数式が入っているセルについてだけ式を文字表示し、
数式がないセルは空白にしたいです。
B2 に入れる式の一例を、ISFORMULA と FORMULATEXT を組み合わせて書いてください。
=IF(ISFORMULA(A2), FORMULATEXT(A2), "")
問題4
B2 と C2 に入っている数式が本当に同じかどうかを、
D2 と E2 に文字として表示して見比べたいです。
D2 と E2 にそれぞれどんな式を書けばよいですか。
D2: =FORMULATEXT(B2)
E2: =FORMULATEXT(C2)
問題5
A2:A20 に数式が入っており、その式を一覧として別の列に表示してマニュアルを作りたいです。
B2 に A2 の式を文字表示する関数を書き、その式を下にコピーして一覧化したいとします。
B2 の式を書いてください。
=FORMULATEXT(A2)
まとめ
「数式を文字列で表示 → FORMULATEXT」は、
結果ではなく “どんな式でその結果を出しているか” を確認したいときの基本テクニックです。
型はこれだけです。
=FORMULATEXT(数式が入っているセル)
数式のチェック・比較・教材化・マニュアル作成など、
「式そのものを人間の目で読みたい」と感じた場面で、
まず FORMULATEXT を思い出してもらえれば、デバッグも説明もぐっと楽になります。
