概要
「どの行がエラーになっているのか一目で分かるようにしたい」
「エラー行だけ色を付けたい・抽出したい」
「後続の処理でエラー行を除外したい」
こうした場面で役立つのが ISERROR 関数で“エラー行にフラグを立てる”方法です。
ISERROR は
そのセルがエラーなら TRUE、正常なら FALSE
を返す、とてもシンプルな判定関数です。
この TRUE / FALSE を「フラグ」として使うことで、
エラー行の可視化・抽出・除外が一気にやりやすくなります。
ISERROR の基本
ISERROR の書式と動き
=ISERROR(値)
判定結果は次の通りです。
#N/A#DIV/0!#VALUE!#REF!#NUM!#NAME?
など すべてのエラー → TRUE
正常な値(数値・文字列・空白など) → FALSE
つまり、
「エラーかどうか」だけをシンプルに判定するスイッチ
として使えます。
行ごとに「エラー行フラグ」を立てる
判定列を作ってエラー行を可視化する
たとえば、B列に計算結果が入っているとします。
C列に「エラー行フラグ」を作るなら、C2 にこう書きます。
=ISERROR(B2)
これを下にコピーすると、
- B2 がエラー → C2 は TRUE(=エラー行)
- B2 が正常 → C2 は FALSE(=正常行)
となり、どの行がエラーか一目で分かります。
この「TRUE の行だけ抽出」「TRUE の行だけ色付け」など、
後続処理がとてもやりやすくなります。
エラー行に「エラー」などのラベルを付ける
TRUE / FALSE を人間が読める形に変換
TRUE / FALSE のままだと分かりにくいので、IF と組み合わせてラベル化できます。
=IF(ISERROR(B2), "エラー", "正常")
これで、
- エラー行 → 「エラー」
- 正常行 → 「正常」
と表示され、一覧として見やすくなります。
エラー行だけ抽出する(FILTER と組み合わせ)
エラー行だけ別表にしたい場合
A〜D列が元データ、B列が計算結果だとします。
「B列がエラーの行だけ」を抽出したいなら、次のように書けます。
=FILTER(A2:D20, ISERROR(B2:B20))
動き:
- B列がエラー → TRUE → 抽出
- B列が正常 → FALSE → 抽出されない
これで「エラー行だけの一覧」が自動で作れます。
エラー行を除外したい場合(NOT と組み合わせ)
正常行だけを残す
エラー行を除外して「正常行だけ」を抽出したいなら、NOT を使います。
=FILTER(A2:D20, NOT(ISERROR(B2:B20)))
- B列が正常 → NOT(FALSE) = TRUE → 抽出
- B列がエラー → NOT(TRUE) = FALSE → 除外
正常データだけで集計したいときに便利です。
エラー行に色を付ける(条件付き書式)
条件付き書式でエラー行を強調
- 行全体を選択(例:A2:D100)
- 条件付き書式 → 新しいルール
- 「数式を使用して…」を選択
- 次の式を入力:
=ISERROR($B2)
- 好きな色を設定
これで「B列がエラーの行だけ」自動で色が付きます。
例題
問題1
B2 がエラーなら TRUE、正常なら FALSE を返す式を書いてください。
=ISERROR(B2)
問題2
B2 がエラーなら「エラー」、正常なら「正常」と表示したいです。
C2 に書く式を書いてください。
=IF(ISERROR(B2), "エラー", "正常")
問題3
A〜D列の表があり、B列が計算結果です。
B列がエラーの行だけを A〜D 列ごと抽出したいです。
E2 に書く FILTER × ISERROR の式を書いてください。
=FILTER(A2:D20, ISERROR(B2:B20))
問題4
B列が正常な行だけを A〜D 列ごと抽出したいです。
E2 に書く式を書いてください。
=FILTER(A2:D20, NOT(ISERROR(B2:B20)))
問題5
B2:B100 の中で、エラー行が 1 つでもあれば「エラーあり」、
1 つもなければ「正常」と表示したいです。
B1 に書く式を書いてください(ヒント:SUMPRODUCT)。
=IF(SUMPRODUCT(--ISERROR(B2:B100))>0, "エラーあり", "正常")
まとめ
「エラー行にフラグ → ISERROR」のポイントは、
- ISERROR は「すべてのエラー」を TRUE にする
- TRUE / FALSE を“フラグ”として使う
- FILTER や IF、条件付き書式と組み合わせると強力
というところにあります。
まずはこの形を覚えておけば十分です。
=ISERROR(セル) ' エラー行フラグ
=FILTER(範囲, ISERROR(列)) ' エラー行だけ抽出
エラーが混ざって困っている表があれば、
まず ISERROR で「どこがエラーか」を見える化してみてください。
その後の分析・修正が驚くほどスムーズになります。
