Excel関数 逆引き集 | エラー時に別値を表示 → IFERROR

Excel
スポンサーリンク

概要

計算式を書いていて、こんな経験はありませんか?

  • 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 つかませて、表示を整えるところから試してみてください。

タイトルとURLをコピーしました