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の動作が重くなりますか?
一般的なスプレッドシートの規模であれば、体感できるほどの処理速度の低下はありません。