エラーが存在する(かもしれない)行が1列の場合と複数列の場合の例をそれぞれ紹介します。
チェック対象が1列の場合
エラーがある行を抽出する方法
次の画像のB~E列の表が対象となるデータですが、E列に(だけ)関数を使っていて一部の行にエラーが発生しています。
そこでG3セルにFILTER関数を使った式を入力して、E列にエラーがある行だけを抽出しています。
G3セル
=FILTER(B3:E9,ISERROR(E3:E9))
「ISERROR(E3:E9)」によりE3~E9セルの各セルがエラーかどうかを判定した結果(TRUEまたはFALSEからなる配列)を取得しています。これをFILTER関数の第2引数(条件)とすることでE列がエラーである行を抽出しています。第2引数は「ISERROR(E3:E9)=TRUE」としてもいいですが、「=TRUE」は省略できます。
エラーがない行を抽出する方法
データについては上記例と同様です。
G3セルにFILTER関数を使った式を入力して、E列がエラーでない行を抽出しています。
G3セル
=FILTER(B3:E9,ISERROR(E3:E9)=FALSE)
FILTER関数の第2引数(条件)を「ISERROR(E3:E9)=FALSE」とすることでE列がエラーである行を抽出しています。
チェック対象が複数列の場合
エラーがある行を抽出する方法
次の画像では、B~F列の表が対象となるデータですが、C列とF列に関数を使っていて一部の行にエラーが発生しています。
そこでH3セルにFILTER関数を使った式を入力して、どちらかの列がエラーである行を抽出しています。
H3セル
=FILTER(B3:F9,ISERROR(C3:C9)+ISERROR(F3:F9))
「ISERROR(C3:C9)+ISERROR(F3:F9)」という足し算がポイントです。これによりC列とF列の両方の列がエラーなら2、片方の列がエラーなら1、どちらの列もエラーでないと0になる配列が得られます。これをFILTER関数の第2引数とすることで足し算の結果が0でない(どちらかの列がエラーである、言い換えれば少なくとも一方の列がエラーである)行を抽出しています(OR条件)。
この第2引数は「ISERROR(C3:C9)+ISERROR(F3:F9)>0」としてもいいですが「>0」は省略できます。
次の画像も同じことをやっていますが式を少し変えています。
H3セル
=FILTER(B3:F9,ISERROR(C3:C9&F3:F9))
「C3:C9&F3:F9」により、C列とF列の値を(文字列的に)結合した結果を得ています。これはどちらかの列がエラーならエラーになりますので、これをISERROR関数の引数とし、さらにFILTER関数の第2引数とすることで、どちらかの列がエラーである行を抽出しています。
ただしどちらの列もエラーでなくても、値を結合した結果の文字数が極端に長すぎるとその結果がエラーになりますのでご注意ください(以下、&やCONCAT関数を使う例については同様です)。
次の画像は、1つ1つの列を指定して結合するのではなくでB~F列の値をまとめて結合することで、B~F列のいずれかの列がエラーである行を抽出する例です。
ただしデータは上記例と同じなので結果も同じです。
H3セル
=FILTER(B3:F9,BYROW(B3:F9,LAMBDA(x,ISERROR(CONCAT(x)))))
考え方は1つ上の例と同様ですがちょっと難しくなります。BYROW/LAMBDA/ISERROR/CONCAT関数を使うことで各行のB~F列の値をそれぞれ結合した結果の配列を取得しています(いずれかの列がエラーならTRUEとなります)。これをFILTER関数の引数とすることで、B~F列のいずれかの列がエラーである行を抽出しています。
エラーがない行を抽出する方法
データについては上記例と同じです。
H3セルにFILTER関数を使った式を入力して、どちらかの列もエラーでない行を抽出しています。
H3セル
=FILTER(B3:F9,ISERROR(C3:C9)+ISERROR(F3:F9)=0)
エラーがある行を抽出する例と同様に、+演算子を使ったOR条件の判定を行っています。FILTER関数の第2引数(条件)に「=0」がある点が異なっています。
次の画像もやっていることは同じですが+演算子ではなくCONCAT関数を使っています。
H3セル
=FILTER(B3:F9,ISERROR(C3:C9&F3:F9)=FALSE)
エラーがある行を抽出する例と同様に、C列とF列の値を結合した結果(どちらかの列がエラーならエラーになる)を使って判定を行っています。FILTER関数の第2引数に「=FALSE」がある点が異なっています。
次の画像ではB~F列の値を一括して結合することで、B~F列のいずれかの列がエラーである行を抽出する例です。
ただしデータは上記例と同じなので結果も同じです。
H3セル
=FILTER(B3:F9,BYROW(B3:F9,LAMBDA(x,ISERROR(CONCAT(x))=FALSE)))
これも手法としてはエラーがある行を抽出する例と同様で、「=FALSE」が加わっている点だけが異なっています。