初級

Excel「#NUM!」の意味と
表示させない(非表示)方法


(約文字)

2016-03-17 2018-05-08

【Excel】”#NUM!”の原因と対策を解説します。

【Excel】”#NUM!”の原因と対策を解説します。

エクセルで表示される「#NUM!」の意味は?その原因と、表示させない(非表示)、消す方法を、初心者さんに向けて、詳しく・分かりやすく、解説します。

また、エクセルで発生する”その他エラー”の解説記事へのリンクをページの最後に用意しましたので、どんなエラーあるかだけでもを知っておくと役立つので、一度参照してください。

1.「#NUM!」が表示される意味

「#NUM!」が表示される意味

エクセルで、セル内に表示される「#NUM!」の意味は、Excelからの「エラー」メッセージです。

NUMは英語の「NUMBER(ナンバー)」の略で”数値”の意味で「数値がNG(ダメ)だよ」と教えてくれています。

2.「#NUM!」エラーの原因

#NUM!が表示され「数値がNGだよ」というその原因は、”数式”又は”関数に無効な数値が含まれている”どちらかの場合に#NUM!エラーが発生します。 以下に、3つのパターンを例に挙げて説明します。

2-1.指定できない値を引数に指定した

#NUM!エラーの原因1

上図の場合、平方根(二乗根)を求める関数「SQRT関数」の引数(A1セル)に、マイナスの数値(-1)を指定しているので#NUM!エラーが発生しています。

SQRT関数の引数に指定できるのは「0」か「正の数」です。ところが、負の値を指定してしまった為、#NUM!エラーが発生しています。

もし負の数を指定するなら、先にABS関数を使い絶対値を求めるのが一般的です。(下記参照)

=SQRT(ABS(A1))

2-2.エクセルが処理できる最大値を超えた

#NUM!エラーの原因2

上図の場合、計算の答え(10の309乗)が、エクセルが扱える正の数を超えてしまった為、#NUM!エラーが発生しています。

エクセルには、計算の仕様と制限で、処理できる最大値が”9.99999999999999E+307”と決まっています。

ちなみにEは指数表記(Exponent)の意味で、上記の数を変換すると以下になります。

9.99999999999999E+307=9.99999999999999×10の307乗=約10の308乗

一般的な計算では、これだけ大きな数を扱うことはまずないと思いますが、エクセルが扱える数に限界があることを覚えておきましょう。

2-3.エクセルが処理できる最小値を超えた

#NUM!エラーの原因3

上図の場合、計算の答え(-10の309乗)が、エクセルが扱える負の数を超えてしまった為、#NUM!エラーが発生しています。

エクセルには、計算の仕様と制限で、処理できる最小値が”-9.99999999999999E+307”と決まっています。

負の数でも、エクセルが扱える数に限界があることを覚えておきましょう。

3.#NUM!エラーを表示させない(非表示にする)方法

3-1.古いエクセル(Excel97、2000、2002、2003)の場合

エクセル97、2000、2002、2003 #NUM!回避方法

古いエクセル(Excel97、Excel2000、Excel2002、Excel2003)で、#NUM!エラーを表示させない(非表示にする)方法を解説します。

この方法は最しいエクセル(Excel2007、Excel2010、Excel2013、Excel2016)でも使えます。

エラーを発生させている計算式に、IF関数と、ISERROR関数を組み合わせて、#VALUE!エラーを回避しています。 まずISERROR関数で計算式を評価し、その評価結果をIF関数で判断し、計算結果にエラーがあれば""(空白)を表示させる、計算結果にエラーがなければ計算結果を表示させてエラーを回避しています。

=IF(ISERROR(計算式),"",計算式)

ポイントは「計算式は2か所とも同じ式を入れる」ことです。

ちなみに「"」はダブルコーテーションです。【Shift】キー+【2】キーで入力できます。

エクセルで「"」を二つ並べて「""」とすると「空白」の意味を持ちます。並べたダブルコーテーションの間にスペースは不要です。

3-2.新しいエクセル(Excel2007、2010、2013、2016)の場合

Excel2007、2010、2013、2016 #NUM!回避方法

新しいエクセル(Excel2007、Excel2010、Excel2013、Excel2016)で、#NUM!エラーを表示させない(非表示にする)方法を解説します。

この方法は古いエクセル(Excel97、Excel2000、Excel2002、Excel2003)では使えません。 IFERROR関数は古いエクセルには搭載されていません。互換性をチェックしておくことが必要かもしれません。

エラーを発生させている計算式に、IFERROR関数ひとつのみで、#VALUE!エラーを回避しています。 IFERROR関数を使って計算式を評価し、計算結果にエラーがあれば""(空白)を表示させる、計算結果にエラーがなければ計算結果を表示させてエラーを回避しています。

=IFERROR(計算式,"")

古いエクセルと考え方は一緒ですが、新しいエクセルは、計算式がひとつでとてもシンプルに回避できます。考えるのも簡単で、入力時の打ち間違いなども起きにくいので、楽に作成できます。

4.互換性チェック

Excel2007、2010、2013 #NUM!回避方法

新しいエクセルであれば、以前のバージョンのエクセルでサポートされていない機能が、手持ちのシートやブックに含まれているか互換性が確認できます。

これは、自分が新しいエクセルで作ったファイルを、古いバージョンのエクセルしか持っていない先方へ渡す場合、先方が問題なくファイルを利用できるか事前にチェックできる機能です。

互換性チェックの方法は、[ファイル]>[情報]>[問題のチェック(ブックの検査)]>[互換性チェック]から確認できます。

5.エクセルで発生するその他のエラー

エクセルで発生するその他のエラーについては、以下の記事で詳しく解説しています。ぜひご覧ください。

この記事は以上です。最後までご覧頂き、ありがとうございました。