スプレッドシートのISERROR関数の使い方|エラー判定

スポンサーリンク

スプレッドシートで数式を入れたら「#N/A」や「#VALUE!」が表示されてしまった。こんな経験はありませんか?

エラーが出ているセルを見つけて処理を分けたいケースは、実務でよくありますよね。

そんなときに使えるのがISERROR関数です。セルや数式の結果がエラーかどうかをTRUE/FALSEで判定してくれます。

この記事では基本の書き方からIF関数との組み合わせ、IFERROR関数との違いまで紹介します。

ISERROR関数とは?

ISERROR関数(読み方: イズエラー関数)は、指定した値がエラーかどうかを判定する関数です。

名前はIS(〜かどうか)+ ERROR(エラー)が由来です。

セルの値がエラーなら =ISERROR(A1) はTRUEを返します。

引数はチェックしたい値の1つだけです。結果はTRUEかFALSEの2択なので、とてもシンプルですね。

ISERROR関数にできることをまとめると、次のとおりです。

  • セルや数式の結果がエラーかどうかをTRUE/FALSEで判定する
  • IF関数と組み合わせてエラー時の処理を分岐する
  • 条件付き書式でエラーセルを色付けする
  • 7種類すべてのエラー(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!)を検出する

NOTE

ISERROR関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。

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

基本構文

=ISERROR(値)

カッコの中にエラーかどうかを判定したいセルや数式を指定するだけです。

引数の説明

引数必須/任意説明
必須エラーかどうかを確認したいセル参照・数式・値(例: A1、VLOOKUP(…))

引数は1つだけです。値がエラーならTRUE、エラーでなければFALSEを返します。

ISERROR関数がTRUE/FALSEを返すパターン

どんな値がTRUE(エラー)と判定されるかを一覧にしました。

データの種類判定結果
#N/ATRUE(エラー)
#VALUE!TRUE(エラー)
#REF!TRUE(エラー)
#DIV/0!TRUE(エラー)
#NUM!TRUE(エラー)
#NAME?TRUE(エラー)
#NULL!TRUE(エラー)
数値(0を含む)FALSE
文字列FALSE
論理値(TRUE/FALSE)FALSE
空白セルFALSE

ISERROR関数は7種類すべてのエラーをTRUEと判定します。エラー以外の値はすべてFALSEです。

TIP

#N/A以外のエラーだけを判定したい場合はISERR関数、#N/Aだけを判定したい場合はISNA関数を使います。用途に応じて使い分けてみてください。

ISERROR関数の基本的な使い方

エラーかどうかを判定する

もっともシンプルな使い方です。A1がエラーかどうかを確認します。

=ISERROR(A1)

A1がエラー値ならTRUE、正常な値ならFALSEが返ります。

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

ISERROR関数はIF関数と組み合わせることが多いです。エラーのときと正常のときで表示を変えます。

=IF(ISERROR(A2), "エラーあり", "正常")

A2がエラーなら「エラーあり」、正常な値なら「正常」と表示します。

エラーを空白に置き換える

数式のエラーを非表示にしたいときに使えます。

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

C2が0のときに出る#DIV/0!エラーを空欄に置き換えます。正常に計算できればそのまま結果を表示します。

条件付き書式でエラーセルをハイライト

ISERROR関数を条件付き書式のカスタム数式に使うと、エラーセルを色付けできます。

手順:

  1. 色付けしたい範囲(例: B2:B20)を選択する
  2. 「表示形式」→「条件付き書式」を開く
  3. 「カスタム数式」を選び、次の数式を入力する
=ISERROR(B2)
  1. 書式スタイルで背景色を赤やオレンジに設定する

これでエラーが出ているセルがひと目でわかります。エラーが解消されるとハイライトが自動で消えます。

実務でのISERROR関数活用例

VLOOKUPのエラーを空白にする

VLOOKUPで検索値が見つからないと#N/Aエラーが出ます。IF+ISERRORで空白に置き換えましょう。

=IF(ISERROR(VLOOKUP(A2, Sheet2!A:C, 3, FALSE)), "", VLOOKUP(A2, Sheet2!A:C, 3, FALSE))

VLOOKUPの結果がエラーなら空欄、正常なら検索結果を表示します。

TIP

この処理はIFERROR関数を使うともっとシンプルに書けます。=IFERROR(VLOOKUP(A2, Sheet2!A:C, 3, FALSE), "") で同じ結果になります。使い分けについては後ほど「IFERROR関数との違い」セクションで解説します。

エラーの種類ごとに処理を分ける

ISERROR関数の強みは、エラーの種類ごとに異なる処理ができることです。IF関数やERROR.TYPE関数と組み合わせて使います。

=IF(ISERROR(B2),
  IF(ERROR.TYPE(B2)=7, "検索値なし",
  IF(ERROR.TYPE(B2)=3, "値が不正",
  IF(ERROR.TYPE(B2)=4, "参照エラー", "その他のエラー"))),
  B2)

ERROR.TYPE関数はエラーの種類を番号で返します。主な番号は次のとおりです。

番号エラー値意味
1#NULL!範囲に共通部分がない
2#DIV/0!0で割り算した
3#VALUE!値の種類が不正
4#REF!参照先が無効
5#NAME?関数名のスペルミス
6#NUM!数値が範囲外
7#N/A検索値が見つからない

この処理はIFERROR関数では実現できません。エラーの内容に応じて対応を変えたいときはISERROR関数の出番です。

ARRAYFORMULAで全行一括判定

ISERROR関数をARRAYFORMULA関数と組み合わせると、1つの数式で全行分を処理できます。

=ARRAYFORMULA(IF(ISBLANK(A2:A), "", IF(ISERROR(B2:B), "要確認", "OK")))

A列にデータがある行だけを対象に、B列のエラーチェックを実行します。数式を下方向にコピーする必要がないので便利です。

NOT+ISERRORで「エラーでないもの」を抽出

FILTER関数と組み合わせて、エラーでない行だけを抽出するパターンです。

=FILTER(A2:C, NOT(ISERROR(B2:B)))

B列がエラーでない行だけをフィルタして表示します。データクレンジングの前処理に使えます。

よくあるエラーと対処法

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

症状原因対処法
エラーなのにFALSEになるエラーではなくエラーに見える文字列が入っているLEN関数でセル内容を確認する
TRUEになるがエラーが見えない参照先の数式がエラーを返している数式バーでセルの中身を確認する
すべてTRUEになるISERROR関数の引数に数式を直接入れているセル参照に変更する
IFと組み合わせても空白にならないIF関数の引数の順番が逆=IF(ISERROR(...), 代替値, 正常時の値) の順番を確認する

文字列のエラー値に注意

セルに「#N/A」という文字列が入力されている場合、ISERROR関数はFALSEを返します。見た目はエラーでも、文字列はエラー値ではありません。

LEN関数で文字数を確認するか、数式バーで先頭にアポストロフィ(’)がないかチェックしましょう。

IFERROR関数との違い・使い分け

ISERROR関数とセットで覚えたいのがIFERROR関数です。どちらもエラー処理に使いますが、役割が異なります。

IF+ISERRORとIFERRORの比較

同じ処理を書いたときの違いを見てみましょう。VLOOKUPのエラーを空白にする例です。

方法数式
IF+ISERROR=IF(ISERROR(VLOOKUP(A2,B:C,2,0)),"",VLOOKUP(A2,B:C,2,0))
IFERROR=IFERROR(VLOOKUP(A2,B:C,2,0),"")

比較すると次のような違いがあります。

比較項目IF+ISERRORIFERROR
構文の長さ長い(数式を2回書く)短い(数式は1回)
可読性やや複雑シンプルで読みやすい
エラー種類の分岐できる(IF文でさらに分岐可能)できない(全エラー一括処理)
条件付き書式での利用使える使える
処理速度数式が2回評価される数式は1回で済む

ISERRORでしかできないこと

IFERRORでは代替できない、ISERROR関数ならではの使い方があります。

1. エラーの種類ごとに処理を分ける

IFERRORは「エラーなら代替値を返す」だけの関数です。ISERRORならIF関数やERROR.TYPE関数と組み合わせられます。#N/Aと#VALUE!で別の処理を行えます。

2. エラーかどうかだけを知りたい

「このセルがエラーかどうか」をTRUE/FALSEで返すだけでよい場合です。条件付き書式のカスタム数式に使うときに便利です。

3. NOT+ISERRORで「正常なデータ」を抽出する

FILTER関数の条件に NOT(ISERROR(...)) を使うと、エラーでない行だけを取り出せます。

結論: 迷ったらIFERROR、分岐したいならISERROR

実務での使い分けは次のとおりです。

  • エラーを非表示にしたい・代替値を返したいIFERROR関数
  • エラーの種類ごとに処理を変えたい → ISERROR + IF関数
  • エラーかどうかをTRUE/FALSEで知りたい → ISERROR関数
  • #N/Aだけを判定したいISNA関数

迷ったらIFERROR関数から試してみてください。柔軟なエラー処理が必要になったらISERROR関数の出番です。

似たエラー判定関数まとめ

関数判定対象戻り値用途
ISERROR全7種のエラーTRUE/FALSE全エラーの判定
ISERR#N/A以外の6種TRUE/FALSE#N/Aを正常扱いしたい場合
ISNA#N/AのみTRUE/FALSEVLOOKUPの「見つからない」だけ判定
IFERROR全7種(判定+代替値)任意の値エラー時に別の値を返す
IFNA#N/Aのみ(判定+代替値)任意の値#N/A時だけ別の値を返す

ISERRORと他のIS系関数

ISERROR関数はIS系情報関数のひとつです。

関数判定内容
ISBLANK空白かどうか
ISNUMBER数値かどうか
ISTEXT文字列かどうか
ISLOGICAL論理値かどうか
ISERRORエラーかどうか
ISFORMULA数式が入っているかどうか

データの種類に応じたチェックをしたいときは、IS系関数を使い分けてみてください。

まとめ

ISERROR関数は、セルや数式の結果がエラーかどうかをTRUE/FALSEで判定するシンプルな関数です。

ポイントをおさらいしましょう。

  • 引数は1つ。エラー値ならTRUE、それ以外はFALSE
  • 7種類すべてのエラー(#N/A、#VALUE!、#REF!など)を検出する
  • IF関数と組み合わせて「エラーなら〜、正常なら〜」の分岐ができる
  • エラーを非表示にするだけならIFERROR関数がシンプル
  • エラーの種類ごとに処理を分けたいときはISERROR+IF関数を使う

エラー処理の基本として、ぜひ活用してみてください。

関連記事

エラーを非表示にしたいだけなら、IFERROR関数の使い方のほうがシンプルです。

空白かどうかの判定には、ISBLANK関数の使い方をあわせてどうぞ。

条件によって表示を切り替えたい場合は、IF関数の使い方を参考にしてください。

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