Excel関数 逆引き集 | 数式を文字列で表示 → FORMULATEXT

Excel
スポンサーリンク

概要

「このセル、どんな数式が入っていたっけ?」
「結果じゃなくて“式そのもの”を一覧で確認したい」
「隣のセルと同じ式のつもりだけど、本当に同じか目で比べたい」

こういうときに便利なのが 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 を思い出してもらえれば、デバッグも説明もぐっと楽になります。

タイトルとURLをコピーしました