FILTERの#N/Aを切り分ける確認順(説明図)
Tutorials

スプレッドシートのFILTER関数が#N/Aになる|条件と範囲の直し方

FILTERの#N/Aは、条件と範囲を先に確認する

スプレッドシートのFILTERで#N/Aが出たら、すぐにエラーを隠さず、条件と範囲を順に確認します。

見る順番は次の3つです。

  1. 取り出す範囲と条件範囲の行数、行の対応を確認する
  2. 条件に一致する行が実際にあるか確認する
  3. 正常な0件だと分かってからIFNAで表示を変える

GoogleのFILTER関数ヘルプでは、一致する値がない場合に#N/Aを返すと説明されています。

ただし、#N/Aという表示だけでは原因を決められません。まず式の指定ミスと正常な0件を切り分けましょう。

FILTERの#N/Aを切り分ける確認順(説明図)

この図は確認手順をまとめた説明図で、実際のアプリ画面を写したものではありません。

まずは5行の表で、正しい式を読む

ここで扱うのはGoogle スプレッドシートのFILTER関数です。メニューにあるフィルタ機能とは別です。

次の表は学習用の架空データです。1行目が見出しで、2〜6行目がデータです。

行 A列・品名 B列・区分 C列・個数
1 品名 区分 個数
2 ノート 文具 3
3 マグ 雑貨 1
4 ペン 文具 5
5 タオル 雑貨 2
6 封筒 文具 4

文具の行を取り出す式は =FILTER(A2:C6,B2:B6="文具") です。

A2:C6 は取り出す表です。B2:B6="文具" は、B列が文具である行だけを通す条件です。

表を目で照合すると、条件に合うのは2・4・6行目の3行です。

  • ノート、文具、3
  • ペン、文具、5
  • 封筒、文具、4

文具の3行を取り出す例(見出しは説明用)

図の結果側にある見出しは説明用です。FILTERは A2:C6 を指定しているため、見出し行を出力しません。

この図も架空データによる説明図で、実際のアプリ画面や実行結果のスクリーンショットではありません。

自分で試すなら、新しい空のシートのA1:C6へ、見出しと5行のデータを入力します。左端の「行」は説明用なので入力しません。

同じシートのE2へ式を入れる前に、出力先となるE2:G6に既存の値や式がないか確認してください。

条件に一致する行が、本当にあるか確認する

範囲がそろっていたら、条件を満たすデータがあるかを表で確かめます。

条件の文字と元データを照合する

=FILTER(A2:C6,B2:B6="食品") とすると、例の表には食品がないため0件です。

この場合、FILTERが#N/Aを返すのは仕様どおりです。B列に食品がないことを目視で確かめられます。

0件のつもりがないなら、条件に使う列、文字、余分な空白を確認します。列を取り違えていないかも見ましょう。

複数条件は1つずつ確認する

=FILTER(A2:C6,B2:B6="文具",C2:C6>=4) は、文具で個数が4以上という2条件です。

表で数えると該当するのはペンと封筒の2行です。各条件は同じ行に対して判定されます。

条件を追加して0件になったら、いったん1条件の式へ戻します。1つ目が動く状態を確認してから次を足します。

この例では >=4 が4以上、>4 が4より大きい指定です。封筒の個数4を含めたいなら >=4 を使います。

範囲サイズは、開始行と終了行をそろえる

誤りの例は =FILTER(A2:C6,B2:B5="文具") です。

取り出す範囲は2〜6行目の5行ですが、条件範囲は2〜5行目の4行です。判定する行数が合っていません。

この表なら =FILTER(A2:C6,B2:B6="文具") と直します。どちらも2行目から6行目を見ます。

5行対4行のずれを、5行対5行に直す例(説明図)

この説明図は行数の違いを示したもので、実際のアプリ画面ではありません。

A2:C6 と B1:B6 では、片方だけ見出しを含むため5行対6行です。

A2:C6 と B3:B7 はどちらも5行ですが、品目と判定条件の行がずれます。長さだけでなく対応も重要です。

このずれは必ず#N/Aになるとは限らず、条件次第で意図しない行を取り出すことがあります。

同じ表を判定する今回の例では、開始行2と終了行6をそろえます。行を増やすときは両方の終了行を伸ばします。

正常な0件と分かったら、IFNAで「該当なし」にする

食品が本当に0件だと確認できたら、次のように表示を変えられます。

=IFNA(FILTER(A2:C6,B2:B6="食品"),"該当なし")

GoogleのIFNA関数ヘルプによると、IFNAは値が#N/Aのときだけ代替値を返します。

空白を出したい場合は末尾を "" にできます。ただ、最初は理由が分かる「該当なし」のほうが確認しやすいでしょう。

重要なのは、IFNA自体は#N/Aの原因を判別しないことです。

範囲の指定ミスや元データ由来の#N/Aでも置き換えるため、原因を確認する前に使うと問題を見落とすおそれがあります。

関数 置き換える対象 使う場面
IFNA #N/Aだけ 正常な0件の表示を変える
IFERROR #N/Aを含む各種エラー 対象エラーを確認してから使う

IFERRORの公式ヘルプも、処理が目的に合うか確認するよう案内しています。

どちらも式の間違いを修正する関数ではありません。原因調査の最初からIFERRORで広く隠すのは避けましょう。

なお、FILTERの3番目以降の引数は追加条件です。0件時の表示を指定する場所ではありません。

FILTER(A2:C6,B2:B6="食品","該当なし") のような式にはせず、表示変更にはIFNAを外側に置きます。

直らない時と、修正後のチェック

まだ直らないときは、IFNAを外してFILTER単体に戻し、範囲、条件、元データの順に見直します。

「#N/A」以外のエラーが表示されたら、その内容を別に確認します。出力先の既存値をむやみに削除しないでください。

修正後は、品名だけでなく区分と個数も同じ行になっているか照合します。

この架空表での確認結果は次のとおりです。

  • 文具:ノート、ペン、封筒の3行
  • 食品:0行
  • 文具かつ個数4以上:ペン、封筒の2行

これらの件数は架空表を手で照合した結果です。実アプリでの動作を検証した数値ではありません。

記事の関数仕様は、Googleの公式ヘルプを2026年10月22日に確認した内容に基づきます。

まとめ

FILTERの#N/Aは、条件に一致する行がない場合と、範囲の指定ミスを分けて調べます。

まず開始行・終了行と行の対応をそろえ、次に条件を1つずつ元データと照合してください。

正常な0件だと確認できたときだけIFNAで「該当なし」にします。まず小さな表で3つの結果を確かめてみましょう。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です