概要
計算式を書いていて、こんな経験はありませんか?
- VLOOKUP で「#N/A」がずらっと並んで見にくい
- 0 で割ってしまって「#DIV/0!」が出る
- まだ入力していないセルがあって「#VALUE!」などのエラーになる
式そのものは合っているのに、
「一部の行だけ条件的にエラーになる」ことはよくあります。
そんなときに便利なのが IFERROR 関数です。
「エラーなら別の値に置き換える」 ための、とても実務的な関数です。
IFERROR の基本
書式と動き
IFERROR の書式はシンプルです。
=IFERROR(値, エラーのときに返す値)
動きはこうです。
- 「値」が正常に計算できる → そのまま結果を返す
- 「値」がエラーになる(#N/A, #DIV/0!, #VALUE! など) → 「エラーのときに返す値」を返す
イメージとしては、
「この式、エラーが出たら ○○ を返してね」
と Excel にお願いする感じです。
簡単なイメージ例
=IFERROR(1/0, "エラー")
本来 1/0 は #DIV/0! エラーですが、
IFERROR で包んでいるので「エラー」と表示されます。
VLOOKUP や MATCH と組み合わせる定番パターン
見つからないときに「なし」と表示する
VLOOKUP や MATCH は、
対象が見つからないときに #N/A というエラーを返します。
例えば VLOOKUP:
=VLOOKUP(A2, $D$2:$E$10, 2, FALSE)
A2 の値が D2:D10 に存在しないと #N/A になります。
これを IFERROR で包むと、
見つからないときに「なし」などの文字を表示できます。
=IFERROR(
VLOOKUP(A2, $D$2:$E$10, 2, FALSE),
"なし"
)
- 見つかった → 該当する値をそのまま表示
- 見つからない → 「なし」と表示
同じように MATCH でも使えます。
=IFERROR(
MATCH(A2, $D$2:$D$10, 0),
"該当なし"
)
0 で割ったときのエラーを消す
割り算で #DIV/0! を別表示にする
C2 を B2 で割る計算をしたいとします。
=C2/B2
B2 が 0 または空白のとき、#DIV/0! になってしまいます。
IFERROR を使って、
エラーのときは空白を返すようにするとこうなります。
=IFERROR(C2/B2, "")
- 正常に割れたとき → 計算結果
- 0で割ったりしてエラー → 空白
「0で割りうる」計算式には、IFERROR を添えておくと見た目がかなりスッキリします。
まだ入力していないセルがあるときのエラー隠し
途中入力の行を空白にしておく
たとえば、
B列:数量
C列:単価
D列:金額=数量×単価(B2*C2)
こんな表を作ったとき、
B2 か C2 が空白だと、掛け算自体はエラーにはなりにくいですが、
もっと複雑な計算だと、途中でエラーが出てしまうことがあります。
そういうとき、最終的な式を IFERROR で包んでおくと、
入力途中の行は空白にできます。
=IFERROR(【長い計算式】, "")
例えば:
=IFERROR(
(B2*C2)/D2,
""
)
D2 が空白や 0 の場合に出る #DIV/0! などを、空白に置き換えられます。
エラー時だけ別の計算式に切り替える
通常ルートと代替ルートを分ける
IFERROR の第2引数は「固定値」である必要はなく、
別の計算式を書くこともできます。
例:通常は VLOOKUP、
エラーのときは別の場所から値を持ってくる、など。
=IFERROR(
VLOOKUP(A2, $D$2:$E$10, 2, FALSE),
VLOOKUP(A2, $G$2:$H$10, 2, FALSE)
)
- 上側の表 D2:E10 にあればそちらを優先
- なければ G2:H10 から探す
といった「予備ルート」を IFERROR で指定できます。
IFERROR を使うときの注意点
「本当に見逃してよいエラーか」を意識する
IFERROR は「すべてのエラー」をまとめて握りつぶします。
- 参照範囲のミス
- 引数の順番ミス
- 本当にバグっている式
こういう「気付くべきエラー」も、
IFERROR で包んでしまうと見えなくなります。
特に、""(空白)でエラーを隠す場合、
「エラーなのか、たまたま結果が空白なのか」が分かりづらくなることもあります。
「この場所では、エラーが出る理由が分かっていて、それを隠したいとき」
に絞って使う意識を持っておくと、トラブルを減らせます。
例題
問題1
A2 に検索値、D2:E10 に検索範囲があり、VLOOKUP(A2, $D$2:$E$10, 2, FALSE) を使って値を取得しています。
該当データが見つからず #N/A になったとき、「なし」と表示するように
IFERROR を使って書き直してください。
=IFERROR(
VLOOKUP(A2, $D$2:$E$10, 2, FALSE),
"なし"
)
問題2
C2/B2 の結果を表示したいが、B2 が 0 や空白のときに #DIV/0! になるのを避けたいです。
エラーのときは空白(””)を返すように、IFERROR を使った式を書いてください。
=IFERROR(C2/B2, "")
問題3
MATCH を使って MATCH(A2, $D$2:$D$10, 0) で位置を取得しています。
見つからないとき「該当なし」と表示するように、IFERROR を使って書き直してください。
=IFERROR(
MATCH(A2, $D$2:$D$10, 0),
"該当なし"
)
問題4
(B2*C2)/D2 という計算をしていますが、D2 が 0 などの理由でエラーになることがあります。
エラー時は 0 を返すように、IFERROR を使った式を書いてください。
=IFERROR((B2*C2)/D2, 0)
問題5
A2 の値を、まず D2:E10 から VLOOKUP し、見つからなければ G2:H10 から VLOOKUP したいです。
IFERROR を使って、2段階で検索する式を書いてください。
=IFERROR(
VLOOKUP(A2, $D$2:$E$10, 2, FALSE),
VLOOKUP(A2, $G$2:$H$10, 2, FALSE)
)
まとめ
IFERROR は、
- 「エラーなら別の値(または別の式)に切り替える」
- 特に VLOOKUP / MATCH / 割り算 と相性が良い
- 画面をエラーだらけにしない「見た目の整え役」
として、実務でとてもよく使う関数です。
型としては、この 1 行を覚えておけば十分です。
=IFERROR(元の式, エラーのときに返すもの)
あなたのシートで「本当は想定内のエラーだけど、見た目で邪魔になっている」箇所があれば、
そこに IFERROR を 1 つかませて、表示を整えるところから試してみてください。

