スプレッドシートのISERR関数の使い方|#N/A以外のエラー判定

スポンサーリンク

スプレッドシートでVLOOKUPを使っていると、検索値が見つからないときに#N/Aが出ますよね。

#N/Aは「見つからなかった」という正常な結果です。でも#VALUE!や#REF!が出たら、数式そのものに問題がある可能性があります。

「#N/Aは無視したいけど、それ以外のエラーだけ検出したい」。そんなときに使えるのがISERR関数です。

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

ISERR関数とは?

ISERR関数(読み方: イズエラー関数)は、#N/A以外のエラーかどうかを判定する関数です。

名前はIS(〜かどうか)+ ERR(Error の略、ただし#N/Aを除く)が由来です。

セルの値が#N/A以外のエラーなら =ISERR(A1) はTRUEを返します。#N/Aや正常な値に対してはFALSEです。

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

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

  • セルや数式の結果が#N/A以外のエラーかどうかを判定する
  • IF関数と組み合わせてエラー時の処理を分岐する
  • #N/Aは正常扱いにしつつ、数式の不具合だけを検出する
  • 条件付き書式でエラーセルを色付けする(#N/Aは除外)

NOTE

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

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

基本構文

=ISERR(値)

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

引数の説明

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

引数は1つだけです。値が#N/A以外のエラーならTRUE、それ以外はFALSEを返します。

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

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

データの種類ISERRISERROR違い
#VALUE!TRUETRUE同じ
#REF!TRUETRUE同じ
#DIV/0!TRUETRUE同じ
#NUM!TRUETRUE同じ
#NAME?TRUETRUE同じ
#NULL!TRUETRUE同じ
#N/AFALSETRUEここだけ違う
数値(0を含む)FALSEFALSE同じ
文字列FALSEFALSE同じ
論理値(TRUE/FALSE)FALSEFALSE同じ
空白セルFALSEFALSE同じ

ISERRとISERRORの違いは#N/Aの扱いだけです。#N/A以外の6種類のエラーはどちらもTRUEと判定します。

TIP

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

ISERR関数の基本的な使い方

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

もっともシンプルな使い方です。A1が#N/A以外のエラーかどうかを確認します。

=ISERR(A1)

A1が#VALUE!や#REF!などのエラーならTRUEを返します。#N/Aや正常な値ならFALSEです。

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

ISERR関数はIF関数と組み合わせることが多いです。#N/A以外のエラーのときだけ処理を変えます。

=IF(ISERR(A2), "数式エラー", A2)

A2が#N/A以外のエラーなら「数式エラー」と表示します。#N/Aや正常な値ならそのまま表示します。

エラーを空白に置き換える(#N/Aは残す)

数式の不具合によるエラーだけを非表示にしたいときに使えます。

=IF(ISERR(B2), "", B2)

B2が#VALUE!や#DIV/0!なら空欄にします。#N/Aはそのまま残るので、「検索値が見つからない」ことがわかります。

条件付き書式でエラーセルをハイライト(#N/A除外)

ISERR関数を条件付き書式に使うと、#N/A以外のエラーセルだけを色付けできます。

手順:

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

#N/Aのセルはハイライトされません。数式の不具合だけが目立つので、修正が必要な箇所をすぐに見つけられます。

実務でのISERR関数活用例

VLOOKUPの#N/Aは残しつつ数式エラーだけ検出する

VLOOKUPで検索値が見つからない#N/Aは想定内です。でも#VALUE!や#REF!が出たら数式に問題があります。ISERR関数を使うと、この2つを区別できます。

=IF(ISERR(VLOOKUP(A2, Sheet2!A:C, 3, FALSE)), "数式を確認", VLOOKUP(A2, Sheet2!A:C, 3, FALSE))

#N/A以外のエラーなら「数式を確認」と表示します。#N/Aはそのまま表示されるので、「見つからなかった」ことが一目でわかります。

TIP

#N/Aも含めてすべてのエラーを非表示にしたい場合は、IFERROR関数を使うのが手軽です。=IFERROR(VLOOKUP(...), "") で全エラーを空白にできます。

割り算のエラーだけを検出する

売上÷数量で単価を計算するとき、数量が0だと#DIV/0!エラーが出ます。ISERR関数で検出して対処しましょう。

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

0で割ったときの#DIV/0!は「計算不可」と表示します。通常の計算結果はそのまま表示されます。

ARRAYFORMULAで全行一括判定

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

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

A列にデータがある行だけを対象に、B列の#N/A以外のエラーをチェックします。#N/Aの行は「OK」と表示されるので、数式の不具合だけを見つけられます。

NOT+ISERRで「#N/A以外のエラーがない行」を抽出

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

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

B列が正常値または#N/Aの行だけをフィルタして表示します。#N/Aの行も残るので、「見つからなかったデータ」を含めて確認できます。

ISERROR関数・ISNA関数との違い・使い分け

ISERR関数を理解するには、ISERROR関数とISNA関数との関係を押さえるのがポイントです。

3つの関数の判定範囲

3つの関数はエラーの判定範囲が異なります。

関数判定対象#N/Aの扱い
ISERROR全7種のエラーTRUE(エラー扱い)
ISERR#N/A以外の6種FALSE(正常扱い)
ISNA#N/AのみTRUE(エラー扱い)

この3つは次のような関係です。

ISERROR = ISERR + ISNA

つまりISERROR関数は、ISERR関数とISNA関数を合わせたものです。

どの関数を使うべきか

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

  • 全エラーを検出したいISERROR関数
  • #N/Aは正常扱い、それ以外のエラーだけ検出したい → ISERR関数
  • #N/Aだけを検出したいISNA関数
  • エラー時に代替値を返したいIFERROR関数

迷ったらISERROR関数から試してみてください。「#N/Aは残したい」と感じたらISERR関数に切り替えましょう。

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

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

ISERRと他のIS系関数

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

関数判定内容
ISBLANK空白かどうか
ISNUMBER数値かどうか
ISTEXT文字列かどうか
ISLOGICAL論理値かどうか
ISERRORエラーかどうか(全種類)
ISERRエラーかどうか(#N/A除外)
ISFORMULA数式が入っているかどうか

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

よくあるエラーと対処法

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

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

ISERRとISERRORの入力ミスに注意

ISERR関数とISERROR関数は名前が似ているため、入力ミスが起こりやすいです。

  • =ISERR(A1) → #N/A以外のエラーを判定
  • =ISERROR(A1) → 全エラーを判定

#N/Aを除外したいのにISERROR関数を使っていると、#N/Aもエラー扱いになります。逆に全エラーを検出したいのにISERR関数を使うと、#N/Aを見逃します。

関数名をよく確認してから入力しましょう。

まとめ

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

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

  • 引数は1つ。#N/A以外のエラーならTRUE、それ以外はFALSE
  • #VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!の6種類を検出する
  • #N/Aはエラー扱いしない(FALSEを返す)
  • ISERRORとの違いは#N/Aの扱いだけ
  • VLOOKUPの「見つからない」は正常扱いにして、数式の不具合だけ検出したいときに便利

#N/Aを除外したエラー判定が必要なときに、ぜひ活用してみてください。

関連記事

全エラーを判定したい場合は、ISERROR関数の使い方をあわせてどうぞ。

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

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

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