cellio

ExcelのIFERROR関数:エラーを非表示・別の文字に置換する

ExcelのIFERROR関数を使って#N/Aや#DIV/0!などのエラーを表示させず、空白や0、任意のメッセージに置き換える方法を解説。VLOOKUPでの活用例や注意点も紹介します。

著者 Ayoub Farid · · 3 分で読めます

IFERROR関数は、数式が正常に計算できた場合はその結果を返し、エラーが発生した場合は指定した別の値を返すエクセル関数です。#N/Aの代わりに「該当なし」と表示させたり、#DIV/0!を非表示にして空白にしたりと、表をきれいに整える際によく使われます。

構文

=IFERROR(value, value_if_error)

検索関数(VLOOKUP)と組み合わせる

=IFERROR(VLOOKUP(F2,$A$2:$C$100,3,FALSE),"Not found")

(※XLOOKUP関数にはこの機能が標準で備わっているため、=XLOOKUP(F2,A:A,C:C,"Not found")と記述できます。)

割り算と組み合わせる

まだ売上が立っていない行が含まれる場合の、行ごとの利益率の計算例です:

=IFERROR((B2-C2)/B2,"")

詳しくは#DIV/0! エラーの対処法をご覧ください。

IFNA:#N/Aエラーのみを処理する

=IFNA(VLOOKUP(F2,$A$2:$C$100,3,FALSE),"Not found")

IFNA関数は#N/Aエラーのみを置き換えます。参照先のセルが削除された場合などの他のエラー(#REF!など)はそのまま表示されるため、検索系の数式ではIFNAを使うほうが安全なケースが多くあります。

IFERRORを使うべきではないケース

IFERRORはすべてのエラーを隠蔽してしまいます。これには、関数名のスペルミス(#NAME?)、参照先列の削除(#REF!)、数値が入るべきセルへの文字列の混入(#VALUE!)といった、重大な設定ミスも含まれます。あらゆる数式を安易にIFERRORで囲んでしまうと、本来修正すべき不具合に気付けず、「見た目はきれいなのに計算結果が間違っている」レポートになりかねません。

運用のベストプラクティス:

  • 該当データなしやゼロ除算など、エラーの発生が想定される箇所にのみ使用する。
  • 検索関数にはIFNAの使用を検討する。
  • 単に「0」で埋めるのではなく「要確認」などの文字を返し、異常があることを把握できるようにする。

エラーを含む範囲の合計を計算する

指定したセル範囲の中にエラー値が1つでもあると、通常のSUM関数では合計を計算できません。エラーが含まれる列をそのまま合計したい場合は、以下のように記述します:

=AGGREGATE(9,6,B2:B100)

(引数の9はSUM、6はエラー値を無視する指定です。)

よくある質問

Excelで#N/Aを非表示にするにはどうすればよいですか?

数式全体を囲んで、=IFERROR(数式,"")または=IFNA(数式,"")と入力します。

IFERRORとIFNAの違いは何ですか?

IFERRORはすべてのエラーをキャッチして別の値に置き換えますが、IFNAは#N/Aエラーのみを対象とします。

IFERRORでエラー時に「0」を返すことはできますか?

はい、=IFERROR(数式,0)のように指定できます。ただし、0が本来の計算結果なのかエラーによるものなのかが判別しにくくなるため注意してください。

IFERRORを使うとExcelの動作が重くなりますか?

一般的なスプレッドシートの規模であれば、体感できるほどの処理速度の低下はありません。

あわせて読みたい