FILTERで「範囲サイズが一致しません」と表示されたときは、抽出対象と条件範囲の行数・列方向を合わせます。FILTER(A2:C100,B2:B100="完了") のように、抽出対象が99行なら条件も99行が必要です。

FILTERの抽出範囲と条件範囲を比べる

  • 抽出対象がA2:C100なのに条件をB:Bのように列全体で指定していないか確認します。
  • 対象範囲と条件範囲の開始行・終了行が同じか調べます。
  • 行を絞る式に列方向の条件を混ぜていないか確認します。
  • 該当データがない場合の#N/Aと、サイズ不一致のエラーを区別します。

列と行の範囲をそろえる

  1. 数式のコピーを別セルに置き、範囲を小さくします。
  2. 例として =FILTER(A2:C10,B2:B10="完了") を作り、対象9行と条件9行をそろえます。
  3. 複数の条件を使う場合、追加の各条件も同じ長さの範囲にします。
  4. 条件列に空欄がある場合は、空欄を抽出対象にするかを明確にします。
  5. 式が正しく動いたら開始行・終了行を本来の範囲へ戻します。

条件式を足す前に単一条件で検証する

  • 抽出結果を直接上書きしてしまうと、元データと結果の区別がつかなくなります。
  • FILTERは条件に一致する行がなければ#N/Aを返すため、データがない状態を故障と混同しないでください。
  • 条件用の列が別のシートにある場合、行の対応がずれていないかも確認します。

FILTERの結果件数を確認する

  • 条件に一致する行を元表から手で3行選び、結果に含まれるか確認します。
  • 一致しない行が結果に混入していないかを確かめます。

行の抽出と列の抽出を混ぜない

=FILTER(A2:C10,B2:B10="完了") はA2:C10の 9行 から、B列が「完了」の行を選ぶ例です。 B2:B とだけ指定すると条件側の行数が一致せず、サイズ不一致になります。公式ヘルプの条件は、抽出範囲の行または列の長さに一致させる必要があります。

複数条件では =FILTER(A2:C10,B2:B10="完了",C2:C10>0) のように、追加条件も同じ9行で作ります。いっぽう「左から2列目だけ抽出する」などの列方向の処理では、条件の向きが違います。行条件と列条件を1回のFILTERに混在させることはできません。 この場合は別の関数を組み合わせるか、抽出を2段階に分けます。

エラーごとに処置が違う

サイズ不一致ならまず範囲の開始行・終了行のズレを直します。条件に合う行が0件で #N/A が出る場合は範囲ではなく条件の結果を調べます。エラーを無条件に IFERROR(...,"") で隠すと、範囲設定ミスまで「該当なし」に見えるため、初期検査では原エラーの種類を確認してください。動作確認では一致1件、非一致1件、該当0件の3条件を用意すると切り分けやすくなります。

参考資料

おすすめの記事