概要
「どのセルがエラーになっているのか一気に確認したい」
「表の中から“エラーだけ”を抽出して一覧にしたい」
「大量の数式の中で、どこが壊れているのか素早く見つけたい」
そんなときに最強なのが FILTER × ISERROR の組み合わせです。
FILTER は「条件に合う行だけを抽出する」関数、
ISERROR は「そのセルがエラーかどうか」を TRUE/FALSE で返す関数。
この2つを組み合わせると、
「エラーセルだけを抽出する一覧」 を一瞬で作れます。
FILTER × ISERROR の基本
基本形(テンプレート)
=FILTER(抽出したい範囲, ISERROR(判定したい範囲))
動きはこうです。
- ISERROR が TRUE の行だけを FILTER が抽出する
- エラーでない行は自動的に除外される
例えば、A2:A20 の中からエラーだけを抽出したいなら、
=FILTER(A2:A20, ISERROR(A2:A20))
これだけで エラーセルだけの一覧 が作れます。
エラーセルだけを抽出する基本例
A列の中からエラーだけを抽出する
A2:A20 に数式が入っていて、
どこがエラーになっているか一覧で見たい場合。
=FILTER(A2:A20, ISERROR(A2:A20))
動き
- A2:A20 の中でエラーのセル → 抽出される
- 正常なセル → 抽出されない
これだけで「エラー一覧」が完成します。
エラーがある行を丸ごと抽出する
行単位で抽出したい場合
例えば、A〜C列にデータがあり、
「どれか1つでもエラーがある行を丸ごと抽出したい」
という場合。
=FILTER(A2:C20, ISERROR(A2:A20))
ポイント
- ISERROR(A2:A20) は A列のエラーを判定
- A列にエラーがある行だけ、A〜C列のデータが抽出される
もし「B列のエラーを基準にしたい」なら、
ISERROR(B2:B20) に変えるだけです。
複数列のどこかにエラーがある行を抽出する
OR 条件で複数列をチェック
A列または B列にエラーがある行を抽出したい場合。
=FILTER(A2:C20, ISERROR(A2:A20) + ISERROR(B2:B20))
ISERROR は TRUE=1、FALSE=0 として扱われるため、
足し算で「どちらかが TRUE なら抽出」という OR 条件になります。
エラーの種類別に抽出する(応用)
#N/A だけ抽出したい場合
ISERROR は「すべてのエラー」を対象にしますが、
#N/A だけを抽出したいなら ISNA を使います。
=FILTER(A2:A20, ISNA(A2:A20))
#DIV/0! だけ抽出したい場合
#DIV/0! は ISERR で判定できます(#N/A 以外のエラー)。
=FILTER(A2:A20, ISERR(A2:A20))
FILTER × ISERROR を使うときの注意点
エラーが1つもないと #CALC! になる
FILTER は「抽出結果が空」のときにエラーになります。
そのため、
「エラーがないときは空白を返す」ようにしておくと安全です。
=IFERROR(FILTER(A2:A20, ISERROR(A2:A20)), "")
例題
問題1
A2:A20 の中から、エラーになっているセルだけを抽出する FILTER × ISERROR の式を書いてください。
=FILTER(A2:A20, ISERROR(A2:A20))
問題2
A2:C20 の表のうち、A列にエラーがある行だけを抽出する式を書いてください。
=FILTER(A2:C20, ISERROR(A2:A20))
問題3
A列または B列のどちらかにエラーがある行を抽出する式を書いてください。
=FILTER(A2:C20, ISERROR(A2:A20) + ISERROR(B2:B20))
問題4
A2:A20 の中から、#N/A エラーだけを抽出する式を書いてください。
=FILTER(A2:A20, ISNA(A2:A20))
問題5
A2:A20 の中にエラーが1つもない場合は空白を返し、
エラーがある場合はエラーセルだけを抽出する式を書いてください。
=IFERROR(FILTER(A2:A20, ISERROR(A2:A20)), "")
まとめ
FILTER × ISERROR は、
「どこがエラーになっているかを一瞬で見つける」
ための最強コンビです。
まずはこの形を覚えておけば十分です。
=FILTER(範囲, ISERROR(範囲))
あなたのシートの中で「どこが壊れているのか分からない」場面があれば、
ぜひこの方法で エラー一覧を自動抽出 してみてください。
デバッグ効率が劇的に上がります。
