Excelオートフィルターで複数条件を一発指定|部分一致・前方一致の落とし穴も解説

Excelのオートフィルターで、一覧の上と下に離れた値(たとえば「A」と「Z」)だけを表示したいときは、2つまでなら「テキスト フィルター」のOR条件、3つ以上なら「詳細設定」かFILTER関数を使うのが最短です。

ただし、検索ボックスや詳細設定には、エラーも出ずに余計な行まで抽出してしまう落とし穴があります。この記事では5つの方法と、その落とし穴の避け方をまとめて解説します。

 

状況別:どの方法を使えばいい?

まず、自分の状況に合う方法を下の表で選んでください。

あなたの状況おすすめの方法ポイント
一覧が長く、スクロールで探すのが面倒方法1:検索ボックス値を検索して1つずつ追加できる
抽出したい値がちょうど2つ方法2:テキスト フィルターのOR条件1回のダイアログ操作で完了
3つ以上の値をまとめて抽出したい方法3:詳細設定(フィルター オプション)全バージョンで使える。条件は表に書いておく
同じ絞り込みを何度も切り替える方法4:テーブル+スライサーボタンをCtrl+クリックで複数選択
元の表は残し、別の場所に結果を自動表示したい方法5:FILTER関数Microsoft 365/Excel 2021以降で使用可
Excel 2019以前で、関数で自動判定したい補足:補助列+COUNTIF補助列のTRUEだけをフィルターで表示

 

前提:オートフィルターの基本操作

一覧が短ければ、標準のチェック操作がいちばん早い場合もあります。

  1. 表の中の任意のセルを選択します。
  2. 「データ」タブの「フィルター」をクリックします。
  3. 見出しに表示された▼をクリックします。
  4. 「(すべて選択)」のチェックを外します。
  5. 「A」と「Z」にチェックを入れます。
  6. 「OK」をクリックします。

この方法は、一覧が長いとスクロールに時間がかかります。以下の方法で効率化しましょう。
AとZを選択

 

方法1:検索ボックスで1つずつ追加する

一覧が長いときは、▼のメニュー内にある検索ボックスを使うと、スクロールせずに目的の値へたどり着けます。ポイントは、2つ目以降の値を「追加」として指定することです。

手順

  1. 見出しの▼をクリックします。
  2. 検索ボックスに「A」と入力します。
  3. 表示された候補を確認し、不要な値のチェックを外します。
  4. 「OK」をクリックします。
  5. もう一度、同じ見出しの▼をクリックします。
  6. 検索ボックスに「Z」と入力します。
  7. 「現在の選択範囲をフィルターに追加する」にチェックを入れます。
  8. 候補の中の不要な値のチェックを外し、「OK」をクリックします。
「Z」を検索し「現在の選択範囲をフィルターに追加する」にチェックした状態

「Z」を検索し「現在の選択範囲をフィルターに追加する」にチェックした状態

「現在の選択範囲をフィルターに追加する」にチェックを入れずにOKを押すと、先に指定した「A」の抽出が解除され、「Z」だけの表示に置き換わります。値を足すたびに、このチェックを入れてください。

注意:検索は「その文字を含む値」すべてがヒットする

検索ボックスは、入力した文字を含む値をまとめて候補に出します。たとえば「A」で検索すると、「A」だけでなく「Apple」や「Zebra」のような値も候補に入る場合があります。

そのままOKを押すと、エラーも警告もなく、意図しない行まで表示されます。手順3と手順8で、候補一覧を必ず目で確認してから確定してください。

 

 

方法2:テキスト フィルターのOR条件で2つを一発指定

抽出したい値が2つなら、この方法が最短です。「AまたはZ」という条件を1つのダイアログで指定できます。

手順

  1. 見出しの▼をクリックします。
  2. 「テキスト フィルター」をクリックします。
  3. 「指定の値に等しい…」をクリックします。
  4. 「オートフィルター オプション」ダイアログの上段で「と等しい」を選び、右の欄に「A」と入力します。
  5. 中央の「OR」を選択します。
  6. 下段で「と等しい」を選び、右の欄に「Z」と入力します。
  7. 「OK」をクリックします。

「と等しい」は完全一致の条件なので、方法1と違って「Apple」などは混ざりません。数値の列では「テキスト フィルター」の代わりに「数値フィルター」が表示されます。

テキスト フィルターのOR条件で2つを一発指定

このダイアログで指定できる条件は2つまでです。3つ以上の値を指定したい場合は、次の方法3以降を使ってください。

 

 

方法3:詳細設定(フィルター オプション)で3つ以上もまとめて抽出

「詳細設定」は、シート上に書いた条件表を使って抽出する機能です。条件を縦に並べるだけで「または(OR)」の条件になるため、値がいくつあっても一度に抽出できます。

準備:条件表を作る

例として、A1:C101に「商品コード」「商品名」「数量」の表があるとします。表と1列以上空けた場所(ここではE列)に、次のように条件表を作ります。

セル入力する内容意味
E1商品コード元の表の見出しと同じ文字
E2=”=A”「A」と完全に一致
E3=”=Z”「Z」と完全に一致

E1の見出しは、元の表の見出しと一字一句同じにしてください。スペースの有無が違うだけでも、正しく抽出されません。

手順

  1. 元の表の中の任意のセルを選択します。
  2. 「データ」タブの「並べ替えとフィルター」グループにある「詳細設定」をクリックします。
  3. 「フィルター オプションの設定」ダイアログで「選択範囲内」を選びます。
  4. 「リスト範囲」が「$A$1:$C$101」になっていることを確認します。
  5. 「検索条件範囲」に「$E$1:$E$3」を指定します。
  6. 「OK」をクリックします。

抽出結果を元の表とは別の場所に書き出したい場合は、手順3で「指定した範囲」を選び、「抽出範囲」に出力先の左上セルを指定します。

注意:「A」とだけ入力すると「Aで始まる値」がすべて抽出される

詳細設定では、条件に「A」とそのまま入力すると、「A」で始まる値すべて(Apple、Asiaなど)が抽出されます。エラーは出ないため、気付かずに集計してしまう危険があります。

完全一致で抽出したいときは、上の表のように「=”=A”」の形で入力してください。セルには「=A」と表示されます。逆に「Aで始まる値をまとめて抽出したい」ときは、あえて「A」とだけ入力する使い方もできます。

注意:条件を変えても結果は自動で更新されない

詳細設定の結果は、条件表を書き換えても自動では変わりません。条件を変更したら、もう一度「詳細設定」を実行してください。自動で更新させたい場合は、方法5のFILTER関数が向いています。

 

 

方法4:テーブル+スライサーでボタンを複数選択

同じ表で絞り込みを何度も切り替えるなら、スライサーが便利です。値がボタンとして並ぶため、▼を開かずにクリックだけで抽出できます。

手順

  1. 表の中の任意のセルを選択し、「挿入」タブの「テーブル」をクリックしてテーブルに変換します。
  2. テーブル内のセルを選択した状態で、「挿入」タブの「スライサー」をクリックします。
  3. 「スライサーの挿入」ダイアログで、絞り込みたい列(例:商品コード)にチェックを入れ、「OK」をクリックします。
  4. スライサーの「A」ボタンをクリックします。
  5. Ctrlキーを押しながら「Z」ボタンをクリックします。

Ctrlキーを押しながらクリックすれば、3つ目以降も追加できます。絞り込みを解除するには、スライサー右上の「フィルターのクリア」をクリックします。

テーブル+スライサーでボタンを複数選択

 

 

方法5:FILTER関数で別の場所に自動抽出

FILTER関数を使うと、元の表はそのままに、条件に合う行だけを別の場所へ表示できます。元データが変わると結果も自動で更新されます。FILTER関数は、Microsoft 365、Excel 2024、Excel 2021などで使用できます。Excel 2019以前では使えません。

基本形:AとZを指定する

A2:C101の表から、A列が「A」または「Z」の行を抽出する数式です。結果を表示したいセルに入力します。

=FILTER(A2:C101,(A2:A101=”A”)+(A2:A101=”Z”),”該当なし”)

  • 第1引数「A2:C101」:抽出元の表です。
  • 第2引数「(A2:A101=”A”)+(A2:A101=”Z”)」:条件を「+」でつなぐと「または(OR)」になります。
  • 第3引数「”該当なし”」:該当する行がないときに表示する文字です。省略すると、該当なしのときに「#CALC!」エラーになります。

応用:抽出する値をセルに並べて管理する

値が3つ、4つと増えると、「+」でつなぐ数式は長くなります。抽出したい値をE2:E4などに縦に並べておき、次の数式を使うと便利です。

=FILTER(A2:C101,ISNUMBER(MATCH(A2:A101,E2:E4,0)),”該当なし”)

この形なら、抽出する値を変えたいときもE列のセルを書き換えるだけで済み、数式を直す必要がありません。

注意:大文字・小文字は区別されず、余分なスペースは別の値になる

FILTER関数の「=」による比較では、大文字と小文字は区別されません。「A」を指定すると「a」の行も抽出されます。

一方、「A 」のように末尾にスペースが入ったセルは、見た目は同じでも「A」とは一致せず、エラーなしで抽出から漏れます。件数が合わないときは、元データに余分なスペースが入っていないか確認してください。

 

補足:FILTER関数が使えない場合は補助列で判定する

Excel 2019以前でも、補助列を作れば「指定した値に一致する行」を関数で判定できます。抽出したい値をE2:E4に並べた例です。

  1. 表の右隣の空いている列(例:D列)の見出しに「抽出」と入力します。
  2. D2に「=COUNTIF($E$2:$E$4,A2)>0」と入力します。
  3. D2の数式を最終行までコピーします。
  4. D列の▼をクリックし、「TRUE」だけにチェックを入れて「OK」をクリックします。

抽出する値を変えたいときは、E列を書き換えてからフィルターを再適用してください。COUNTIF関数は条件に「*」や「?」を使うとワイルドカードとして扱うため、抽出したい値にこれらの記号が含まれる場合は注意が必要です。

 

操作を速くするキーボードショートカット

操作キー
フィルターのオン/オフCtrl+Shift+L
見出しセルで▼のメニューを開くAlt+↓
選択範囲をテーブルに変換Ctrl+T
スライサーで項目を追加選択Ctrl+クリック

 

よくある質問

フィルターの一覧に、あるはずの値が表示されません

フィルターの一覧に表示されるのは、重複しない最初の10,000項目までです。値の種類が非常に多い列では、一覧に出てこない値があります。その場合は、方法2のOR条件か方法3の詳細設定のように、値を直接入力する方法を使ってください。

ほかの列のフィルターを設定したら、一覧から値が消えました

1つの列でフィルターを設定すると、ほかの列の一覧には、現在表示されている行の値だけが表示されます。先に設定したフィルターを解除するか、絞り込む順番を見直してください。

抽出結果だけを別のシートに出したいです

結果を自動で更新させたい場合は、出力先のシートにFILTER関数を入力するのが簡単です。数式の第1引数と第2引数で、元のシートの範囲を指定します。FILTER関数が使えない環境では、詳細設定の「指定した範囲」を使います。

まとめ

方法向いている場面注意点
検索ボックス一覧が長い含む値もヒットする。追加時はチェックを忘れずに
テキスト フィルターのOR条件値が2つ3つ以上は指定できない
詳細設定値が3つ以上、全バージョン対応「A」だけだと前方一致。完全一致は =”=A”
スライサー絞り込みを頻繁に切り替える表をテーブルに変換する必要がある
FILTER関数別の場所に自動抽出したいExcel 2019以前は不可。末尾スペースに注意

2つの値をすぐに絞り込みたいなら、まずは「テキスト フィルター」のOR条件を試してください。抽出結果の件数が想定と違うときは、部分一致・前方一致・余分なスペースの3点を疑うと、原因をすばやく特定できます。

編集長
古見遊 正

流通業で働きながら、2004年からWindowsを使い続けている80年代生まれのサラリーマン。ExcelとPowerPointを極め、仕事の効率化を追求中。苦手だったWordも克服中!Excelを使いこなせるだけで周囲から『神扱い』されるけれど、そのせいで『システムに詳しい人』だと勘違いされがち。でも、それが新しい知識を得るきっかけになった。そんな経験を活かして、Excel・PowerPoint・Word・Windowsの時短ワザ&仕事術を発信中!

古見遊 正をフォローする
Excel便利技

コメント

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