いまさら聞けないExcelの使い方講座
【Excel】IFERROR関数とISERROR関数って何? IF関数との使い分けを解説
2024年7月31日 06:55
簡単な数式を使って違いを正確に見つけよう
エクセルの関数には「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関数を使いましょう。