概要
「元データの中にエラーが混ざっているけど、どこにあるか探すのが大変」
「エラー行だけを別シートにまとめて、後で一気に確認したい」
そんなときに最強なのが FILTER × ISERROR の組み合わせです。
FILTER は「条件に合う行だけを抽出する」関数、
ISERROR は「そのセルがエラーかどうか」を TRUE / FALSE で返す関数。
この2つを組み合わせると、
エラー行だけを別シートに自動で一覧化 できます。
基本の考え方
FILTER × ISERROR の基本形
まずは基本形を押さえましょう。
=FILTER(抽出したい範囲, ISERROR(判定したい範囲))
ISERROR が TRUE の行だけ FILTER が抽出します。
つまり
「エラーになっている行だけを抜き出す」
という動きになります。
別シートにエラー行を一覧化する手順
1. 元データのあるシートを確認
例として、元データが Sheet1 にあり、
A〜D列にデータ、B列に計算結果が入っているとします。
2. 別シート(例:Sheet2)を用意
Sheet2 の A2 に次の式を書きます。
=FILTER(Sheet1!A2:D100, ISERROR(Sheet1!B2:B100))
これで、
- B列がエラーの行だけ
- A〜D列ごと
- Sheet2 に一覧表示されます。
元データが更新されれば、
この一覧も自動で更新されるのが FILTER の強みです。
別シートに「エラーセルだけ」を縦に抽出する
1列だけのエラー一覧を作りたい場合
A列に計算結果が入っていて、
エラーだけを別シートに一覧化したい場合。
Sheet2 の A2 に次の式を書きます。
=FILTER(Sheet1!A2:A100, ISERROR(Sheet1!A2:A100))
これで、A列のエラーセルだけが
上から詰めて一覧になります。
複数列のどこかにエラーがある行を抽出する
OR 条件で複数列をチェック
A列または B列のどちらかにエラーがある行を
別シートに一覧化したい場合。
Sheet2 の A2 に次の式を書きます。
=FILTER(
Sheet1!A2:D100,
ISERROR(Sheet1!A2:A100) + ISERROR(Sheet1!B2:B100)
)
ISERROR の結果は TRUE=1、FALSE=0 として扱われるため、
足し算で「どちらかが TRUE なら抽出」という OR 条件になります。
エラーが1件もない場合の対策
FILTER は該当なしだと #CALC! になる
エラー行が1件もないと FILTER はエラーになります。
それを避けるには IFERROR を組み合わせます。
=IFERROR(
FILTER(Sheet1!A2:D100, ISERROR(Sheet1!B2:B100)),
"エラー行なし"
)
これで、
- エラー行がある → 抽出結果を表示
- エラー行がない → 「エラー行なし」と表示
という安全な動きになります。
応用:エラーの種類別に別シートへ抽出
#N/A だけを別シートに抽出したい場合
ISERROR ではなく ISNA を使います。
=FILTER(Sheet1!A2:D100, ISNA(Sheet1!B2:B100))
#DIV/0! だけを抽出したい場合
ISERR を使います(#N/A 以外のエラー)。
=FILTER(Sheet1!A2:D100, ISERR(Sheet1!B2:B100))
例題
問題1
Sheet1 の A2:D100 にデータがあり、B列が計算結果です。
B列がエラーの行だけを Sheet2 に一覧表示したいとき、Sheet2!A2 に書く式を書いてください。
=FILTER(Sheet1!A2:D100, ISERROR(Sheet1!B2:B100))
問題2
Sheet1 の A2:A100 の中から、エラーセルだけを Sheet2 に縦に抽出したいです。
Sheet2!A2 に書く式を書いてください。
=FILTER(Sheet1!A2:A100, ISERROR(Sheet1!A2:A100))
問題3
Sheet1 の A列または B列のどちらかにエラーがある行だけを、
A〜D列ごと Sheet2 に抽出したいです。
Sheet2!A2 に書く式を書いてください。
=FILTER(
Sheet1!A2:D100,
ISERROR(Sheet1!A2:A100) + ISERROR(Sheet1!B2:B100)
)
問題4
Sheet1 の B列にエラーが1件もない場合は「エラーなし」と表示し、
エラーがある場合はエラー行だけを抽出したいです。
Sheet2!A2 に書く式を書いてください。
=IFERROR(
FILTER(Sheet1!A2:D100, ISERROR(Sheet1!B2:B100)),
"エラーなし"
)
問題5
Sheet1 の B列に VLOOKUP の結果が入っています。
その中から #N/A の行だけを Sheet2 に抽出したいです。
Sheet2!A2 に書く式を書いてください。
=FILTER(Sheet1!A2:D100, ISNA(Sheet1!B2:B100))
まとめ
「エラーを別シートに一覧 → FILTER」は、
大量データのエラー管理を劇的に楽にするテクニックです。
基本形はこれだけ。
=FILTER(範囲, ISERROR(判定範囲))
これを別シートに書くだけで、
エラー行だけが自動で一覧化され、
元データが更新されても常に最新の状態が保たれます。
エラー探しに時間を使うのは今日で終わりにしましょう。
FILTER × ISERROR で、エラー管理を一気にスマートにできます。
