Excel関数 逆引き集 | 空白を無視して検索 → FILTER

Excel VBA Excel
スポンサーリンク

概要

「検索したい列に空白が混ざっていて、うまく抽出できない」
「空白行を除外して、条件に合うデータだけを取りたい」
「空白セルは無視して検索したい」

こういうときに最強なのが FILTER 関数です。

FILTER は
“条件に合う行だけを抽出する関数”
ですが、条件式を工夫することで
空白セルを無視して検索する
という処理がとても簡単にできます。

ここでは、初心者でもそのまま使えるテンプレート形式で
「空白を無視して検索する FILTER の使い方」を丁寧に解説します。


FILTER の基本

書式

=FILTER(元データ範囲, 条件, [該当なしのとき])

元データ範囲
抽出したい表(行・列を含む範囲)

条件
TRUE/FALSE の判定式
例:A2:A100<>””(空白でない行だけ TRUE)

該当なしのとき(省略可)
条件に合う行がない場合に表示する文字列


空白を無視して検索する基本パターン

例:A列の空白を除外して、B列の値を抽出

A列:商品コード
B列:商品名

A列に空白が混ざっているとします。

空白を無視して「商品名一覧」を作りたい場合:

=FILTER(B2:B100, A2:A100<>"")

意味:

  • A2:A100<>”” → 空白でない行だけ TRUE
  • TRUE の行の B列だけ抽出

これで「空白を無視した検索」ができます。


空白を無視して“条件検索”する

例:担当者が F2 の行だけ抽出(ただし空白行は無視)

A列:日付
B列:担当者
C列:商品
D列:金額

担当者列に空白が混ざっている場合、
空白を除外しつつ「担当者=F2」の行だけ抽出するには:

=FILTER(A2:D100, (B2:B100=F2) * (B2:B100<>""))

ポイント:

  • (B2:B100=F2) → 担当者が一致する行
  • (B2:B100<>"") → 空白でない行
  • * → AND 条件(両方 TRUE の行だけ抽出)

空白を無視して“部分一致検索”する

例:商品名に F2 の文字が含まれる行だけ抽出(空白は除外)

=FILTER(A2:D100, (ISNUMBER(SEARCH(F2, C2:C100))) * (C2:C100<>""))

意味:

  • SEARCH(F2, C2:C100) → 部分一致
  • ISNUMBER(...) → 見つかった行だけ TRUE
  • C2:C100<>"" → 空白行を除外

空白を無視して“複数条件検索”する

例:担当者=F2 かつ 金額が 10,000 以上(空白行除外)

=FILTER(A2:D100,
        (B2:B100=F2) * (D2:D100>=10000) * (B2:B100<>""))

空白を除外する条件 (B2:B100<>"") を追加するだけでOKです。


空白を無視して“重複なし一覧”を作る(UNIQUE と併用)

例:商品コードの空白を除外して重複なし一覧を作る

=UNIQUE(FILTER(A2:A100, A2:A100<>""))

空白を除外してから UNIQUE に渡すのがポイントです。


よくあるつまずきと対策

空白セルが「スペース入り空白」の場合は除外できない

見た目は空白でも、実際には " "(スペース)が入っている場合があります。

その場合は TRIM を使います。

=FILTER(A2:D100, TRIM(B2:B100)<>"")

条件範囲と元データ範囲の行数は必ず揃える

NG:

  • 元データ:A2:D100
  • 条件:B3:B100

OK:

  • 元データ:A2:D100
  • 条件:B2:B100

例題

問題1

A2:A100 に商品コード、B2:B100 に商品名があります。
A列の空白を無視して、商品名だけを C2 に一覧表示する式を書いてください。

=FILTER(B2:B100, A2:A100<>"")

問題2

A2:D100 に売上表があります。
担当者が F2 の行だけを抽出し、空白行は無視して G2 に表示する式を書いてください。

=FILTER(A2:D100, (B2:B100=F2) * (B2:B100<>""))

問題3

C列の商品名に F2 の文字が含まれる行だけを抽出し、空白行は無視して H2 に表示する式を書いてください。

=FILTER(A2:D100, (ISNUMBER(SEARCH(F2, C2:C100))) * (C2:C100<>""))

問題4

A列の商品コードの空白を除外し、重複なし一覧を D2 に表示する式を書いてください。

=UNIQUE(FILTER(A2:A100, A2:A100<>""))

問題5

A2:D100 の中で、担当者が F2 かつ金額が 10,000 以上の行だけを抽出し、空白行を無視して E2 に表示する式を書いてください。

=FILTER(A2:D100,
        (B2:B100=F2) * (D2:D100>=10000) * (B2:B100<>""))

まとめ

空白を無視して検索する FILTER の基本は、
「空白でない」条件を追加するだけ です。

覚えるべき型はこれだけ。

空白を無視する基本形

=FILTER(範囲, 条件 * (列<>"" ))

空白を除外して重複なし

=UNIQUE(FILTER(範囲, 範囲<>""))

この型を使いこなせば、
空白混じりのデータでも正確に検索・抽出できるようになり、
実務のデータ処理が一気にスムーズになります。

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