Excelで入力した関数にエラーがあると、エラーメッセージが表示されます。修正が必要なことを教えてくれるのはありがたいですが、エラーの表示が必要の無いセルにまで表示されてしまうのは、見ていて気持ちの良いものではありません。エラーメッセージが不要なセルについては非表示にしてしまいましょう。
エラーメッセージが不要な場合
実務でVLOOKUP関数を使っていると、このようなエラーメッセージが表示されるケースがよくあります。
売上数量のデータをVLOOKUP関数で転記するようなケースを考えてもらいたいのですが、日によっては特定商品の売上がないことだってありますよね。
そんな時は、商品のデータが集計表に載ってこないので、VLOOKUP関数で転記すると「#N/A(該当なし)」のエラーメッセージが出てしまうんですよ。
でも、実際には数量がゼロというだけでエラーではないですよね。
ただ、何もせず、エラーメッセージを表示させたままで、売上の金額を集計しようとすると、
このように、エラーメッセージのセルを含めて作った数式には、
同じようにエラーメッセージが表示されてしまい、正しい集計ができなくなるんです。
これは困った。
このようにエラーメッセージによって、うまくいかなくなることがあるので、
エラーメッセージを非表示にする方法も知っておく必要があります。
「IF関数」+「ISERROR関数」
「IF関数」+「ISERROR関数」の仕組み
関数のエラーメッセージを非表示にする方法について、当ブログ「近日出荷」では、過去に次のような記事を公開しています。
この記事では、「IF関数」と「ISERROR関数」を組み合わせて、
・条件式:関数にエラーがあった場合
・条件式を満たす時の表示内容:空白セル
という式を組むことで、エラーメッセージを非表示にする方法を紹介しました。
図で示すと、次のようなIF関数の式になります。
この方法は正しい方法ですので、何も問題はないのですが、弱点もあります。
「IF関数」+「ISERROR関数」の弱点
「IF関数」+「ISERROR関数」を使って、関数「=VLOOKUP (B5,$I:$M,4,0)」にエラーがある場合、セルを空白にする式を作ると次のような式になります。
=IF (ISERROR (VLOOKUP (B5,$I:$M,4,0)), “” , VLOOKUP (B5,$I:$M,4,0))
見てもらうと分かるように、式が長くなるんですね。
これ、パッと見て、何がどうなっているのかを理解するの、難しいですよね。
理解するのが難しいと言うことは、エラーが出たときに、どの部分にエラーの原因があるかを見つけるのも難しいということなんです。
「IF関数」+「ISERROR関数」を使い慣れていても、何をしようとしているかは分かっても、実際にどこにエラーがあるかを見つけるのは難しかったりします。
つまり、この式の長さが「IF関数」+「ISERROR関数」の弱点。
できれば、もっと短い式で関数のエラーを非表示にしたいところです。
Excelには、より短い数式で、「IF関数」+「ISERROR関数」と同じ役割を果たしてくれる、関数が用意されています。
「IFERRO関数」です。
「IFERRO関数」で関数のエラーを非表示にする
IFERRO関数の機能と仕組み
「IFERRO関数」は、文字通り「IF関数」+「ISERROR関数」を組み合わせた関数です。
具体的には、
①:入力した関数にエラーがないかどうかを判定する
②−1:エラーがある場合は、指定した内容が表示される
②−2:エラーがない場合は、入力した関数の結果が表示される
このような機能を持っています。
これは、先ほど「IF関数」+「ISERROR関数」のところで出てきた、
この「IF関数」の式と同じ仕組みです。
「IFERRO関数」と「IF関数」+「ISERROR関数」との違い
「IFERRO関数」と「IF関数」+「ISERROR関数」は同じ役割を果たしますが、入力しなければいけない要素に違いがあります。
関数「VLOOKUP (B5,$I:$M,4,0)」を判定する場合を例に取ると、
「IF関数」+「ISERROR関数」では、つぎのような要素を入力する必要がありました。
=①IF (②ISERROR(③VLOOKUP (B5,$I:$M,4,0)), ④“” , ⑤VLOOKUP (B5,$I:$M,4,0))
①IF関数
②ISERROR関数
③②で判定する関数
④②がエラーの時の表示内容
⑤②がエラーでない時の表示内容(判定した関数)
この5つの要素です。
特に、
・「IF関数」の中に「ISERROR関数」を入力するところ
・③と⑤で同じ関数を入力するところ
の2点によって関数が複雑になってしまっています。
それに対して、「IFERRO関数」の場合は、
=①IFERROR (②VLOOKUP (B5,$I:$M,4,0),③””)
①IFERRO関数
②エラーを判定する関数
③②がエラーの時の表示内容
これだけです。
非常にシンプルなのが分かると思います。
特に、エラーがない場合は判定した関数の結果を表示させることが、IFERRO関数のなかに組み込まれているため、エラーがない場合の表示内容として、関数を再度入力する必要がないところが、短い式になる大きな理由です。
同じ機能なら、よりシンプルな「IFERROR関数」のほうが
使いやすいですよね。
関数のエラーメッセージを非表示にする場合は、「IFERRO関数」を積極的に使っていきましょう。
「IFERRO関数」を使ってみる
では、先ほどの売上の表で「IFERRO関数」を使ってみることにします。
=①IFERROR (②VLOOKUP (B5,$I:$M,4,0),③0)
IFERRO関数の要素
①IFERRO関数
②エラーを判定する関数
③②がエラーの時の表示内容
の3つを入力しました。
非表示にする場合は③を「””」(ダブルクォーテーション2つ)にしましたが、
ここでは、最後に金額の集計があるので、エラーの時(=売上データがない時)の表示を「0」にしています。
他のセルについても同じように「IFERRO関数」の式にすると、
このように、エラーメッセージが「0」に変わり、
最後の集計もエラーメッセージではなく、正しい集計結果に変わりました。
まとめ
関数のエラーメッセージを非表示もしくは「0」にするには、IFERRO関数を使いましょう。「IF関数」+「ISERROR関数」の組み合わせでも同じことができますが、よりシンプルなIFERRO関数の方が、エラーが出にくく、また、エラーが出ても修正がしやすいので、オススメです。
おまけ
毎月開催している「実務で使えるExcel入門セミナー 応用編」でも、関数のエラーメッセージが出た場合の対処を扱っていますが、これまでは、「IF関数」+「ISERROR関数」を使っていました。今後は、「IFERRO関数」に切り替えて説明していきます。