よく出るExcelのエラーメッセージの意味と対処法
表計算ソフトの代表格であるMicrosoft Excelですが、数式や関数を使用しているとエラーメッセージが出ることも少なくありません。英字のエラーメッセージのため、どのようなエラーなのか一目で分かりにくく、どのようなポイントに注意して見返すべきか分からないという人もいるでしょう。
この記事では、エクセルで出やすい計算時のエラーメッセージと、その解決法について解説します。
計算で良くあるエラーの意味と直し方
計算で良くあるエラーには、以下のものがあります。
計算時エラー | 意味 |
---|---|
#DIV/0! | ゼロで割り算をしている |
#N/A! | 参照して返す値がない |
#NAME? | 関数が間違っている |
#REF! | セルが参照できない |
#VALUE! | 参照セルに問題がある |
####### | 文字列が長すぎる/意図しないマイナス数値 |
日本語メッセージ | 日本語の文言の通り |
それぞれの場合について解説します。
#DIV/0!
セル同士の割り算の時に、分母の値がゼロになっていると生じます。
例えば、下記の画像のような計算式の場合に出てくるエラーです。
こうしたエラーをあらかじめ発生させないようにするには、計算式を「D列が0だった場合はハイフンで返す」などの式にしておく方法が有効です。
上の場合であれば、『=if(D5=0,”-“,C5/D5)』(D5がゼロのときは”-“を返し、そうでなければC5/D5を返す)となります。
また、参照しているセルに数字・文字が入力されていない場合もこのエラーメッセージが出ます。
数式が指定しているセル位置が正しいかについても、一度確認してみましょう。
#N/A!
VLOOKUP関数を使用した場合などに表示されるエラーです。
図の下側にある『成長率』は、上の表で計算した数値をVLOOKUP関数で参照する、という計算を行っています。
それぞれ「山田」「佐藤」「石坂」というデータが入力された行のE列のデータを参照して返すように指示されていますが、上の表には「石坂」という担当者名がないため、エラーが起きています。
このようなエラーが起こる場合は、
- 参照する文字列が間違っている
- 参照する文字列に不要な空白が入っている
- 参照先の範囲に対象の文字列が含まれていない
などのケースが考えられます。
文字列が間違っていないか、不要な空白がないか、参照セルの指定範囲が間違っていないかを確認してみてください。
#NAME?
『#NAME?』のエラーは、関数のスペルが間違っているときなどに表示されるエラーです。
上図、「佐藤」の列のエラーでは、合計値を返すSUM関数のスペルが間違えています。
「上野」の列の4月~6月実績のセルには『上野売上』という名前を付けて管理しているため、その合計値を計算できます。
対して、『石井売上』という名前は管理されていないため、「石井」の列ではSUM関数のエラーとして表記されています。
これらの解決法ですが、まずは関数のスペルミスがないかを確認しましょう。
名前管理はエクセルに慣れていないと上の画像のような計算トラブルを起こす元になりますので、特段必要でなければ使わないようにすることをおすすめします。
#REF!
『#REF!』は計算式で参照しているセルが消えた時などに表示されるエラーです。
このとき、G列はF列の数値を計算に使用しています。
ここで、F列を列ごと削除すると、参照する値がなくなってエラーが生じます。
このようなエラーが出るのは、セルを『行ごと・列ごと削除』した場合が大半です。
誤ってデータを消したのであれば『やり直し(Ctrl+Z)』で元に戻すことでエラーが回復します。
もし削除したデータ列が不要になったのであれば、『#REF!』になっているセルの計算式自体を改めて入力しましょう。
上の例であれば、『月平均』のセルに『=SUM(C4:E4)/3』もしくは『=AVERAGE(C4:E4)』と入力すれば、正しい値が計算・表示できます。
#VALUE!
計算する際に、参照元のセルに数字ではないものが含まれていると表示されるエラーです。
上の画像、「上野」のデータでは、6月の実績に数字ではない「a」というデータが含まれています。
「石井」の6月実績には一見何も含まれていないように見えますが、実はスペース(一字空白)が入力されており、これがエラーを引き起こしています。
この「空セルだと思ったらスペースキーが入力されていた」というエラーは非常に多く起こりますので、注意しましょう。
また、一見数字に見える表示になっているものも、エクセルファイル上では文字列として扱われている場合には『#VALUE!』エラーが出ます。
『#VALUE!』が出た場合は、計算を参照しているセルのどこかに数字ではないものが含まれていますので、一度参照先のセルを確認して、正しい入力値に直してください。
#######
表示幅に対して極端に長い文字列が入力されている場合、もしくは「時刻計算でマイナスの値が出る」などのイレギュラーが起こった際に表示されます。
文字列が長すぎる場合については、小数点以下の表示桁を減らすなどして調整してください。
上の図では、退勤時間(D列)から出勤時間(C列)を引き、さらに休憩時間(E列)をマイナスして「実働時間」を求めています。
「山田」は24時までの中に出勤と退勤が含まれているため、エクセル上でも問題なく計算できています。
「佐藤」は本来、11:30~24:00と0:00~0:15の勤務(合計12時間45分)から休憩時間1時間を引く、と計算しなければなりません。
しかし、エクセル上では「マイナス11時間15分の勤務から休憩1時間を引く」と計算されてしまうため、マイナスの時間を表示しなければならなくなり、エラーが生じています。
「石井」のように、「退勤時間が8時より前の場合は、前日から働き続けているものとして計算する(退勤時間に24を足す)」などの処理をして、時間をプラスの表示にしてやれば、このエラーは解決します。
日本語メッセージ
こうしたエラーは、『IF関数でカッコの対応位置が間違えている』など、数式を見返せば正しく直せる場合が大半です。
もし一目で見て解決しそうにない場合は、1つのセル内で多くの計算を完結させようとして分かりづらくなっているのかもしれません。
手間はかかりますが、計算するための行・列を設けて、事前にある程度計算するステップを踏むことで、混乱を解決できます。
エクセルのエラーには落ち着いて対処を
エクセルを業務で使用していれば、数式エラーは日常的に起こります。
ほとんどの場合は
- 関数のスペルが間違っている
- 気付かないうちにスペースを入力していた
- 参照先のセルのスコア自体がエラー値になっている
などによるものです。
もし見返しても分からない場合は、現在エラーが起きているセルに、再度数式を入力し直してみるのも一つの手です。
打ち直して問題が解決する場合は、数式に問題があった可能性があります。また、同じエラーが出る場合は、参照しているセルに問題があるかもしれません。
エラーの原因を1つずつ調べていけば、必ず問題は解決します。
落ち着いて対処していきましょう。