ExcelのISERR関数の使い方|#N/A以外のエラーだけを判定する方法

スポンサーリンク

VLOOKUPで「#N/A」が出るのは想定どおり。でも「#VALUE!」や「#REF!」が出たら、それは数式の構造ミスかもしれません。

IFERROR関数ですべてまとめて処理してしまうと、こうした構造ミスに気づけなくなります。そんなときに頼りになるのがISERR関数です。

この記事では、ISERR関数の基本から実務で役立つ活用パターンまでまとめて紹介します。

この記事は次のような人におすすめ

– #VALUE! や #REF! などのエラーを検知したいが、#N/A は除外したい
– VLOOKUPで「値が見つからない」と「数式の構造ミス」を区別したい
– ISERROR関数やISNA関数との違いを知りたい

ISERR関数とは?

ISERR(いず えらー)関数は、指定した値が #N/A 以外のエラー値かどうかを判定する関数です。

対象が #N/A 以外のエラーであれば TRUE を返します。数値・文字列・論理値・空白、そして #N/A エラーはすべて FALSE です。

#N/A だけを除外するのが最大の特徴です。#VALUE!、#REF!、#DIV/0!、#NAME?、#NUM!、#NULL! の6種類で TRUE を返しますが、#N/A では FALSE になります。

IS系(情報関数)の1つで、セルに入っているデータの種類を確認するための関数ファミリーに属しています。

NOTE

ISERR関数は Excel 2003 以降のすべてのバージョンで使用できます。Microsoft 365 や Googleスプレッドシートでも同じ書き方で使えます。

ISERR関数の書き方(構文と引数)

基本構文

=ISERR(テストの対象)

引数の説明

引数必須/省略可説明
テストの対象必須#N/A以外のエラーかどうか判定したい値またはセル参照

引数は1つだけです。省略はできません。セル参照・直接値・数式の結果のいずれも指定できます。

ISERR関数の基本的な使い方

まずはシンプルな例で動きを確認してみましょう。

エラー種類ごとの判定結果

さまざまなエラーをISERR関数で判定すると、次のような結果になります。

A列の値数式ISERR の結果理由
=10/0 (#DIV/0!)=ISERR(A2)TRUEゼロ除算エラー
=”あ”+1 (#VALUE!)=ISERR(A3)TRUEデータ型が不正
#REF!=ISERR(A4)TRUE参照先が無効
=ABC (#NAME?)=ISERR(A5)TRUE関数名が不正
=SQRT(-1) (#NUM!)=ISERR(A6)TRUE数値が範囲外
=VLOOKUP(“Z”,D:E,2,0) (#N/A)=ISERR(A7)FALSE#N/A は対象外
100=ISERR(A8)FALSE正常な数値
東京=ISERR(A9)FALSE正常な文字列

#N/A のときだけ FALSE になっているのがポイントです。ISERR関数は #N/A 以外の6種類のエラーに反応します。

TIP

#N/A も含めてすべてのエラーを判定したい場合は ISERROR関数 を使いましょう。

ISERR関数の実務活用パターン

パターン1: VLOOKUPで「見つからない」と「数式ミス」を区別する

VLOOKUPは「検索値が見つからない」ときも「数式の構造に問題がある」ときもエラーを返します。ISERRを使えば、この2つを区別できます。

=IF(ISERR(VLOOKUP(B2,商品マスタ!A:C,2,FALSE)),"数式エラー",IF(ISNA(VLOOKUP(B2,商品マスタ!A:C,2,FALSE)),"該当なし",VLOOKUP(B2,商品マスタ!A:C,2,FALSE)))

#VALUE! や #REF! なら「数式エラー」、#N/A なら「該当なし」、正常ならVLOOKUPの結果を返します。

これがISERR関数の真価です。IFERROR関数ではすべてのエラーがまとめて処理されるため、この区別ができません。

TIP

「見つからない」だけでなく「列番号が範囲外(#REF!)」「検索値のデータ型が不正(#VALUE!)」なども発生しうるのがVLOOKUPです。IFERRORで全部まとめてしまうと、数式の構造ミスに気づけなくなりますよ。

パターン2: ISNA + ISERRでエラーの種類に応じたメッセージを出す

ISNA関数と組み合わせれば、エラーの種類に応じて処理を完全に分岐できます。

=IF(ISERR(A2),"構造エラー: 数式を見直してください",IF(ISNA(A2),"検索エラー: データを確認してください",A2))

この数式は3つの状態を区別します。

  • #VALUE! や #REF! → 「構造エラー: 数式を見直してください」
  • #N/A → 「検索エラー: データを確認してください」
  • 正常値 → そのまま表示

VLOOKUPやXLOOKUPの結果列に設定しておくと、エラーの原因を一目で判別できます。運用担当者への引き継ぎ資料にも便利ですよ。

TIP

この「ISERR + ISNA」パターンは、ISERROR関数1つでは実現できない精緻なエラー分岐です。

パターン3: 条件付き書式で数式エラーだけをハイライトする

数式が入った列で #VALUE! や #REF! などの構造的なエラーだけを目立たせたい場合に使えます。#N/A は「該当なし」の正常な結果として扱いたいケースです。

  1. 対象範囲を選択します
  2. 「ホーム」タブ →「条件付き書式」→「新しいルール」を選択します
  3. 「数式を使用して、書式設定するセルを決定」を選びます
  4. 数式欄に =ISERR(C2) と入力します
  5. 好きな書式(赤い塗りつぶしなど)を設定します

#VALUE! や #REF! のセルだけが色付きになります。#N/A は色が付かないので、「見つからない」と「壊れている」を視覚的に区別できます。

パターン4: SUMPRODUCTで構造エラーをカウントする

大量のデータ範囲で、#N/A 以外の「修正が必要なエラー」が何件あるか確認できます。

=SUMPRODUCT(ISERR(C2:C100)*1)

C2:C100 の中で #VALUE!、#REF!、#DIV/0! などが何セルあるかを返します。#N/A は数えないので、「数式の問題だけ」を把握できます。

パターン5: XLOOKUPで構造エラーを先に処理する

XLOOKUPには第4引数(見つからない場合の値)がありますが、これで処理されるのは #N/A だけです。#VALUE! や #REF! は第4引数では処理されません。

=IF(ISERR(XLOOKUP(B2,商品マスタ!A:A,商品マスタ!B:B)),"数式を確認",XLOOKUP(B2,商品マスタ!A:A,商品マスタ!B:B,"該当なし"))

まずISERRで構造エラーを先に判定します。構造エラーでなければ、XLOOKUPの第4引数で #N/A を「該当なし」に置き換えます。

NOTE

XLOOKUPの第4引数は IFNA関数 に近い動作です。#N/A しか処理しないため、構造エラーの検知にはISERR関数が必要です。

ISERR関数と似た関数との違い・使い分け

エラー判定に使える関数は複数あります。それぞれの違いを把握しておくと、場面に応じて最適な関数を選べます。

関数対象エラー戻り値主な用途
ISERR(この記事)#N/A 以外のエラーTRUE / FALSE#N/A を除くエラーを判定する
ISERRORすべてのエラーTRUE / FALSEエラーかどうかをTRUE/FALSEで返す
ISNA#N/A のみTRUE / FALSE#N/A だけを判定する
IFERRORすべてのエラー代替値エラー時に指定した値を返す
IFNA#N/A のみ代替値#N/A 時に指定した値を返す

ISERROR・ISNA・ISERRの対応範囲を比較

3つの関数がどのエラーに反応するかを一覧にまとめました。

エラー値ISERRORISNAISERR
#N/ATRUETRUEFALSE
#VALUE!TRUEFALSETRUE
#REF!TRUEFALSETRUE
#DIV/0!TRUEFALSETRUE
#NAME?TRUEFALSETRUE
#NUM!TRUEFALSETRUE
#NULL!TRUEFALSETRUE

ISERROR = ISNA + ISERR です。つまり =OR(ISNA(A1), ISERR(A1))=ISERROR(A1) は同じ結果になります。

IFERRORとの使い分け

比較項目ISERRIFERROR
戻り値TRUE / FALSE正常値 or 代替値
#N/A への反応FALSE(除外)代替値を返す(含む)
エラーの区別ISNA と組み合わせて可能できない
主な用途エラー種類の判定・分岐エラー表示の回避

IFERROR ですべてのエラーをまとめて処理するのが手軽です。一方、「#N/A とそれ以外を区別したい」場面では ISERR + ISNA の組み合わせが必要です。

使い分けの判断フロー

  1. すべてのエラーを隠したいIFERROR関数
  2. すべてのエラーをTRUE/FALSEで判定したいISERROR関数
  3. #N/A だけを隠したいIFNA関数
  4. #N/A だけをTRUE/FALSEで判定したいISNA関数
  5. #N/A 以外のエラーを判定したいISERR関数(この記事)

NOTE

「エラーを代替値に置き換えたいだけ」なら IFERROR や IFNA のほうがシンプルです。IF/IFS/IFERROR/IFNAの使い分けは こちらの比較記事 でもくわしく解説しています。

よくあるエラーと対処法

ISERR関数自体がエラーを返すことはほとんどありません。ただし「思った結果にならない」ケースがあります。

症状原因対処法
#N/A で TRUE が返らないISERR は #N/A を除外する#N/A を判定するには ISNA関数 を使う
すべてのエラーで TRUE にしたいISERR は #N/A のみ除外するすべて判定したいなら ISERROR関数 を使う
空白セルで FALSE が返る空白はエラーではない空白判定には ISBLANK関数 を使う
数式で #NAME? が表示される関数名のスペルミスISERR のスペルを確認する。ISERROR との混同に注意

IS系12関数の違い・使い分け

IS系関数は、セルに入っているデータの種類を判定するファミリーです。用途に合わせて使い分けましょう。

関数名判定内容TRUE になる例
ISBLANK空白セルか未入力のセル
ISERROR任意のエラー値か#N/A, #VALUE!, #REF! など
ISERR(この記事)#N/A 以外のエラー値か#VALUE!, #REF!, #DIV/0! など
ISNA#N/A エラーか#N/A のみ
ISLOGICAL論理値(TRUE/FALSE)かTRUE, FALSE
ISNUMBER数値か100, 3.14, 日付のシリアル値
ISTEXT文字列か“東京”, “123”(文字列型)
ISNONTEXT文字列以外か100, TRUE, 空白
ISFORMULA数式が入っているか=SUM(A1:A10) が入ったセル
ISREF有効なセル参照かA1, Sheet2!B3
ISEVEN偶数か2, 4, 100
ISODD奇数か1, 3, 99

TIP

エラー判定の3兄弟を覚えておきましょう。ISERROR(全エラー)= ISNA(#N/A のみ)+ ISERR(#N/A 以外)。この関係がわかれば使い分けに迷いません。

まとめ

ISERR関数は、セルの値が #N/A 以外のエラーかどうかを判定する関数です。

項目内容
構文=ISERR(テストの対象)
対象エラー#VALUE!, #REF!, #DIV/0!, #NAME?, #NUM!, #NULL!(6種類)
除外エラー#N/A(FALSE を返す)
戻り値TRUE または FALSE
関係式ISERROR = ISNA + ISERR
  • ISNA関数と組み合わせれば、エラーの種類に応じた精緻な分岐が可能
  • XLOOKUPの第4引数は #N/A しか処理しないので、構造エラーの検知にはISERRが必要
  • IFERRORですべてまとめて処理するか、ISERR + ISNAで区別するかがポイント

VLOOKUPやXLOOKUPで「#N/A は正常な結果だけど、それ以外のエラーは問題」という場面は意外と多いです。そんなときにISERR関数を使ってみてください。


関連記事

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