
ExcelやGoogleスプレッドシートでFILTER関数をうと、「#VALUE!
エラー」や「#N/A
エラー」が発生することがあります。 それぞれのエラーごとの原因と対応方法を解説しているので、ぜひ参考にしてみてください。
「FILTERの範囲サイズが一致しません」の場合
条件に「空の場合の値」を指定している

GoogleスプレッドシートのFILTER関数は、Excelとは異なり、3つ目以降の引数もすべて追加の「条件」として扱います。そのため、3つ目の引数に""
(空白)のような文字列を指定すると、「条件として認識できない」ため、エラーが発生します。

Googleスプレッドシートで「空の場合の値」を指定したい場合、次のようにIFERROR関数を組み合わせます。
例:=IFERROR(FILTER(A5:B8,B5:B8="りんご"))
IFERROR関数の構成要素:(値, [エラー値])
それぞれの範囲のサイズが異なっている

FILTER関数を使う際、「抽出する範囲」と「条件」の範囲のサイズが同じである必要があります。
上図の場合、「抽出する範囲」が5行であるのに対し、条件範囲が6行で、サイズが異なるためエラーとなります。
正しくは、次の数式のように、すべての範囲を同じサイズで指定します。
例:=FILTER(A5:B8,B5:B8="りんご")
「FILTERの評価で、一致するものは見つかりません」の場合

このエラーは、FILTER関数に指定した条件に一致するデータが、指定した「条件範囲」内に一つも見つからなかった場合に表示されます。
原因:
- 条件の入力ミスや表記のズレ: 余分なスペースが入っていたり、大文字と小文字や表記のズレがある場合。
- 文字列条件での引用符(
""
)の付け忘れ: 文字列を条件にする場合、"ばなな"
のように二重引用符で囲む必要があります。 - 単純に該当データがない: そもそも、その条件に合うデータが元の範囲に存在しない場合。
エラーを非表示にする方法
条件と一致するデータがない場合にこのエラーを回避するには、次のようにIFERROR関数を組み合わせます。
例:=IFERROR(FILTER(A5:B8,B5:B8="ばなな"))
IFERROR関数の構成要素:(値, [エラー値])
「FILTERの範囲は単一行か単一列にしてください」の場合

このエラーは、FILTER関数の条件として、複数列を指定してしまった場合に表示されます。
図のB5:C8
のように複数列を指定したい場合、次のようにそれぞれの列の条件を分けて記述します。
AND条件の場合
例:=FILTER(A5:C8,B5:B8="りんご",C5:C8="りんご")
OR条件の場合
もし、どちらか一方の条件を満たせばよいOR条件にしたい場合は、+
(プラス)記号を使って条件を結合します。
例:=FILTER(A5:C8, (B5:B8="りんご") + (C5:C8="りんご"))
「データを上書きするため、配列結果は展開されませんでした」の場合

このエラーは、FILTER関数で抽出した結果が、その下や隣のセルに表示されようとしたとき、すでに別のデータが入力されている場合に表示されます。
このような場合、結果が展開される範囲から既存のデータを削除するか、データの展開先に新しい行や列を挿入し、結果を表示するためのスペースを確保します。
「#NAME?」の場合

このエラーは、関数名が正しく入力できていない場合に表示されます。
FILTER関数のスペルに誤字や脱字がないかチェックしてみてください。もしスペルが正しい場合、お使いのExcelがFILTER関数に対応していない可能性があります。
「数式の解析エラー」の場合

このエラーは、数式の構文に誤りがあるか、数式に記述ミスがある場合に表示されます。
カンマやイコール、括弧などの記号が半角で入力できているか、不足がないかをチェックしてみてください。