概要
「検索したい列に空白が混ざっていて、うまく抽出できない」
「空白行を除外して、条件に合うデータだけを取りたい」
「空白セルは無視して検索したい」
こういうときに最強なのが 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(...)→ 見つかった行だけ TRUEC2: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(範囲, 範囲<>""))
この型を使いこなせば、
空白混じりのデータでも正確に検索・抽出できるようになり、
実務のデータ処理が一気にスムーズになります。
