【Excel】IFERROR関数とISERROR関数って何? IF関数との使い分けを解説

AI要約

エクセルの関数には、「IF○○」や「○○IF」といった関数が数多くあり、判定が重要な要素となっている。IFERROR関数は、単純に計算結果がエラー値かどうかを判断し、適切な処理を行う際に使用される。

IFERROR関数を使うことで、エラー値の場合に任意の文字列を表示したり、エラーを非表示にすることができる。ISERROR関数やISERR関数もエラーの有無を調べるための関数であるが、IFERROR関数の実装によりあまり使われなくなっている。

IFERROR関数を使った場合とISERROR関数を使った場合の違いを確認し、適切な関数の選択が重要であることを理解する。

【Excel】IFERROR関数とISERROR関数って何? IF関数との使い分けを解説

◆ 簡単な数式を使って違いを正確に見つけよう

 エクセルの関数には「IF○○」や「○○IF」といった関数が数多くあります。それだけ「もし~なら」の判定が必要なことが多いということですよね。

 以前の記事では、IF/IFS/SWITCH関数を使って、計算対象のセルが空白なのか、それとも「0」なのかに注目しました。

 ただ、単純に計算の結果として「エラー値」かどうかを判断して処理を分けるなら、IFERROR(イフエラー)関数があります。構文は以下の通りです。

 エラー値の場合に空白("")としたり、「-」や「該当なし」といった任意の文字列を表示したりできます。VLOOKUP関数の結果に「#N/A」エラーを表示したくない場合によく使われます。

 IFERROR関数の構文は単純なので、悩むことはないと思いますが、関連する関数として、ISERROR関数やISERR関数というものもあります。定番のIF関数もあり、混乱しがちなポイントです。今回はそれぞれの違いを確認してみましょう。

■ エラー値を判定できるIFERROR関数

 IFERROR関数の構文は前述の通りです。エラー値が表示される可能性がある数式の外側に、IFERROR関数を組み合わせるだけです。

 サンプルでは、増減率としてセルD2に「=(C2-B2)/B2」という数式を入力して、オートフィルでコピーした状態です。「0」で割っているセルD5には「#DIV/0!」エラーが表示されています。IFERROR関数を組み合わせると「=IFERROR((C2-B2)/B2,"")」となります。

 無事にエラー値は非表示になりましたが、セルD6の「-100.00%」はおかしいですよね。これは、セルD6の数式中の「(C6-B6)/B6」がエラーにならないため、計算結果がそのまま表示されているためです。「-100%」も非表示するなら、IF関数を使って「=IF(OR(B6="",B6=0,C6=""),"",(C6-B6)/B6)」としたほうがいいでしょう。

 VLOOKUP関数とIFERROR関数を組み合わせた定番の方法も紹介します。VLOOKUP関数で検索値が見つからない場合に表示される、「#N/A」エラーを非表示にします。

■ ISERROR関数とISERR関数

 ISERROR関数とISERR関数はどちらも「イズエラー」と読みます。IFERROR関数と混同されることがありますが、“エラーかどうかを調べる”ための関数です。

 この2つを単独で使うことはあまりなく、IF関数と組み合わせるのが従来の使い方でした。

 Excel 2007でIFERROR関数が実装されたことにより、わざわざ使う理由がなくなっていますが、動作を見てみましょう。ISERROR関数を使うと「-100.00%」がエラー値でないことがわかります。

 ちなみに、ISERROR関数とIF関数を組み合わせて、IFERROR関数と同じ処理を実現する場合は、以下のようになります。何度も同じ数式を記述する必要があって面倒ですよね。エラー値を処理するだけなら、IFERROR関数を使いましょう。

■ エラー値を非表示にする時によく使われる

 IFERROR関数は「エラー値であれば○○と表示する。エラー値でなければ元の値を表示する」と動作します。エラー値を“非表示にする用の関数”と割り切ってしまっていいでしょう。ただし、エラー値ではない異常値を処理したい場合は、IF/IFS関数を利用します。