こんにちは、原田です。
意外に知られていない素人臭いExcel講座です。
本日は、関数を組んで表全体にコピーしてみたところ、
所々にエラーが出てしまって困った困ったとなるのをなんとかする方法です。
なんでエラー出んねん!
症状を説明します。
以下のような表でD列に、B列に対するC列の割合を計算する数式を入れてみました。
すると、一部の行で計算結果が”#DIV/0!”というエラーを起こしてしまった。
しょうがないので手でベタ打ちで”0″と入れておいた。
みたいな状況です。
せっかく関数を組んでシステマティックに表を作成しているのに、一部分だけ手入力とか、
面倒臭い上に、次回その表を更新する時の更新漏れの原因にもなります。
なので、関数を組む際にはそのような場当たり的な手修正はしてはいけません。
でも、エラーをそのまま方っておくのも不細工だし、
何とかならんかなぁ、というジレンマですね。
エラーが出た時に最初に考えないといけないのは、
そのエラーが”と”出て構わないエラー”なのか、
“出てはいけないエラー”なのかを判断することです。
Excelのエラーは意外とたくさん
以下にExcelでのエラーの一覧を上げてみます。
#REF!
Reference(リファレンス)先がありません!というエラーです。
リファレンスとは参照のことです。
例えばA1+B1という数式が入ったセルがあり、
A1もしくはB1をセルごと削除したような時に出るエラーです。
通称「レフってる」
#NAME?
Name(ネーム)です。
名前ではなく、「関数の記述が間違ってるよ」、というエラーです。
通称「ナメってる」
#DIV/0!
“ディバイド・パー・ゼロ”と読みます。
割り算の分母を0にしてしまった時に出るエラーです。
分母0は数学的には定義できないですからね。
通称「ディブゼロ」
#VALUE!
バリューです。
ただし、価値はありません。
このエラーは数式内で想定されているのと違う値を参照しているような時に出現します。
例えばA1+B1という数式で、参照先のA1もしくはB1に数字以外の値が入力されている時です。
このエラーは、全体の一箇所だけに出るというよりは、出る時は表全体に出ることが多いです。
なので通称「バリューセット」
#NULL
ヌルと呼びます。
関数で指定している”範囲”をExcel側が正しく認識してくれない時に発生するエラーです。
どちらかというとあまり見ないエラーです。
通称「ヌルってる」
#N/A
Not Appricable(ノットアプリカブル=該当無し)と思いきや、
No Assign(ノーアサイン=割り当て無し)が正解。
指定したセルを探す数式、例えばVLOOKUP関数などでよく出現するエラーです。
探しに行ったけど無かったよ!ということです。
やっぱり意味から考えてもNot Appricableでいいと思うんですけどねぇ。
通称「エヌエー」(つまんね)
#NUM!
ナンバーです。
演算結果がExcelの脳ミソを超えていたり、
関数内の引数の数を誤っていた時などに発生します。
要するにExcelでは計算できねーよ、という場合です。
どちらかというとレアですかね。個人的には。
通称「南無」
Excelのエラー対処法
出てはいけないエラー
このうち、出てはいけないエラーは↓です。
- #REF!
- #NAME?
- #NULL
- #VALUE!
これらのエラーは、いずれも数式そのものが間違っていたり、
数式内で参照しているセルに問題が有るケースだからです。
もしこれらのエラーが出ている場合には、手修正でごまかしたりしてはいけません。
かならずどこかに直すべきセルがあります。
なので、これらのエラーについては、必ずエラーの原因究明を行ってください。
出ていてもいい場合があるエラー
一方、#N/A、#NUM!、#DIV/0!については、
出てはいけないエラーである時と、そう出ない時があります。
おおむね以下のような感じで見分けることができます。
- 数式を表全体にコピーした時に、
一部分だけこのエラーが出ているような場合は出ても良いエラー。 - 表全体にエラーが出ているような場合は出てはいけないエラー
全体にエラーが出ている時は、他のエラーと同様に原因究明です。
そうでなくて、出てもいいエラーの時は以下読み進めてください。
エラーの回避にはIFERROR
エヌエーと南無とディブゼロは表や数式が正しくても出てきます。
それは、エラーそのものが、数式の正しい結果であるというケースです。
例えば、”該当なし”が正解である場合や、
“売上個数が0で利益率が出せない”というような場合です。
ですが、上でも述べた通り放っておくと表の見た目が不細工になりますので、
以下の方法で綺麗にしましょう。
エラーの見た目を何とかするには、IFERROR関数を使います。
IFERROR関数の引数(使い方)は次の通りです。
つまり、エラーが出ていない時には通常の計算結果、
エラーを吐いてしまった時には、特定の値を表示しなさい、というものです。
例えばVLOOKUP関数を表全体に広げた時に、バリューが出てくるのなら、
IFERROR(VLOOKUP(〇,△,□,×),エラーの時の値)
というように、数式全体をIFERROR関数で囲ってしまいましょう。
“エラーの時の値”には、次の3パターンの値で対応するのが良いでしょう。
- エラーの原因を”該当なし”などの文字列で書き換えて、見た目だけを綺麗にする方法
- 0(ゼロ)に置き換える方法
- “”と入力して、エラーを吐いているセルを”空白セル”にしてしまう方法
いずれも一長一短です。
該当なしであることを明示したい時は”該当なし”でいいでしょうし、
演算結果のトータルをとりたい時などは0か空白である必要があります。
なので、その時の状況に合わせてエラー時の値は臨機応変に対応しましょう。
以上、Excelでエラーが起きたときの対処法でした。
コメント