数式を組んだらセルに「#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が最適です。
- 対象範囲を選択します
- 「ホーム」タブ →「条件付き書式」→「新しいルール」を選択します
- 「数式を使用して、書式設定するセルを決定」を選びます
- 数式欄に
=ISERROR(C2)と入力します - 好きな書式(赤い塗りつぶしなど)を設定します
エラーが入ったセルだけが色付きになります。エラーの種類を問わず検知できるので、データのクレンジング作業に役立ちますよ。
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つの関数がどのエラーに反応するかを一覧にまとめました。
| エラー値 | ISERROR | ISNA | ISERR |
|---|---|---|---|
| #N/A | TRUE | TRUE | FALSE |
| #VALUE! | TRUE | FALSE | TRUE |
| #REF! | TRUE | FALSE | TRUE |
| #DIV/0! | TRUE | FALSE | TRUE |
| #NAME? | TRUE | FALSE | TRUE |
| #NUM! | TRUE | FALSE | TRUE |
| #NULL! | TRUE | FALSE | TRUE |
ISERROR = ISNA + ISERR です。つまり =OR(ISNA(A1), ISERR(A1)) と =ISERROR(A1) は同じ結果になります。
使い分けの判断フロー
- すべてのエラーを隠したい → IFERROR関数
- すべてのエラーをTRUE/FALSEで判定したい → ISERROR関数(この記事)
- #N/A だけを隠したい → IFNA関数
- #N/A だけをTRUE/FALSEで判定したい → ISNA関数
- #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関数が最適です。ぜひ使い分けてみてください。
関連記事
- ISNA関数の使い方|#N/Aエラーだけを判定する方法
- ISERR関数の使い方|#N/A以外のエラーを判定する方法
- IFERROR関数の使い方|エラーを非表示にする方法
- IFNA関数の使い方|#N/Aエラーだけを処理する方法
- IF・IFS・IFERROR・IFNAの使い分け|選び方フロー付き
- ISTEXT関数の使い方|文字列かどうかを判定する方法
- ISNUMBER関数の使い方|数値かどうかを判定する方法
- ISLOGICAL関数の使い方|論理値(TRUE/FALSE)を判定する方法
- ISBLANK関数の使い方|空白セルを判定する方法
- ISFORMULA関数の使い方|数式が入っているか確認する方法
- VLOOKUP関数の使い方
- IF関数の使い方|条件分岐の基本
- Excel関数一覧(機能別)
