IFERROR関数は、引数1がエラー値の場合、引数2を返します。エラーではない場合、そのまま引数1を返します。要はエラーハンドリング用の関数です。サンプルを用意しているので参考にして下さい。
IFERROR関数の使い方
=IFERROR(値,エラーの場合の値)
IFERROR関数は、値がエラー値だった場合、エラーの場合の値を返します。
- 値
省略できません。この値がエラー値かどうかを評価します。
- エラーの場合の値
省略できません。値がエラー値を返した場合、指定した値を返します。
- この関数に対して少なすぎる引数が入力されていますのエラーが出る理由は?
省略不可の引数を省略した場合に発生するエラーです。引数を正しく指定すればエラーは出ません。
例:IFERROR関数は引数2つ[=IFERROR(値,エラーの場合の値)]とも省略不可です。
- =IFERROR(A1)…この関数に対して少なすぎる引数が入力されていますのメッセージが表示される。
- =IFERROR(A1,”エラーです”)…A1セルがエラーの場合、”エラーです”が返ります。
この関数に対して少なすぎる引数が入力されていますの翻訳:この関数に対して入力されている引数が不足しています。
評価値は以下の通りです。
エラー値 | 説明 |
---|---|
#NULL! | NULL intersection セル指定の「:(コロン)」や「,(カンマ)」がない 積集合の要素がない |
#DIV/0! | DIVided by 0 ゼロで割り算をしている |
#VALUE! | Wrong type VALUE 値が不適切 |
#REF! | A REFerence to a cell that does not exist 無効なセルを参照している |
#NAME? | Unrecognized NAME 関数名が正しくない 符号忘れ |
#NUM! | An invalid NUMber 数値が指定できる範囲を超えている |
#N/A | Not Available value 引数が参照範囲内にない |
エラーの時に0を表示する
=IFERROR(値,0)でエラーの時に0が表示されます。
=IFERROR(B3/C3,0)
C3セルが0なので値の評価は#DIV/0!です。よって、エラーの場合の値0を返します。
- =IF(ISERROR(B3/C3),0,B3/C3)でも同じ戻り値を返します。IFERROR関数は評価値がエラー値ではない場合、第一引数の値しか返せません。IF関数とISERROR関数を組み合わせた場合は別の値が返せます(エラーではない場合も返す値を指定できる)。用途によって使い分けましょう。
=IFERROR(値,)でも数式が成立し、値がエラー値だと0を返します。が、可読性が悪いのでおすすめしません。
エラーの時に空白を表示する
=IFERROR(値,“”)でエラーの時に空白が表示されます。
=IFERROR(B3/C3,””)
エラー値を空白にしたい場合は、エラーの場合の値に“”を指定してください。C3セルが0なので値の評価は#DIV/0!です。よって空白“”を返します。
IFERROR関数とVLOOKUP関数をセットで使う
VLOOKUP関数と組み合わせるには=IFERROR(VLOOKUP関数,エラーの場合の値)とします。
=IFERROR(VLOOKUP($H$1,$A$2:$E$5,3,FALSE),”値なし”)
検索値$H$1が参照範囲内にないため、値の評価は#N/Aです。よって、エラーの場合の値値なしが返ります。
エラー値を表示したくなかったらIFERROR関数を使う
- 構文は=IFERROR(値,エラーの場合の値)
- エラー値を表示したくない場合にIFERROR関数を使う。
- IFERROR関数とISERROR関数は用途によって使い分ける。
- セルを空白表示にするならエラーの場合の値に“”を指定する。
IFERROR関数の主な用途はエラー表示の見栄え対策です。資料にエラー表示があると、読む側は「?」となります。#DIV/0!や#N/Aは、テーブルの構成によっては不可避のエラー(データによってはどうしてもエラーが出てしまう)になるのでエラーハンドリングでエラー値を表示しないようにしましょう。
逆に#NAME?や#NUM!はほとんどの場合修正可能です。IFERROR関数で回避せずに、必ずエラーを修正するようにしましょう。