Excel PR

【Excel】エラーの種類と対処法(#REF!, #N/A, IFERROR関数)

記事内に商品プロモーションを含む場合があります
この記事で分かること
  • #####(シャープ)
  • #NULL(ヌル)
  • #DIV/0!(ディバイド・パー・ゼロ)
  • #VALUE!(バリュー)
  • #REF(リファレンス)
  • #NAME?(ネーム)
  • #NUM!(ナンバー)
  • #N/A(ノー・アサイン)
  • 上記エラー値が表示される原因について
  • エラー値か、そうでないかを分岐させるIFERROR関数について

Excelで、#####(シャープ)、#NULL(ヌル)、#DIV/0!(ディバイド・パー・ゼロ)、#VALUE!(バリュー)、#REF(リファレンス)、#NAME?(ネーム)、#NUM!(ナンバー)、#N/A(ノー・アサイン)といったエラー値が表示される原因について紹介します。

Excelを使用中に、上記のエラーが出てきて原因や違いが分からないという方は参考にしてください。

また、IFERROR関数の使い方を理解すれば、エラー値が出力される場合に、代わりにブランクや任意の文字列を出力することも可能です。

#####(シャープ):セル幅が狭い、日付や時刻の計算結果がマイナス

セルに#####(シャープ)が表示される場合、セル幅が狭すぎるか、日付や時刻の計算結果がマイナスの値(負の値)になっています。

ここでは詳しい説明は省きますが、Excelでは数値の「0」が日付の「1900/1/1」に対応しているため、日付を足し算や引き算することができます。時刻も同様に計算することができますが、計算結果がマイナスになると「#####」が表示されてしまいます。

セル幅が狭い場合

セルの幅を広げてあげれば解決します。

日付や時刻の計算結果がマイナスの場合

計算に使われているセルに間違いがないか確認しましょう。(上記の場合、退勤時刻から出勤時刻を引くべきだが、逆になっているため計算結果がマイナスとなりエラーが出力されている。)

#NULL!(ヌル):参照するセル範囲の間違い

セルに#NULL!(ヌル)と表示される場合、参照するセル範囲に間違いがあります。

例えば、「B2」セルから「D2」セルの合計を求めたかった場合に、正しくは「=SUM(B2:D2」と入力する必要がありますが、「:(コロン)」のかわりに「 (スペース)」が入ってしまい、「=SUM(B2 D2」としてしまった場合などに表示されます。

参照するセル範囲に間違いがある場合

関数の引数に指定されているセル範囲に間違いがないか確認しましょう。

#DIV/0!(ディバイド・パー・ゼロ):0で割り算をしている

セルに#DIV/0!(ディバイド・パー・ゼロ)と表示される場合、「0(ゼロ)」で割り算をしています。

「0」を分母にすること、すなわち「0」で割り算することはできないので、#DIV/0!というエラー値が表示されます。自分では、「0」で割り算をしたつもりはなくても、関数のにより出力された値や計算結果が「0」となり、それらを割り算に使用しているという場合もあるので注意しましょう。

「0」ではなくブランク(空欄)で割り算しても#DIV/0!が表示されます。

「0」で割り算をしている場合

「0」やブランクで割り算していないか確認しましょう。

#VALUE!(バリュー):引数の指定方法の間違い

セルに#VALUE!(バリュー)と表示される場合、数値を引数としないといけない関数で文字列を引数にして場合や、関数の書式に合わない引数の指定方法をした場合に表示されます。

数値を指定するはずが、文字列を指定した場合

「+」の演算子で計算するためには、数値を指定する必要がありますが、「C3」セルに「再試験」という文字列が入力されているため、「#VALUE!」が表示されます。引数に何を指定できるか確認しましょう。(上記の場合は、SUM関数を使用して合計を出せば数値のみが足されて「80」と出力されます。)

#REF!(リファレンス):参照しているセルが存在しない

セルに#REF!(リファレンス)と表示される場合、参照しているセルが移動した、もしくは削除されていて、参照するセルが存在しないという意味です。

参照していたセルが削除された場合

上記のように、参照していたセルが削除されると、「#REF!」が表示されます。参照するセルを修正し、設定し直しましょう。

#NAME?(ネーム):関数名の間違い

セルに#NAME?(ネーム)と表示される場合、関数の名前が間違っています。

例えばSUM関数のスペルを間違い、「=SAM(B3:C3)」などと入力した場合、「#NAME?」が表示されます。

関数名を間違えた場合

関数の名前や形式が正しく入力されているか確認しましょう。

関数名を効率良く入力する方法はこちら

Excel、TABキー関数効率化
【Excel】ショートカット, 「Tab」キーによる関数入力の効率化Excelにおける、「Tab」キーによる関数入力を効率化するショートカットを紹介します。...

#NUM!(ナンバー):関数が戻り値を返せない

セルに#NUM!(ナンバー)と表示される場合、引数として指定できる数値の範囲を超えているために、関数が戻り値(結果)を返せない状態です。

例えば、平方根を求めるSQRT関数に対して、「-1」を引数として設定すると、ExcelのSQRT関数では虚数は戻り値としないため、「#NUM!」が表示されます。

その他、DATE関数の「年」に該当する引数に「9999」より大きい値を指定した場合などにも「#NUM!」が表示されます。

平方根を求める関数の引数がマイナスだった場合

SQRT関数の引数に「-1」が指定されているため、「#NUM!」が表示されます。引数を正しい数値に修正しましょう。

#N/A(ノー・アサイン):検索値の引数の参照セルの間違い

VLOOKUP関数などの検索を必要とする関数で、検査値の引数の参照セルを間違えた場合、セルに#N/A(ノー・アサイン)と表示されます。

VLOOKUP関数で対象が存在しなかった場合

VLOOKUP関数で検索値に指定している部分に「ボールペン」は存在しないため、「#N/A」が表示されます。引数や、検索値の参照元を確認しましょう。

エラーかどうかで分岐するIFERROR関数

IFERROR関数を使用することで、出力される値がエラーだった場合に、処理を分岐させることができます。

IFERROR関数は、「=IFERROR(値, エラーの場合の値)」という形式で使用します。

先ほどのVLOOKUPの例で説明すると、上記のように「エラーの場合の値」の部分に”エラー”と入力しておけば、エラーだった場合に「エラー」と出力されます。

もちろん、「エラーの場合の値」の部分に””と入力すればブランクを出力することもできます。

エラー値を出力したくない場合などに覚えておくと便利なので、IFERROR関数覚えておくとよいでしょう。