Categories: Excel

DIV/0・VALUE・N/A・REF等を非表示にする方法と原因_Excelエラー値

Excelを日常的に使っているほとんどの方が遭遇したご経験のあるエラー値。#DIV/0!や#VALUE、#N/A、#REF!。

これらのエラー値については、ユーザー側のニーズとして発生原因よりも「非表示にしたい」というニーズが高いようです。

非表示にしたい・・

この記事では、そのニーズに応えるとともに各エラー値の発生原因も紹介します。

#DIV/0!、#VALUE、#N/A、#REFなどのエラー値が発生した場合でも、セル上で非表示にする方法とエラーの意味を具体例で説明します。

Excelのエラー値

Excelで数式を使った場合で、計算結果が正しく算出できないときに、Excelはエラーを返します。たとえば計算式自体が正しくない場合や、計算式で参照する先のセルに計算に必要なデータが見つからない場合などです。

エラー値一覧

Excelのエラー値
  • DIV/0!
  • #N/A
  • #NAME?
  • #NULL!
  • #NUM!
  • #REF!
  • #VALUE!

上記のように、Excelのエラー値は「#(シャープ)」で始まるアルファベットと記号の組み合わせのため、エラー値からその意味を推測することは困難です。

#から始まるエラー値

エラー値の処理

数式エラーの可能性があるセルには、緑色のエラーインジケーターが表示されます。併せて、そのセル付近に「!」のアラート記号が表示された小さなアイコンも表示されます。(「エラーのトレース」といいます)

数式エラーの可能性あり
エラーのトレース
エラーの処理

エラーのトレースにマウスのカーソルを合わせると、そのエラーの意味が表示されます。

エラーの意味が表示される

さらに、エラーのトレースをクリックするとヘルプを表示したり、エラーを無視することができます。エラーを無視すると、緑色のエラーインジケーターやエラートレースは表示されなくなります。

エラートレースをクリックした場合の選択肢
エラーを無視した場合

エラーを無視してもエラー値はセルに表示されたままです。エラー値を非表示にする方法は、次章以降で説明します。

#DIV0/!

#DIV/0!は「ディブ・ゼロ」と読みます。DIVはDivideの略で「割る」という意味です。

#DIV/0!の意味

#DIV/0!のエラー値の意味「0や空白セルで割り算をしている」です。

下記のイメージ図は、#DIV/0!のエラー値が発生している例ですが、数式は「=A2/B2」となっており、つまり「30割る0」の計算式になっているのです。

0や空白セルで除算した場合のエラー値

#DIV/0!を非表示にする

Excelの関数「IFERROR」はエラー値の代わりに表示する値を指定することができます。

#DIV/0!が発生している場合でも、「IFERROR」を使えば#DIV/0!を非表示にすることができます。

通常の計算式

=A2/B2

#DIV/0!を非表示にする計算式

=IFERROR(A2/B2,””)

#N/A

#N/Aは「ノー・アサイン」と読みます。VLOOKUP関数でよく見かけるエラー値で、検索値となるセルが空白の場合などに発生します。

#N/Aの意味

下記のイメージ図は、#N/Aのエラー値が発生している例ですが、VLOOKUPでセルA7を参照しているにも関わらず、セルA7は空白のため検索ができない状態になっているのです。

=VLOOKUPの参照値が空白

#N/Aを非表示にする

Excelの関数「IFERROR」はエラー値の代わりに表示する値を指定することができます。

#N/Aが発生している場合でも、「IFERROR」を使えば#N/Aを非表示にすることができます。

通常の計算式

=VLOOKUP(A7,D1:E50,2)

#N/Aを非表示にする計算式

=IFERROR(VLOOKUP(A7,D1:E50,2),””)

#NAME?

#NAME?は「ネーム」と読みます。関数の名前やカッコ内の記述(引数など)を間違えている場合に発生します。

#NAME?の意味

下記のイメージ図は、#NAME?のエラー値が発生している例です。関数名やカッコ内の記述(引数)が間違えているのです。

関数の名前違い

#NAME?エラーを2例紹介します。関数の名前を間違えている例と、カッコ内の記述を間違えている例です。見やすいように対象のセルA5は関数を表示していますが、[Enterキー]を押下すると#NAME?が表示されます。

〇=SUM ×=SMU
〇A1:A4 ×=A1A4

#NAME?は非表示にできる?

ここまでの説明で、エラー値を「IFERROR」関数を使って非表示にする方法を紹介しましたが、#NAME?に関しては関数名やカッコ内の記述誤りが原因のため、非表示にするのは現実的ではありません。

間違いの箇所を突き止め、訂正しましょう。

補足です。他のエラー値のように、#NAME?も「IFERROR」関数を使えば非表示にすることは可能です。ただし、前述の通り強制的に#NAME?を非表示にする必要性はなく、訂正するほうが現実的でしょう。

#NULL!

#NULL!は「ヌル」と読みます。主にSUM関数の範囲指定にスペースが混在している場合に発生します。

#NULL!の意味

下記のイメージ図は、#NULL!のエラー値が発生している例ですが、セルA1:A4の合計にセルC1を加算するSUM関数のカッコ内に半角スペースを含めてしまっているのです。

半角スペースが混在
〇A1:A4,C1 ×A1:A4 C1

#NULL!は通常のSUM関数にスペースを含めてしまった場合の他、SUM関数で論理積(AND)を求める場合において、共通箇所(重なる箇所)が存在しない場合にも発生します。

どちらかというと、#NULL!はこの論理積のパターンで発生するケースが多いのかもしれません。

〇A1:A4 A4:D4 ×A1:A4 B4:D4

論理積(AND)については後日、別記事で説明します。

#NULL!は非表示にできる?

「IFERROR」関数を使えば#NULL!も非表示にできますが、前章の#NAME?同様、そもそも数式内の記述誤りが原因のため、非表示にするのは現実的ではないでしょう。

間違いの箇所を突き止め、訂正しましょう。

#NUM!

#NUM!は「ナンバー」と読みます。主にExcelの最大値・最小値を超過した場合や、特定の関数で引数の設定が誤っている場合に発生します。

#NUM!の意味

下記のイメージ図は、#NUM!のエラー値が発生している例ですが、セルA1:A4の範囲からLarge関数を使って上から5番目に大きい数値を抽出していますが、データの個数が4つしかありませんので整合性に欠けているのです。

この例はLarge関数を使った場合ですが、その他、Excelの最大値・最小値を超えた数値を扱った場合も#NUM!が発生します。

〇A1:A4,4 ×A1:A4,5
※カンマの後の数値は「〇番目に大きい数」を意味する

なお、同じようなケースでVlookupの列の範囲が超過することも考えられますが、Vlookupの場合は#NUM!エラーは発生せず、#N/Aや#REF!が発生します。(A列からC列の範囲に対して4以上の引数を設定した場合など)

#NUM!を非表示にする

Excelの関数「IFERROR」はエラー値の代わりに表示する値を指定することができます。

#NUM!が発生している場合でも、「IFERROR」を使えば#NUM!を非表示にすることができます。

通常の計算式

=LARGE(A1,A4,5)

#NUM!を非表示にする計算式

=IFERROR(LARGE(A1:A4,5),””)

ただし、上記の例のように単に整合性が欠けていることが原因であれば、数式を訂正するほうが現実的です。どうしても部分的に#NUM!が発生してしまいメンテナンスが困難な場合にのみ、「IFERROR」を使って非表示にするようにしましょう。

#REF!

#REF!は「リファレンス」と読みます。主に数式が参照しているセル(行・列含む)を削除した場合に発生します。

今回紹介しているエラー値の中でも#REF!の発生頻度は高いと思いますので、原因なども含めよくご存じかもしれませんね。

#REF!の意味

下記のイメージ図で、#REF!のエラー値が発生するまでの経緯を説明します。#REF!の場合、エラー値発生後の状態を見ても理屈が分からないためです。

#REF!エラー発生までの経緯

下のイメージ図(①)では、A列の1行目から4行目にかけて、セルC1の値を参照し乗算するような数式が設定されています。そして、セルA5には上の4行分の計算結果を合計するSUM関数が設定されています。

今回は分かりやすいように、それぞれのセルの隣に実際に設定されている数式を赤字で表示しています。

①A列にはセルC1の値を参照する数式が設定されている
②参照先になっているC列を削除すると・・
③A列で#REF!が発生した
④数式も[=30*C1]から[=30*#REF!]に置き換わっている

#REF!は非表示にできる?

「IFERROR」関数を使えば#REF!も非表示にできますが、予めセルが削除されることを予想して「IFERROR」を設定することはないでしょう。また、何らかの原因でセルが削除されたのであれば、元の参照先の状態復旧や壊れた数式の更新をするべきであり、#REF!を非表示にするのは現実的ではないでしょう。

#VALUE!

#VALUE!は「バリュー」と読みます。Excelだけではなく多くのプログラミング言語でも使われており、「値」を意味する言葉です。(Excelで使えるプログラミング言語「VBA」でもVALUEは頻出します)

主に四則演算を使った計算範囲に文字列が混在している場合に発生します。

#VALUE!の意味

下記のイメージ図は、#VALUE!のエラー値が発生している例ですが、セルA2:A4の範囲に入力された値をSUM関数ではなく演算子(+)を使って合計値を計算しています(セルA5)。ただし、セルA3には文字列が混在しているため、計算ができない状態になっているのです。

一方、同じように文字列が混在していてもSUM関数の場合には、文字列をスキップしてその他の範囲の合計を計算してくれます。この場合、#VALUE!のエラー値は発生しません。

演算子を使った計算に文字列が混入

ただし、SUM関数を使った場合でも計算範囲の中に#VALUE!が含まれていれば、#VALUE!が発生します。

計算範囲に#VALUE!があればSUM関数でも#VALUE!

#VALUE!は非表示にできる?

Excelの関数「IFERROR」はエラー値の代わりに表示する値を指定することができます。

#VALUE!が発生している場合でも、「IFERROR」を使えば#VALUE!を非表示にすることができます。

通常の計算式

=A1+A2+A3+A4

#VALUE!を非表示にする計算式

=IFERROR(A1+A2+A3+A4,””)

ただし、上記の例のように四則演算の計算範囲に文字列が混在していることが原因であれば、問題のある箇所を訂正するほうが現実的です。どうしても部分的に#VALUE!が発生してしまいメンテナンスが困難な場合にのみ、「IFERROR」を使って非表示にするようにしましょう。

Webs_Studio

2024.4.4より、当サイトWebsは「Micsorsoft,高度ITツール,デジタルテクノロジー」を主テーマにしたメディアを配信します。 2023年に実現した「AIの民主化」によって、世界は大きなターニングポイントを迎えました。