ExcelのISERROR関数の使い方|すべてのエラーをまとめて判定する方法【図解あり】

スポンサーリンク

数式を組んだらセルに「#VALUE!」や「#REF!」が表示された……。Excelで関数を使っていると、さまざまなエラーに遭遇しますよね。

「エラーかどうかをまとめて判定したい」。そんなときに活躍するのがISERROR関数です。

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

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

– セルの値がエラーかどうかをまとめて判定したい
– #N/A、#VALUE!、#REF! などエラーの種類を問わず検知したい
– IFERROR関数やISNA関数との違いを知りたい

ISERROR関数とは?

ISERROR(いず えらー)関数は、指定した値がエラー値かどうかを判定する関数です。

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

すべてのエラーに反応するのが最大の特徴です。#N/A、#VALUE!、#REF!、#DIV/0!、#NAME?、#NUM!、#NULL! の7種類すべてで TRUE を返します。

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

NOTE

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

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

基本構文

=ISERROR(テストの対象)

引数の説明

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

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

ISERROR関数の基本的な使い方

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

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

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

A列の値数式ISERROR の結果理由
=10/0 (#DIV/0!)=ISERROR(A2)TRUEゼロ除算エラー
=VLOOKUP(“Z”,D:E,2,0) (#N/A)=ISERROR(A3)TRUE検索値が見つからない
=”あ”+1 (#VALUE!)=ISERROR(A4)TRUEデータ型が不正
=SQRT(-1) (#NUM!)=ISERROR(A5)TRUE数値が範囲外
100=ISERROR(A6)FALSE正常な数値
東京=ISERROR(A7)FALSE正常な文字列
TRUE=ISERROR(A8)FALSE正常な論理値

TIP

ISERROR関数は7種類すべてのエラーに反応します。#N/A だけを判定したい場合は ISNA関数 を、#N/A 以外のエラーだけを判定したい場合は ISERR関数 を使いましょう。

Excelのエラー7種類とISERRORの判定結果

ISERROR関数がすべてのエラーに TRUE を返すことを一覧で確認しておきましょう。

エラー値意味ISERROR の結果
#N/A値が見つからないTRUE
#VALUE!データ型が不正TRUE
#REF!参照先が無効TRUE
#DIV/0!ゼロで除算したTRUE
#NAME?関数名やセル名が不正TRUE
#NUM!数値が範囲外TRUE
#NULL!セル範囲の共通部分がないTRUE

セル参照で判定する

セル参照を使えば、特定のセルがエラーかどうかを確認できます。

=ISERROR(A1)

A1 にエラー値が表示されていれば TRUE です。数値や文字列、空白なら FALSE になります。

IFと組み合わせてエラーを処理する

ISERROR関数は IF関数 と組み合わせることで、エラー時の処理を自由にコントロールできます。基本的な書き方はこちらです。

=IF(ISERROR(数式), エラー時の値, 正常時の値)

たとえば割り算の結果がエラーなら「計算不可」と表示し、正常なら計算結果を返す数式は次のとおりです。

=IF(ISERROR(B2/C2),"計算不可",B2/C2)

C2 が 0 や空白のとき #DIV/0! になりますが、ISERROR で検知して「計算不可」と表示します。正常に割り算できた場合はそのまま結果を返しますよ。

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

パターン1: VLOOKUPのエラーをまとめてキャッチする

VLOOKUPは #N/A だけでなく、#REF!(列番号が範囲外)や #VALUE!(検索値が不正)も発生します。すべてまとめて処理したい場合に便利です。

=IF(ISERROR(VLOOKUP(B2,商品マスタ!A:C,2,FALSE)),"未登録",VLOOKUP(B2,商品マスタ!A:C,2,FALSE))

どの種類のエラーが発生しても「未登録」と表示します。

TIP

単にエラーを代替値に置き換えるだけなら IFERROR関数 のほうがシンプルです。=IFERROR(VLOOKUP(...),"未登録") と書けば同じ結果になります。ISERROR関数は「TRUE/FALSE で判定結果を得たい」場面で力を発揮します。

パターン2: エラーがあるセルをカウントする

データ範囲の中でエラーが何件あるか数えたいとき、SUMPRODUCT関数と組み合わせて使えます。

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

C2:C100 の中でエラーになっているセルの個数を返します。ISERROR が TRUE(= 1)を返したセルの数を合計する仕組みです。

パターン3: エラーでないデータだけを合計する

エラーが混在する範囲で、正常な数値だけを合計したいケースです。

=SUMPRODUCT((1-ISERROR(C2:C100))*C2:C100)

ISERROR が FALSE(= 0)のセルだけを合計します。エラーセルは自動的に除外されます。

NOTE

通常の =SUM(C2:C100) だと、範囲内にエラーが1つでもあると結果全体がエラーになってしまいます。SUMPRODUCT + ISERROR なら、エラーを除外して正常値だけを集計できますよ。

パターン4: 条件付き書式でエラーセルをハイライトする

数式が入った列でエラーになっているセルだけを目立たせたい場合に使えます。条件付き書式はTRUE/FALSEを返す数式が必要なので、ISERRORが最適です。

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

エラーが入ったセルだけが色付きになります。エラーの種類を問わず検知できるので、データのクレンジング作業に役立ちますよ。

TIP

条件付き書式では IFERROR関数 は使えません。IFERROR は代替値を返す関数で、TRUE/FALSE を返さないためです。条件付き書式でエラーセルを装飾するなら ISERROR の出番ですよ。

ISERROR関数とISNA・ISERR・IFERRORの違い

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

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

NOTE

「エラーを代替値に置き換えたいだけ」なら IFERROR や IFNA のほうがシンプルです。「エラーかどうかを TRUE/FALSE で知りたい」「エラーの有無に応じて処理を分岐したい」場面で ISERROR が活躍します。IF/IFS/IFERROR/IFNAの使い分けは こちらの比較記事 でもくわしく解説しています。

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) は同じ結果になります。

使い分けの判断フロー

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

よくあるエラーと対処法

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

症状原因対処法
エラーなのに FALSE が返る見た目はエラーだが実はエラー値ではない「#N/A」が文字列として入力されていないか確認する
正常な値でも TRUE が返る参照先のセルがエラーになっている数式バーで参照先セルの値を確認する
空白セルで FALSE が返る空白はエラーではない空白判定には ISBLANK関数 を使う
エラーの種類を区別できないISERRORはすべてのエラーで TRUE を返す#N/A だけなら ISNA関数、#N/A 以外なら ISERR関数
数式で #NAME? が表示される関数名のスペルミス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 以外)。この関係がわかれば使い分けに迷いません。

まとめ

ISERROR関数は、セルの値がエラーかどうかを判定するシンプルな関数です。

  • 引数は1つだけ。エラーなら TRUE、それ以外なら FALSE
  • #N/A、#VALUE!、#REF! など7種類すべてのエラーに反応する
  • ISNA(#N/A のみ)や ISERR(#N/A 以外)との違いは「対応範囲の広さ」
  • エラーを置き換えるだけなら IFERROR、判定だけなら ISERROR
  • 条件付き書式やSUMPRODUCTとの組み合わせはISERROR関数の独壇場

特定のエラーだけを検知したい場合はISNAやISERRが適していますが、「エラーかどうかをまとめて判定したい」場面ではISERROR関数が最適です。ぜひ使い分けてみてください。


関連記事

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