Excel関数 逆引き集 | エラー列を検出 → ISERROR

Excel
スポンサーリンク

概要

「この列、どこか1つでもエラーがあるか知りたい」
「たくさんの計算列の中から、エラーが出ている列だけを見つけたい」

こういうときに使えるのが ISERROR 関数です。

ISERROR は
「そのセルはエラーかどうか?」
を TRUE / FALSE で判定します。

これを列全体に使えば、
「どの行がエラーか」「この列はエラーを含んでいるか」を検出できます。

ここでは、「エラー列を検出」というテーマに絞って、
ISERROR の使い方を初心者向けにかみ砕いて解説します。


ISERROR の基本

ISERROR の書式と意味

基本形はとてもシンプルです。

=ISERROR(値)

「値」のところにセル参照や計算式を入れると、その結果が

  • 何らかのエラー(#N/A, #VALUE!, #REF!, #DIV/0!, #NAME?, #NUM! など)なら → TRUE
  • 正常な値(数値・文字列・空白など)なら → FALSE

となります。

例:

=ISERROR(1/0)      ' → TRUE(#DIV/0! になる式)
=ISERROR(VLOOKUP(A2,$D$2:$E$10,2,FALSE))  ' 見つからなければ TRUE
=ISERROR(100)      ' → FALSE
=ISERROR("ABC")    ' → FALSE

エラーかどうかを「はい/いいえ」で返してくれる“判定用スイッチ”だと思ってください。


行ごとのエラー判定から「エラー列」を把握する

各行がエラーかどうかフラグを立てる

まずは、ある列について「どの行がエラーか」をフラグ化してみます。

たとえば、B列にたくさんの計算式が入っているとします。
その右隣、C2 に次のように書きます。

=ISERROR(B2)

これを下にコピーすると、

  • B2 がエラー → C2 が TRUE
  • B2 が正常 → C2 が FALSE

となり、B列のどの行がエラーか一目で分かるようになります。

この「TRUE が1つでもある列」は、「エラーを含んでいる列」だ、と判断できます。


エラー列かどうかをひと目で分かるようにする

TRUE を「エラーあり」「正常」に言い換える

TRUE / FALSE のままだと分かりづらい場合は、IF と組み合わせます。

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

これで、

  • B2 がエラー → 「エラーあり」
  • B2 が正常 → 「正常」

と表示されます。

列全体にこの判定列を作ることで、
「どの行でどの列がエラーを起こしているか」を一覧で確認しやすくなります。


列単位で「この列にエラーが1つでもあるか」をチェックする

COUNTIF と組み合わせて、エラー列を検出する

「B列のどこか1つでもエラーがあるか?」をまとめて判定したいときは、
ISERROR と COUNTIF(または SUMPRODUCT)を組み合わせる方法があります。

例えば、B2:B100 を対象にして

=COUNTIF(B2:B100,"#N/A")

のように特定エラーを数える方法もありますが、
「全エラーをまとめて判定したい」なら、ISERROR を使った配列的な書き方が便利です。

代表的な例:

=SUMPRODUCT(--ISERROR(B2:B100))>0

この式の意味は、「B2:B100 の中でエラーの個数が1個以上あるか?」です。

ISERROR(B2:B100)
→ 範囲内の各セルについて TRUE/FALSE の配列を返す

–ISERROR(B2:B100)
→ TRUE を 1、FALSE を 0 に変換

SUMPRODUCT(…)
→ 1 の合計、すなわちエラーセルの件数

それが 0 より大きいかどうかで、
「この列はエラーを含んでいるか」を判定できます。

結果としては TRUE / FALSE が返ってくるので、
IF と組み合わせるとより分かりやすくなります。

=IF(SUMPRODUCT(--ISERROR(B2:B100))>0, "エラー列", "正常列")

これを、例えば行の上部(B1 など)に置いておくと、
B列がエラーを含んでいるかどうかがひと目で分かります。


ISERROR を使うときの考え方と注意点

「エラーかどうか」をまず可視化する

数式が壊れているとき、多くの人は
「エラーを消す」ことから始めてしまいますが、
最初にやるべきは 「どこがエラーかを見える化する」 ことです。

そのために ISERROR を使って、

  • 行ごとのエラー判定列を作る
  • 列ごとに「エラーあり/正常」を表示する

という“診断用の列”を仕込んでおくと、
原因究明がかなり楽になります。

ISERROR は「全部のエラー」を対象にする

ISERROR は、#N/A を含むすべてのエラーで TRUE になります。

特定のエラーだけを検出したいときは、

  • #N/A → ISNA
  • #N/A 以外 → ISERR

といった兄弟関数も使い分けると、より細かい分析ができます。


例題

問題1

B2 に計算式が入っています。
B2 が何らかのエラー(#DIV/0!, #N/A など)になっている場合 TRUE、
エラーでない場合 FALSE を返す式を書いてください。

=ISERROR(B2)

問題2

B2 に計算式が入っています。
B2 がエラーのとき「エラーあり」、エラーでないとき「正常」と表示したいです。
そのための式を書いてください。

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

問題3

B2:B100 の中に、エラーが1つでも含まれていれば「エラー列」、
1つもエラーがなければ「正常列」と表示したいです。
そのために ISERROR と SUMPRODUCT を使った式を書いてください。

=IF(SUMPRODUCT(--ISERROR(B2:B100))>0, "エラー列", "正常列")

問題4

B2:B10 に計算結果が入っています。
C列に「その行の B列がエラーなら TRUE、そうでないなら FALSE」を表示したいです。
C2 に書く式を書いてください。

=ISERROR(B2)

(この式を C10 までコピーします。)


問題5

B2:B100 の中に「エラーセルの数」が何個あるか数えたいです。
ISERROR と SUMPRODUCT を使った式を書いてください。

=SUMPRODUCT(--ISERROR(B2:B100))

まとめ

「エラー列を検出 → ISERROR」は、
エラーを“消す”前に まず見える化するためのステップ です。

基本形はこれだけです。

=ISERROR(セル)

そこから一歩進んで、

=IF(ISERROR(セル), "エラーあり", "正常")
=IF(SUMPRODUCT(--ISERROR(列範囲))>0, "エラー列", "正常列")

などに発展させることで、
「どの列が問題を抱えているのか」を素早く見抜けるようになります。

エラーが多くてどこから手を付けていいか分からない表こそ、
ISERROR で“エラーの地図”を作るところから始めてみてください。

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