FILTER関数で空白行を除外する方法|空文字と0を区別して抽出(<>“”)

FILTER関数で空白行を除外する方法|空文字と0を区別して抽出(“”)

FILTERで商品名が空白の行を除外するには、条件に「商品名の範囲<>空文字」を指定します。大切なのは、どの列が空白なら除外するかを決めることです。数量0の行まで消さないよう、判定する列と条件を分けて考えます。

この記事の基本の式
数式=FILTER(A9:C14,A9:A14<>"","該当なし")
練習用Excelファイル(無料ダウンロード)
対応:Microsoft 365・Excel 2021・Excel 2024開くシートは「まず試す」。最初はこの3ステップです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
保護ビューで入力できない場合は、入手元を確認して「編集を有効にする」を選びます。別の練習を始める前に、ファイルのコピーを保存しておくと初期状態に戻せます。
目次

商品名が空白の行を除外する基本の式

サンプルではA9:C14が元データで、A列が商品名です。E9に次の式を入力しています。

E9に入力:商品名が空白の行を除外して抽出
数式=FILTER(A9:C14,A9:A14<>"","該当なし")
ひとことで商品名が入っている行だけを、右に抽出する
A9:C14
抽出する範囲(3列)です
A9:A14<>""
商品名が空白ではない行を、TRUEにします
"該当なし"
1行もないときの表示です
データの流れ
① 元データ(A9:C14)。A10は空セル、A12は式 =”” の空文字
9行目りんご | 12 | 入荷10行目(空欄) | (空欄) | (空欄)11行目みかん | 0 | 在庫なし12行目(空文字 “”) | (空欄) | (空欄)13行目ぶどう | 8 | 入荷14行目(空欄) | 5 | 商品名未入力
▼
② 商品名(A列)が空ではない行だけが TRUE(黄色)。数量の0は関係しません
9行目りんご | 12 | 入荷10行目(空欄) | (空欄) | (空欄)11行目みかん | 0 | 在庫なし12行目(空文字 “”) | (空欄) | (空欄)13行目ぶどう | 8 | 入荷14行目(空欄) | 5 | 商品名未入力
▼
③ TRUEの行が、A〜C列まとめて取り出される。数量0のみかんも残る結果
りんご | 12 | 入荷みかん | 0 | 在庫なしぶどう | 8 | 入荷
補足数量が0の行は残り、空のセルと数式の空文字は除かれます。
  • A9:C14:取り出す表全体。
  • A9:A14<>””:商品名が空文字ではない行を選ぶ条件。
  • 「該当なし」:残る行が1件もない場合の表示。

初期状態では、りんご・みかん・ぶどうの3行が残ります。数量が0のみかんは、商品名が入力されているので残ります。A14に「もも」を入れると、その行も条件を満たし、結果の4行目に加わります。

商品名のない行を除いて抽出する(FILTER)式 =FILTER(A9:C14,A9:A14<>"","該当なし") の解説図。E9に入力する
E9に =FILTER(A9:C14,A9:A14<>"","該当なし") を入力。商品名がある りんご・みかん・ぶどう の3行だけ残る

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

完全な空白・数式の空文字・スペースの違い

セルの状態基本式での扱いサンプル
何も入力していない除外するA10
数式が空文字列を返す除外するA12の式は =””
スペースだけ入っている除外されない文字がある扱いになる
数量が数値の0商品名があれば残すみかんの行

「商品名がない行」と「全列が空の行」は違います。サンプルの14行目は数量と備考が入っていますが、商品名が空なので除外されます。業務で必要な行まで消さないように、基準とする列を先に決めてください。

複数の必須項目がそろった行だけ残す

商品名と備考の両方が入っていることを条件にするなら、条件どうしを掛け算します。これはAND条件です。

J9に入力:2つの項目がそろった行だけ残す
数式=FILTER(A9:C14,(A9:A14<>"")*(C9:C14<>""),"該当なし")
ひとことで商品名と備考の両方が入っている行だけを抽出する
A9:A14<>""
商品名が入っている行です
C9:C14<>""
備考が入っている行です
データの流れ
① 元データ(A9:C14)
9行目りんご | 12 | 入荷10行目(空欄) | (空欄) | (空欄)11行目みかん | 0 | 在庫なし12行目(空文字 “”) | (空欄) | (空欄)13行目ぶどう | 8 | 入荷14行目(空欄) | 5 | 商品名未入力
▼
② 商品名の条件 × 備考の条件。両方 TRUE(=1)の行だけが残る
9行目TRUE × TRUE → 110行目FALSE × FALSE → 011行目TRUE × TRUE → 112行目FALSE × FALSE → 013行目TRUE × TRUE → 114行目FALSE × TRUE → 0
▼
③ 1の行だけが取り出される(14行目は商品名が空なので消える)結果
りんご | 12 | 入荷みかん | 0 | 在庫なしぶどう | 8 | 入荷
補足2つの条件を掛け算(*)でつなぐと、AND条件になります。

どちらか一方が入っていれば残す場合は、足し算して1つ以上の条件が成立するかを調べます。

どちらか一方が入っている行を残す(OR条件)
数式=FILTER(A9:C14,((A9:A14<>"")+(C9:C14<>""))>0,"該当なし")
ひとことで商品名か備考の、どちらかが入っている行を抽出する
A9:A14<>""
商品名が入っている行です
C9:C14<>""
備考が入っている行です
データの流れ
① 元データ(A9:C14)
9行目りんご | 12 | 入荷10行目(空欄) | (空欄) | (空欄)11行目みかん | 0 | 在庫なし12行目(空文字 “”) | (空欄) | (空欄)13行目ぶどう | 8 | 入荷14行目(空欄) | 5 | 商品名未入力
▼
② 商品名の条件 + 備考の条件。合計が0より大きい行(1以上)が残る
9行目TRUE + TRUE → 210行目FALSE + FALSE → 011行目TRUE + TRUE → 212行目FALSE + FALSE → 013行目TRUE + TRUE → 214行目FALSE + TRUE → 1
▼
③ 合計が1以上の行が取り出される。14行目は備考があるので残る結果
りんご | 12 | 入荷みかん | 0 | 在庫なしぶどう | 8 | 入荷0(空欄が0に見えます) | 5 | 商品名未入力
補足足し算(+)でつなぐと、OR条件になります。0より大きい行が残ります。

後者では、商品名が空でも備考がある14行目が残ります。ただし抽出結果の空セルが0として見える場合があります。行を除外する条件と、残った行の空セルをどう表示するかは別の問題です。条件の考え方はFILTERのAND・OR条件でも解説しています。

スペースだけのセルも除外したい場合

半角スペースや全角スペースが混じっているなら、判定用の列を1列用意すると原因を見つけやすくなります。サンプルをコピーし、空いているI9に次の式を入力してI14までコピーします。

補助列に入力:スペースだけのセルも空白と見なす
数式=LEN(TRIM(SUBSTITUTE(A9," "," ")))>0
ひとことで全角スペースを半角に直し、TRIMで空白を除いて、文字が残るか調べる
SUBSTITUTE(A9," "," ")
全角スペースを、半角スペースに置き換えます
データの流れ
① A列の商品名。A10に、全角スペースだけを入力した例
A9りんごA10 (全角スペース)A11みかんA12(空文字 “”)A13ぶどうA14(空欄)
▼
② 全角スペースを半角に置き換え、TRIMで空白を取り除く(スペースだけなら空になる)
A9りんごA10(空)A11みかんA12(空)A13ぶどうA14(空)
▼
③ 文字が1つ以上残るか(LEN>0)。スペースだけの行は FALSE結果
I9TRUEI10FALSEI11TRUEI12FALSEI13TRUEI14FALSE
補足文字が残る行は TRUE、スペースだけの行は FALSE になります。

全角スペースを半角に置き換え、TRIMで前後の半角スペースなどを整えた後、文字が残るか調べます。結果はTRUEまたはFALSEです。改行やタブ、Webからコピーした別の空白文字まで、すべて取り除く式ではありません。

E9の式を次の形に置き換えると、判定用の列を使えます。

FILTERの条件に、補助列を指定する
数式=FILTER(A9:C14,I9:I14,"該当なし")
ひとことで補助列がTRUEの行だけを抽出する
I9:I14
補助列(TRUE/FALSE)の範囲です
データの流れ
① 補助列 I9:I14(TRUE/FALSE)
9行目りんご | 12 | 入荷 → TRUE10行目(空欄) | (空欄) | (空欄) → FALSE11行目みかん | 0 | 在庫なし → TRUE12行目(空文字 “”) | (空欄) | (空欄) → FALSE13行目ぶどう | 8 | 入荷 → TRUE14行目(空欄) | 5 | 商品名未入力 → FALSE
▼
② 補助列が TRUE の行が、A〜C列まとめて取り出される結果
りんご | 12 | 入荷みかん | 0 | 在庫なしぶどう | 8 | 入荷
補足スペースだけの行を除いて、抽出できます。

この方法は抽出条件の確認用です。抽出された商品名そのもののスペースは元のまま残ります。商品名も整えたい場合は、空白を削除する方法で元データの整形を検討してください。

【実機で検証】6種類の「空に見えるセル」で式を比べた結果

文字・本当の空・数式の “”・半角スペース・全角スペース・数値の 0 の 6 行で、どの式で何が残るかを Excel の実機で試しました。

エクセルのFILTERで空白を除外する4つの式で残る行の違いを比べた画面
エクセルのFILTERで空白を除外する4つの式で残る行の違いを比べた画面
セルの中身<>””LEN(TRIM())>0<>0NOT(ISBLANK())
文字残る残る残る残る
本当に空除外除外除外除外
数式の “”除外除外残る残る
半角スペース残る除外残る残る
全角スペース残る除外残る残る
数値の 0残る残る除外残る

スペースも含めて空として除外するなら LEN(TRIM()) です。試した Excel では、TRIM だけで全角スペースも消えました。ただし、UNICHAR(160) で入れた特殊な空白は TRIM で消えませんでした。スペースに見えるのに除外できないときは、この空白を疑います。

抽出結果が広がらない・行が足りないとき

症状確認すること
#SPILL!/#スピル!E9から右と下の展開先に、文字や数式、結合セルがないか。
#VALUE!抽出範囲と条件範囲の行数が同じか。
追加した行が出ない元データの終端と条件範囲の終端を、同じ最終行まで広げたか。
空白の行が残るスペースが入っていないか、別の列で判定していないか。
必要な数量0の行が消える数量>0など、本来の目的と違う条件を指定していないか。

Excel 2019・2016で同じことをするには?

FILTER関数は使えないため、見出しを含む表に「データ」→「フィルター」を設定し、商品名の候補から「空白セル」を外します。この方法は表の行を非表示にする操作です。別の場所へ動的な一覧を作るFILTER関数とは更新の仕方が異なります。

サンプルで結果を確かめる

本文のセル位置はダウンロードファイルにそろえています。まず黄色いセルを変更して動きを確認し、次に自分の表に合う範囲へ置き換えてください。

練習用Excelファイル(無料ダウンロード)
「Excel 2019・2016で同じことをするには?」の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

関連する解説・参考資料

基本から確認したいときは、エクセルの空白行を削除する方法もあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次