Excel関数 逆引き集 | エラーか判定 → ISERROR

Excel VBA Excel
スポンサーリンク

概要

「ここ、たまに #N/A や #DIV/0! が出て見た目が汚い」
「エラーのときは別メッセージにしたい」
「計算はさせたいけど、エラーだけは画面に出したくない」

こういうときに使う“エラー検知センサー”が ISERROR(イズエラー)関数です。

ISERROR はとても単純で、

  • 結果がどんな種類のエラーでも → TRUE
  • 正常な値(数値・文字列・空白など) → FALSE

を返します。

この TRUE / FALSE を IF などと組み合わせることで、
「エラーのときだけ別処理」「エラーを空白にする」といった制御が簡単にできます。


ISERROR の基本

書式と動き

書式はこれだけです。

=ISERROR(値)

判定結果はこうなります。

  • の計算結果がエラー(#N/A, #DIV/0!, #VALUE!, #REF!, #NUM!, #NAME?, #NULL! など)
    → TRUE
  • それ以外(正常な数値・文字列・空白など)
    → FALSE

具体例:

=ISERROR(1/0)        ' → TRUE(#DIV/0! になる)
=ISERROR(1/2)        ' → FALSE
=ISERROR(#N/A)       ' → TRUE
=ISERROR("ABC")      ' → FALSE
=ISERROR(A2)         ' → A2 がエラーなら TRUE、正常なら FALSE

IF と組み合わせて「エラーなら別の値を返す」

エラーのときだけ「エラー」と表示する

=IF(ISERROR(A2/B2), "エラー", A2/B2)

動きはこうです。

A2/B2 の結果がエラー → ISERROR が TRUE → 「エラー」
A2/B2 の結果が正常 → ISERROR が FALSE → A2/B2 をそのまま表示

割り算(0除算)のようにエラーになりやすい計算でよく使う形です。


エラーのときは空白にする(見た目をきれいに)

=IF(ISERROR(VLOOKUP(C2, $F$2:$H$100, 2, FALSE)), "", VLOOKUP(C2, $F$2:$H$100, 2, FALSE))

VLOOKUP の結果がエラー(該当なし)なら空白、
正常なら検索結果を表示します。

実務では「#N/A を出したくない」場面が多いので、
このような「エラーなら空白」パターンは非常によく使われます。


ISERROR を使った検索式の“保険”

VLOOKUP や XLOOKUP とセットで使う

VLOOKUP や XLOOKUP は、見つからないとエラーを返します。
それをそのまま画面に出したくないとき、ISERROR が“保険”として機能します。

VLOOKUP+ISERROR の例:

=IF(ISERROR(VLOOKUP(D2, $A$2:$B$100, 2, FALSE)),
    "未登録",
    VLOOKUP(D2, $A$2:$B$100, 2, FALSE))

XLOOKUP には本来「見つからないときの値」を直接指定できますが、
旧バージョンで似た動きをさせるときにも ISERROR パターンは役立ちます。


ISERROR と他のエラー関数との違い

「すべてのエラー」をまとめて扱うのが ISERROR

ISERROR は、種類を問わずあらゆるエラーを TRUE とみなします。

  • #N/A
  • #DIV/0!
  • #REF!
  • #VALUE! など

これを「ひとまとめに扱いたい」ときには ISERROR が向いています。

特定のエラーだけを判定したいときは別関数

  • #N/A だけを判定したい → ISNA
  • エラーかどうかを判定しつつ、特定の一部は除外したい → IFERROR(処理まで一気に書ける)

ただし「Excel 逆引き・基本テクニック」としては、
まず ISERROR を押さえておけば十分です。


ISERROR を使うときの注意とコツ

判定したい“式ごと”を ISERROR に入れる

よくあるミスは、「途中のセルだけ」を ISERROR にかけてしまうことです。

悪い例(やりたいことを満たせていない):

=IF(ISERROR(A2), "", A2/B2)

A2 にエラーがなければ B2 が 0 でもそのまま割り算を実行してしまい、
#DIV/0! が出ます。

正しくは「最終的な計算式」全体を ISERROR に入れます。

=IF(ISERROR(A2/B2), "", A2/B2)

「まず計算式を書く → それを ISERROR でくるむ」と覚える

  1. まずは普通にやりたい計算式を書く
    例:A2/B2VLOOKUP(C2,範囲,列,0)
  2. それを丸ごと ISERROR に入れて、IF で包む

この順番で考えると、式を組み立てやすくなります。


例題

問題1

A2 を B2 で割った結果がエラーのとき TRUE、正常なとき FALSE を返す ISERROR の式を書いてください。

=ISERROR(A2/B2)

問題2

A2 を B2 で割った結果がエラーのときは「エラー」、正常なときは割り算の結果を表示する IF+ISERROR の式を書いてください。

=IF(ISERROR(A2/B2), "エラー", A2/B2)

問題3

C2 の商品コードを A2:B100 の表で VLOOKUP し、
見つからずにエラーになったときは「未登録」、見つかったときは商品名(2列目)を返す式を書いてください。

=IF(ISERROR(VLOOKUP(C2, $A$2:$B$100, 2, FALSE)), "未登録", VLOOKUP(C2, $A$2:$B$100, 2, FALSE))

問題4

D2 を E2 で割って「利益率」を計算し、
エラー(E2 が 0 など)のときは空白、正常なときはパーセントで表示する式を書いてください。

=IF(ISERROR(D2/E2), "", D2/E2)

問題5

F2 のセルについて、
=1/F2 の結果がエラーなら「NG」、エラーでなければ「OK」と表示する式を書いてください。

=IF(ISERROR(1/F2), "NG", "OK")

まとめ

ISERROR は、

  • 「その式の結果がエラーかどうか」を TRUE / FALSE で教えてくれる
  • どの種類のエラーでも一律 TRUE(まとめて扱える)

という“エラー検知センサー”です。

基本形は次の通りです。

=ISERROR(式)

=IF(ISERROR(式), エラーのときの値, 正常なときの値)

特に、

  • 割り算(0除算)を安全に実行したい
  • VLOOKUP / XLOOKUP の「見つからないエラー」を隠したい
  • 集計用の中間列でエラーを出したくない

といった場面で強力に効きます。

まずは「普通に式を書く → その式を丸ごと ISERROR+IF で包む」という型を、
自分のシートで何度か試してみてください。
エラーを怖がらずに「コントロールする」感覚がつかめてきます。

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