Excel関数 逆引き集 | エラーを別シートに一覧 → FILTER

Excel
スポンサーリンク

概要

「元データの中にエラーが混ざっているけど、どこにあるか探すのが大変」
「エラー行だけを別シートにまとめて、後で一気に確認したい」

そんなときに最強なのが 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 で、エラー管理を一気にスマートにできます。

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