GoogleスプレッドシートFILTER関数の使い方を徹底解説!もうデータ抽出に時間はかけない

Googleスプレッドシート

「この大量のデータの中から、特定の担当者の案件だけを抜き出したい…」
「ステータスが”完了”になっているものだけを、別シートに一覧で表示したい…」

そんな風に思いながら、まだ一つひとつ手作業でコピペしたり、複雑な数式と格闘したりしていませんか?

VLOOKUP関数も便利ですが、「複数条件だと式が複雑になる…」「検索範囲は一番左じゃないとダメ…」といった制約に、もどかしさを感じたことがあるかもしれません。

もし、あなたが一つでも頷いたなら、この記事はきっとお役に立てます。
今回ご紹介するFILTER関数を使えば、そんな面倒な作業はもう必要ありません。

まるでデータに”フィルター”をかけるように、指定した条件に合うデータを丸ごと、瞬時に、そしてリアルタイムに抽出できるようになります。

この記事を読み終える頃には、あなたはFILTER関数の基本から実務で役立つ応用テクニックまでマスターし、これまでデータ抽出にかけていた時間を、もっと創造的な仕事に使えるようになっているはずです。

さあ、一緒にFILTER関数を使いこなし、手作業から解放される第一歩を踏み出しましょう!

なぜFILTER関数?VLOOKUPやXLOOKUPとの違いを知ろう

まず、FILTER関数がどんな場面で活躍するのか、VLOOKUP関数やXLOOKUP関数との違いから見ていきましょう。
ここを理解すると、道具の使い分けが上手になりますよ。

  • VLOOKUP / XLOOKUP関数:特定のキー(社員番号など)に紐づく、対応する一つの情報(氏名など)を見つけ出すのが得意です。
    「会員番号105番の佐藤さんの電話番号を教えて」とピンポイントで尋ねるイメージですね。
  • FILTER関数:指定した条件に合う「データの一覧(リスト)」を丸ごと取り出すのが得意です。
    「”佐藤”という名字の人を全員リストアップして」とお願いするイメージです。

どちらが良い・悪いではなく、目的に応じて使い分けるのが「賢い」やり方です。

FILTER関数の基本的な使い方(まずはここから!)

構文は驚くほどシンプルです。これだけ覚えればOK!

=FILTER(範囲, 条件1, [条件2, ...])

言葉だけだと分かりにくいので、具体的な表で見ていきましょう。
以下のタスク管理表から、「担当者」が「田中」さんのタスクだけを抽出してみます。

担当者(A列)タスク名(B列)ステータス(C列)期限(D列)
田中A社向け提案書作成完了2025/10/10
佐藤B社定例会資料準備進行中2025/10/15
鈴木月次報告書作成未着手2025/10/20
田中C社向け見積書送付進行中2025/10/12
佐藤D社との打ち合わせ完了2025/10/5
田中社内経費精算完了2025/10/8

結果を表示したいセル(例えばF2セル)に、こう入力します。

=FILTER(A2:D7, A2:A7="田中")

これだけで、田中さんのタスク一覧が瞬時に完成します。
元の表を更新すれば、この結果も自動で変わるんです。便利ですよね!

【FILTER関数の基本】

【ワンポイント】データが増えても安心!「無限範囲」のコツ

実務ではデータがどんどん増えていきますよね。
そんな時、範囲をA2:Dのように行番号を省略して指定すると、その列の最後までを自動で範囲にしてくれます。
これでもう、データが増えるたびに数式を修正する必要はありません!

=FILTER(A2:D, A2:A="田中")
【範囲だけでなく、条件も無限範囲にしないと#N/Aエラーになる】

【応用編①】複数条件でデータを絞り込む(AND / OR)

実務では、もっと複雑な条件で絞り込みたいですよね。
大丈夫、FILTER関数ならそれも簡単です。

AND条件(「かつ」):アスタリスク(*)を使おう

「担当者が”田中”」かつ「ステータスが”完了”」のデータを抽出したい場合です。

=FILTER(A2:D, (A2:A="田中") * (C2:C="完了"))

ポイント: 各条件式は、必ずカッコ () で囲んでくださいね。

【AND条件で抽出】

OR条件(「または」):プラス(+)を使おう

「ステータスが”未着手”」または「ステータスが”進行中”」のデータを抽出したい場合です。

=FILTER(A2:D, (C2:C="未着手") + (C2:C="進行中"))
【OR条件で抽出】

【ワンポイント】空白行を除外して安全性を高めよう

実務で使うなら、「対象の列が空白ではない」(A2:A<>"")という条件もAND条件(*)で加えておくと、意図しない空白行が結果に表示されるのを防げて、より安全なシートになりますよ!

=FILTER(A2:D, (A2:A="田中") * (C2:C="完了") * (A2:A<>""))
=FILTER(A2:D, ((C2:C="未着手") + (C2:C="進行中")) * (A2:A<>""))

【応用編②】他の関数と組み合わせて、さらに便利に!

FILTER関数は、他の関数と組み合わせることで、まさに「鬼に金棒」です。
ここでは鉄板の組み合わせを2つご紹介します。

SORT関数:抽出結果をキレイに並べ替える

FILTERで抽出したデータを、期限の古い順に並べ替えたい…なんてことは日常茶飯事ですよね。
そんな時は、FILTER関数をまるごとSORT関数で囲ってしまいましょう。

=SORT(FILTER(A2:D, (A2:A="田中") * (A2:A<>"")), 4, TRUE)
  • 4:並べ替えたい列が、範囲の左から4番目(期限列)であることを指定します。
  • TRUE昇順(古い順)を指定します。(降順ならFALSE)
【SORT関数との組み合わせ】

UNIQUE関数:抽出結果の重複をなくす

「今、”進行中”のタスクを持っている担当者の一覧を、重複なくリストアップしたい」…そんな時にはUNIQUE関数の出番です。

=UNIQUE(FILTER(A2:A, (C2:C="進行中") * (A2:A<>"")))

これで、誰が今アクティブなタスクを持っているのか、が一目で把握できる担当者リストが簡単に作れます。

【UNIQUE関数との組み合わせ】

よくあるエラー「#N/A」のスマートな対処法

FILTER関数を使っていると、必ず出会うのが「#N/A」というエラー。
これは「条件に合うデータが1件も見つかりませんでした」という意味で、数式の間違いではありません。

でも、エラーがそのまま表示されていると、ちょっと不格好ですよね。
そんな時は、IFERROR関数で優しく包んであげましょう。

=IFERROR(FILTER(A2:D, (A2:A="存在しない担当者") * (A2:A<>"")), "該当データなし")

こうすれば、データがない場合は「該当データなし」のように、指定したメッセージを表示してくれます。
これだけで、シートの親切さが格段にアップしますよ。

【IFERROR関数で#N/Aエラーを回避】

【まとめ】FILTER関数で、あなたの業務はもっと楽になる!

お疲れ様でした!
今回は、スプレッドシートのFILTER関数について、基本から応用までを一緒に見てきました。

  • POINT1: FILTER関数は「条件に合うリスト」を抽出するのが得意
  • POINT2: データが増えるなら「無限範囲」 (例:A2:A) を使うのが賢い
  • POINT3: AND条件は *、OR条件は + で複数条件もラクラク
  • POINT4: SORTやUNIQUEと組み合わせて、もっと便利に
  • POINT5: #N/AエラーはIFERRORでスマートに対処しよう

FILTER関数一つをマスターするだけで、これまで手作業で行っていた面倒なリスト作成やデータ抽出の作業が劇的に効率化されます。
ぜひ、あなたの毎日の業務にも取り入れて、楽になった時間で新しいことにチャレンジしてみてください!