スプレッドシートにはデータを抽出できる「フィルター機能」があり、基本的なデータの絞り込みであれば、この機能を使用するだけで十分便利でしょう。

しかし、フィルター機能を使いこなすうち「もっと細かい設定で絞り込みができたらいいのに」と思うことがあるかもしれません。

そこで、本記事ではFILTER(フィルター)関数を使用し、AND検索やOR検索など高度にデータを抽出する方法を解説します。

効率的にデータを検索したい、部分一致で情報を見つけたい方、ぜひお確かめください。

FILTER関数の使い方

FILTER関数の使い方

スプレッドシートのデータメニューにある「フィルター」機能は、とても便利な機能です。しかし、複雑な表や大量のデータを扱っていると、もっとかんたんにデータを絞り込みたいと思うことでしょう。

スプレッドシートには指定の条件でデータを抽出できる「FILTER関数」という関数があります。それではFILTER関数について詳しく確認していきます。

FILTER関数とは

FILTER関数は次のように範囲と条件を指定して、データを絞り込む機能。たとえば作成した表データのなかで、「A棟の店舗で取り扱う商品のみ抜粋したい」というときは以下のイメージで範囲と条件を指定します。

  • 範囲:A1:B15
  • 条件:A1:A15=”A棟”

FILTER関数の記述例

FILTER関数における記述式の基本的は次のとおりです。

※文字列を指定するときは記述例「”A棟”」のように、必ず半角の””(ダブルクォーテーション)で文字列を囲んでください。

  • =FILTER(範囲, 条件1, [条件2, …])
FILTER関数の記述例

FILTER関数で絞り込む

FILTER関数で絞り込む

ここでは実例を交え、FILTER関数でデータを絞り込む操作をお伝えします。実際の記述式とデータ抽出後の画面周りを公開しますので、よろしければぜひ練習として同じ表を作成してみてください。

FILTER関数への理解を深めるためにも、作成した表・関数を試しながらFILTER関数の動作を確認できるとよいでしょう。

条件1つで絞り込む

FILTER関数を使用して、「1つの条件で絞り込む」場合の記述式と、具体例を紹介します。まずは以下の記述式を参考にしてください。

※文字列を指定するときは記述例のように、必ず半角の””(ダブルクォーテーション)で文字列を囲んでください。

  • =FILTER(G1:I14,G1:G14=”A棟”)

ここでは参照範囲を「G1:I14」として、「G1:G14」の範囲から「A棟」を抽出する条件を指定しています。上記記述の結果、以下の画像では「A棟」を抽出した結果が呼び出されています。

条件1つで絞り込む

複数条件で絞り込む

FILTER関数を使用して、「複数条件で絞り込む」操作や具体例を解説していきます。ここではAND検索・OR検索・NOT検索・SEARCHの使い方を取り挙げます。

AND検索

AND検索とは「いずれの条件にも合致する」ように検索するという意味です。
今回は「A棟」の取扱商品から「替え芯」のデータのみ抽出してみましょう。

記述式と入力結果の画像は、次の内容を確認してください。※文字列を指定するときは記述例のように、必ず半角の””(ダブルクォーテーション)で文字列を囲んでください。

  • =FILTER(G1:I14,G1:G14=”A棟”,H1:H14=”替え芯”)
AND検索

OR検索

OR検索とは「どちらかの条件に合致する」設定で検索するということ。今回は「A棟である」または「シャーペンである」のどちらかに該当する条件で、データを抽出してみましょう。

なお、Excelなどで使用する関数と異なり「+(半角のプラス)」マークを使用して、OR検索の条件をつなぐ記述式になります。記述式と入力結果の画像は、次の内容を確認してください。

※文字列を指定するときは記述例のように、必ず半角の””(ダブルクォーテーション)で文字列を囲んでください。

  • =FILTER(G1:I14,(G1:G14=”A棟”)+(H1:H14=”シャーペン”))
OR検索

NOT検索

NOT検索とは「~ではない」条件を検索すること。今回は「A棟ではない」条件でデータを抽出してみます。

記述には否定の「NOT」の文字が入りますが、記述式と入力結果の画像は、次の内容を確認してください。

※文字列を指定するときは記述例のように、必ず半角の””(ダブルクォーテーション)で文字列を囲んでください。

  • =FILTER(G1:I14,NOT(G1:G14=”A棟”))

SEARCH

SEARCHは「部分的に一致する文字列」を検索する機能。今回は「ペン」を含む条件でデータを抽出してみます。

記述には検索の「SEARCH」の文字が入りますが、記述式と入力結果の画像は、次の内容を確認してください。

※文字列を指定するときは記述例のように、必ず半角の””(ダブルクォーテーション)で文字列を囲んでください。

  • =FILTER(G1:I14,SEARCH(“ペン”,H1:H14))
SEARCH

FILTER関数が使えないときは

FILTER関数が使えないときは

エラーメッセージが表示されるなどFILTER関数が実行できないときは、こちらの内容を確かめてみてください。

エラーでFILTER関数が使えない「FILTERの範囲サイズが一致しません」

FILTER関数を使おうとしてエラーが発生するとき、次のメッセージが表示されることがあります。

「FILTERの範囲サイズが一致しません。行数を○○、列数を1にしてください。実際の行数は○○、列数は×です。」

このエラーは以下のように、指定した範囲が「正しい表の範囲」をオーバーしているときに表示されます。表の選択範囲が正しいか確認してください。

  • 正⇒A1:A15
  • 誤⇒A1:A16

エラーでFILTER関数が使えない「FILTERの範囲は単一行か単一列にしてください」

FILTER関数を使おうとしてエラーが発生するとき、次のメッセージが表示されることがあります。「FILTERの範囲は単一行か単一列にしてください。」

このエラーは以下のように、条件で指定する「列・行を複数選択している場合」に表示されます。列・行の選択範囲が正しいかを確認してください。

  • 正⇒A1:A15
  • 誤⇒A1:B15

エラーでFILTER関数が使えない「その他のエラー」

FILTER関数を使おうとしてエラーが発生するとき、以下のような複数のメッセージが表示されることがあります。

  • 配列結果は〇〇(セル名)のデータを上書きするため、展開されませんでした。
  • FILTERの計算に一致するものはありません。

FILTER関数を入力するとデータの抽出結果が表示されますが、この「データの抽出結果」の範囲をコピー&ペーストなどで移動すると当該エラーが生じます。このエラーを回避するには、以下いずれかの方法をお試しください。

  • 最初に範囲を指定するとき、列や行を完全固定する※数式で行や列を固定したいときは、行・列の前に「$」マークを付ける(セルの指定例:$A$1、$A1、A$1等)
  • データの抽出範囲をドラッグし、範囲内のデータを削除して、はじめからFILTER関数を入力し直す

当サイトではスプレッドシートやそのほかのアプリについて、お役立ち記事を公開しています。あわせてこちらもお確かめください!

Googleスプレッドシートで特定のセルやシートを編集させないように保護する方法 – OneChat Blog

スプレッドシートの条件付き書式で要素に色付けする方法 – OneChat Blog

万能ノートアプリ「Notion(ノーション)」の使い方 入門ガイド – OneChat Blog