Excelで関数を使っているとエラーが表示されることがあります。典型的な例を挙げて解決策を考えます。
Excel エラーの意味と対応策
Excelの関数や機能の使い方が分かっていても、エラーにどう対処すればよいかが、分からないことがあります。
最初から全てのケースに対応するのは難しいので、典型的なケースを知っておいて、少しずつ幅を広げていくのが良いでしょう。
以下に典型的なケースとその解決策を挙げてみます。
#REF!
「#REF!」は、次の画像のように、セル番地を指定して、そのセルに入力されているデータを使うように指示する場合に(「参照」といいます)、
指定したセルを誤って削除してしまった時に表示されるエラーです。
シートを見やすくするために、ムダな行や列を削除する途中で、起こりがちなエラーです。
この場合の対処法は、落ち着いて、「ctr+Z」のショートカットを使い、動作を一つ戻すこと。
動作を一つ戻すことは、全てのエラー対応の基本になりますから、エラーが出ても焦らないことと、動作を一つ戻すことを心がけておきましょう。
ただ、「ctr+Z」でも解決しない場合があります。
それは、セルではなくシートを削除してしまったとき。
こうなると、どうしようもないのですが、もしバックアップファイルがあって、削除してしまったシートと同じデータが残っている場合は、そのシートをコピーして、
「ctr+F」で置換を開き、「#REF」とコピーしたシートのシート名(’201503-2’)を置換すると、
元通りに表示されます。
#N/A
「#N/A」は、
①VLOOKUP関数のように、指定したデータを探す関数を入力したのに、一致するデータがない場合や、
②探したいデータを入力するセル(ここではE2)が空白の場合に、
表示されます。
この場合の対処法は、①一致するデータが無い場合は、関数自体にエラーはないので対処する必要はありません。
ただ、「#N/A」を表示させたくないのであれば、IF関数とISERROR関数を組み合わせることで、「#N/A」を非表示にできます。
具体的には、
=IF(ISERROR(VLOOKUP(E2,$E$4:$F8,2,0)),””,VLOOKUP(E2,$E$4:$F$8,2,0))
このようになりますが、詳細な説明は、こちらの記事を参考にしてみて下さい)。
②探したいデータが空白の場合は、探したいデータを該当するセルに入力すればOKです。
「#N/A」は、原因を正しく理解すれば対処は難しくありません。
#DIV/0!
#DIV/0!は、数値を「0」で割ったときに表示されるエラーです。
関数のエラーと言うより、「その計算はできませんよ」という割り算のルールとしての注意です。
割る数がのセルが「0」の時だけでなく、空欄のときにも「#DIV/0!」と表示されるので、何がエラーかが分かりづらい時があります。
エラーの意味さえ分かれば問題はないと思いますが、「#DIV/0!」の表示は、目障りなので非表示にすることもできます。
方法は先ほどの「#N/A」の場合と同様で、IF関数とISERROR関数を組み合わせることで、可能です。
具体的には、
=IF(ISERROR(B2/C2),””,(B2/C2))
このようになります。
#VALUE!
#VALUE!は数値データを使うべき所を、文字列(文字データ)にしてしまったために表示されるエラーです。
上の例でも足し算の式に、文字列が入っているために「#VALUE!」と表示されています。
Excel上で入力した数字を使っている場合はあまり出ないエラーですが、このエラーが起こりやすいのは、他のアプリからデータをダウンロードして処理しようとするケース。
たとえば、会計ソフトからダウンロードしたデータについて、関数を使って計算しようとする時などに、表示されることがあります。
会計データからダウンロードする際に、仕様によっては、見た目は数値であるにもかかわらず文字データとして保存されることがあるのです。
会計データは膨大な量になることがあるため、文字列で保存されたデータを再度入力し直すことは現実的ではありません。
この場合の対処方法は、関数を使う方法を使います。
VALUE関数です。
VALUE関数は文字列が入力されたセルを指定すると、数値データに変換してくれる関数です。
このVALUE関数の式をコピーして、文字列を数値データに変えた上で処理すれば、通常の数値データとして扱うことができます。
まとめ
Excel関数を扱う過程ではエラーが表示されることもよくありますが、それを修正するには相応の知識が必要です。
まずは典型的な例を覚えておいて、実践の中で知識の幅を広げていくのが効率的です。
<おまけ>
エラーの修正はエクセルの作業の中でも難しい部類に入ります。
自力でエラーの修正ができるようになったら、実力が一段上がったと考えて良いでしょう。