IFERRORは、数式がエラーになったとき、代わりの値を返す関数です。
#N/A や #DIV/0! が並んだ表は見栄えが悪く、その先の計算まで巻き込んでエラーにします。IFERRORで包めば一発で解決します。
ただし、この関数はエラーの原因ごと隠してしまうという副作用を持っています。使いどころを間違えると、間違った数字に気づけなくなります。
書式
=IFERROR(値, [エラーの場合の値])
| 引数 | 内容 |
|---|---|
| 値 | 通常時に表示したい数式 |
| エラーの場合の値 | エラー時に返す値。省略すると空白 |
基本の使い方
=IFERROR(A2 / B2, 0)
B2が0や空欄なら #DIV/0! になりますが、IFERRORで包むと 0 が返ります。
何も表示したくないなら "" を指定します。
=IFERROR(A2 / B2, "")
原因を伝えたいなら、そのままメッセージを書けます。
=IFERROR(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "マスタ未登録")
「何も出ない」より「未登録」と出るほうが、使う人にとって親切です。空白は原因が分かりませんが、メッセージなら次の行動が決まります。
対象になるエラー
IFERRORは、次のすべてを捕まえます。
| エラー | 意味 |
|---|---|
#N/A |
検索して見つからなかった |
#DIV/0! |
0で割った |
#VALUE! |
引数の型が違う |
#REF! |
参照先が無効 |
#NAME? |
関数名や名前の綴りが違う |
#NUM! |
計算結果が扱える範囲外 |
#ERROR! |
数式の書き方が不正 |
ここが問題です。 見つからなかっただけの #N/A も、関数名を打ち間違えた #NAME? も、参照が壊れた #REF! も、区別なく同じ値に置き換わります。
使ってはいけない場面
原因を確かめる前に包む
これが最も危険な使い方です。
=IFERROR(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "")
一見きれいになりますが、本当は取得できるはずのデータが黙って消えている可能性があります。範囲指定のミス、検索キーの余分なスペース、列番号の間違い——これらが全部空白として処理されます。
手順としては、まずIFERROR無しで数式を書き、出たエラーの原因を特定してから包む。これを守ってください。
合計の中に紛れ込ませる
=SUM(IFERROR(A2:A100 / B2:B100, 0))
割れなかった行が0として合計されます。数字は出ますが、その0が「本当に0なのか」「計算できなかったのか」が区別できません。集計値の信頼性が落ちます。
検索の失敗を握りつぶす
マスタとの突合で #N/A が出るのは、マスタに無いデータがあるという重要な情報です。これを空白にすると、データの不備が見えなくなります。
むしろ #N/A は残しておき、件数を数えて監視するのが正しい運用です。
=COUNTIF(C2:C100, "#N/A")
使っていい場面
見つからないことが正常な場合
「該当があれば表示、無ければ空欄」が仕様として正しい場合。任意項目の突合などです。
分母が空欄になりうる場合
=IFERROR(売上 / 客数, "")
まだ入力されていない行で #DIV/0! が出るのは想定内です。
エラーの原因を特定し終えた後
原因を潰したうえで、残る想定内のエラーだけを整えるために使う。これが本来の用途です。
IFNAで絞り込む
#N/A だけを捕まえたいなら、IFNA を使います。
=IFNA(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "未登録")
#N/A(見つからなかった)だけが置き換わり、#REF! や #NAME? はエラーのまま残ります。つまり、本当の不具合は表面化させたまま、想定内の空振りだけを整えられます。
IFERRORよりIFNAのほうが安全な場面は多いので、検索系ではまずIFNAを検討してください。
XLOOKUPなら包む必要がない
XLOOKUP は「見つからない場合」を4つ目の引数で直接指定できます。
=XLOOKUP(A2, マスタ!A:A, マスタ!B:B, "未登録")
これはIFNAと同じく、見つからなかったケースだけを扱います。範囲指定のミスはエラーとして出ます。書き方も短く、安全性も高い。検索でエラー処理が要るなら、まずXLOOKUPを検討してください。
まとめ
- – 書式は
=IFERROR(値, エラー時の値) - – すべての種類のエラーを区別なく置き換える
- – 原因を特定する前に包まない
- – 空白より「未登録」などのメッセージのほうが親切
- –
#N/AだけならIFNA、検索なら XLOOKUP の第4引数
関連する関数
- – XLOOKUP — 見つからない場合を直接指定できる
- – VLOOKUP —
#N/Aの原因はこちらで解説 - – IF — 条件による分岐
- – エラーの原因と直し方 — エラー種別ごとの対処一覧
- – 関数一覧に戻る
コメントを残す