【Excel】IFERROR関数を利用して数式のエラー表示を非表示にする方法

この記事は約5分で読めます。

今回は、ExcelのIFERROR関数を使用して、数式で発生するエラー表示を非表示にしたり、別の文字に置き換えたりする方法について紹介します。

IFERROR関数とは

Excelで計算式や関数を使っていると、セルに「#N/A」や「#DIV/0!」、「#VALUE!」といった見慣れない記号が表示されることがあります。
これらは、計算結果が正しく求められなかったときにExcelが発するエラーのサインです。
エラーが表示されたままだと、表の見た目が悪くなるだけでなく、そのエラーセルを参照している他の計算式まで連鎖的にエラーになってしまい、表全体の集計ができなくなるという問題を引き起こします。
IFERROR関数は、このようなエラーが発生した場合に、「エラーの代わりに何を表示させるか」をあらかじめ指定しておくことができる便利な関数です。
数式の周囲をIFERROR関数で囲むだけで、エラーを見えなくしたり、「確認中」といった親切なメッセージに置き換えたりすることができ、スマートで壊れにくいシートを作成する上で欠かせないテクニックとなります。

関数の構文と引数

IFERROR関数の構文は非常にシンプルで、2つの引数で構成されます。
=IFERROR(値, エラーの場合の値)

  • :
    エラーかどうかを判定したい数式やセル参照を指定します。基本的には、普段使っているVLOOKUP関数や割り算の数式そのものをここに入れます。
  • エラーの場合の値:
    最初の引数である「値」がエラーになったときに、代わりに表示させたい文字や数値を指定します。エラーでない場合は、通常の計算結果がそのまま表示されます。

IFERROR関数が活躍する具体的な場面

エラーが発生しやすい代表的なケースと、IFERROR関数をどのように組み合わせて解決するかを見ていきます。

VLOOKUP関数での「#N/A」エラーの回避

VLOOKUP関数は、指定した検索値が表の中に存在しない場合、「#N/A(Not Available:該当なし)」というエラーを返します。
たとえば、商品コードを入力して商品名を表示させる見積書で、まだコードを入力していない空欄の行には「#N/A」がズラリと並んでしまいます。
これを防ぐために、VLOOKUP関数全体をIFERROR関数で囲みます。
「=IFERROR(VLOOKUP(検索値, 範囲, 列番号, FALSE), “”)」と記述します。
最後の「””(ダブルクォーテーション2つ)」は「空白(何も表示しない)」を意味します。
これにより、商品コードが未入力で検索値が見つからない場合はセルが空白になり、印刷しても美しい見積書が維持されます。

割り算での「#DIV/0!」エラーの回避

前年比や達成率を計算する際、「今年の実績 ÷ 前年の実績」といった割り算をよく使います。
しかし、新設された店舗などで「前年の実績が0(または空欄)」の場合、ゼロで割り算をすることになるため、「#DIV/0!」というエラーが発生します。
これも表の見た目を損なうだけでなく、合計行でSUM関数を使っている場合、エラーセルが含まれていると合計値もエラーになってしまいます。
この場合、「=IFERROR(今年の実績/前年の実績, “-“)」のように設定することで、エラーの代わりに「-(ハイフン)」を表示させることができます。
ハイフンは文字として扱われるため、SUM関数の計算対象から外れ、表全体の集計に影響を与えずに済みます。
「0」を表示させたい場合は「=IFERROR(今年の実績/前年の実績, 0)」とします。

IF関数を使ったエラー回避との違い

IFERROR関数が登場する以前は、エラーを非表示にするためにIF関数とISERROR関数(またはISNA関数)を組み合わせて、「もしエラーだったら空白、そうでなければ計算する」という長い数式を作っていました。
「=IF(ISERROR(VLOOKUP(…)), “”,
VLOOKUP(…))」のように、同じVLOOKUP関数を2回書く必要があったため、数式が長大になり、修正時のミスも発生しやすかったです。
IFERROR関数は、この複雑な数式をスッキリと短くまとめるために作られた関数であり、数式を1回書くだけで済むため、処理速度の向上やメンテナンス性の面で圧倒的に優れています。
現在では、エラー処理を行う場合はIFERROR関数を使うのが標準的な手法となっています。

IFERROR関数を使用する際の注意点

非常に便利な関数ですが、使い方を誤ると、本来気づくべき重要なエラーまで隠してしまうリスクがあります。

原因不明のエラーまで見えなくなる

IFERROR関数は、「#N/A」だけでなく、「#NAME?」や「#REF!」など、Excelが返すあらゆる種類のエラーを一律で処理してしまいます。
VLOOKUPで検索値がないという「想定内のエラー」を隠すのは問題ありませんが、数式自体の入力ミス(関数名の綴り間違いなど)や、参照先のセルが削除されてしまったという「想定外の重大なエラー」が発生した場合でも、エラーサインが出ずに指定した文字(空白など)が表示されてしまいます。
そのため、数式を組み立てる段階ではIFERROR関数を使わず、正しい結果が得られること、そして想定通りのエラーが出ること(検索値がないときは#N/Aになるかなど)を確認してから、最後にIFERROR関数で囲むという手順を踏むことが重要です。

エラーの種類によって処理を分けたい場合

もし、「検索値が見つからない(#N/A)ときは空白にしたいが、それ以外の計算エラー(ゼロ除算など)が起きたときはエラー表示を残したい」というように、エラーの種類に応じて対応を変えたい場合は、IFERROR関数の代わりに「IFNA関数」を使用します。
IFNA関数は、「#N/A」エラーが発生したときだけ指定した値を返し、その他のエラーはそのまま表示させるという、より限定的な働きをします。
VLOOKUP関数やMATCH関数など、「見つからない」という結果が頻発する関数と組み合わせる場合には、IFERROR関数よりもIFNA関数を使う方が安全なケースもあります。

まとめ

ExcelのIFERROR関数を使用して、数式のエラー表示を非表示にしたり、別の文字に置き換えたりする方法について解説しました。
「=IFERROR(値, エラーの場合の値)」というシンプルな構文で、VLOOKUP関数による「#N/A」や、割り算による「#DIV/0!」などの見た目の悪いエラーをスマートに隠すことができます。
数式が長くなりがちだった従来のIF関数との組み合わせに比べて、数式の入力や修正が圧倒的に楽になるのが最大のメリットです。
一方で、あらゆるエラーを無差別に隠してしまうという特性を理解し、数式が正しく機能することを確認した上で最後に適用するという手順を守ることが、ミスのない確実なシートを作るためのポイントとなります。
用途に応じてIFNA関数とうまく使い分けながら、IFERROR関数を活用して誰が見ても美しく、他の集計を邪魔しない完成度の高い表を作成してみてはいかがでしょうか。