エクセル上級フィルター - 作成方法と使用方法

  • これを共有
Michael Brown

このチュートリアルでは、Excelの高度なフィルタの基本を説明し、1つまたは複数の複雑な条件を満たすレコードを検索するために使用する方法を紹介します。

前回のチュートリアルをご覧になった方は、Excelフィルタがさまざまなデータ型に対してさまざまなオプションを提供していることをご存知でしょう。 テキスト、数値、日付に対する内蔵のフィルタリングオプションは、多くのシナリオを処理できます。 多くは、すべてではありません!通常のオートフィルタが思い通りにならない場合は、詳細フィルタツールを使用して、ニーズに合わせて条件を設定します。

Excelの高度なフィルタは、2つの列の一致と差異を抽出したり、別のリストの項目と一致する行をフィルタリングしたり、大文字と小文字を含む完全一致を見つけたりするなど、2つ以上の複雑な条件を満たすデータを見つける場合にとても便利です。

アドバンストフィルターは、Excel 365 - 2003のすべてのバージョンで利用可能です。 詳細は、以下のリンクをクリックしてください。

    Excelアドバンストフィルタとオートフィルタの比較

    基本的なオートフィルタツールと比較して、アドバンストフィルタはいくつかの重要な点で異なる動作をします。

    • Excelオートフィルタは、ボタンをクリックするだけで適用される組み込み機能です。 フィルター をクリックすると、Excelのフィルターができあがります。

      アドバンストフィルターは、あらかじめ設定されていないため、自動的に適用することができず、リスト範囲と条件範囲を手動で設定する必要があります。

    • オートフィルタでは、最大2つの条件でデータをフィルタリングすることができ、それらの条件は、直接 カスタムオートフィルタ のダイアログボックスが表示されます。

      高度なフィルタを使用すると、複数の列で複数の条件を満たす行を見つけることができ、高度な条件はワークシートの別の範囲に入力する必要があります。

    以下では、Excelでの高度なフィルタの使用方法に関する詳細なガイダンスと、テキストと数値の高度なフィルタの便利な例をご紹介します。

    Excelで高度なフィルタを作成する方法

    Excelアドバンストフィルタの使用は、オートフィルタを適用するほど簡単ではありませんが(多くの「高度な」ものがそうであるように : )、努力する価値は確実にあります。 シート用のアドバンストフィルタを作成するには、次の手順を実行します。

    1.元データの整理

    より良い結果を得るためには、以下の2つの簡単なルールに従ってデータセットを配置します。

    • 各列が固有の見出しを持つヘッダー行を追加する - 重複する見出しはAdvanced Filterを混乱させる原因となります。
    • データセット内に空白行がないことを確認します。

    例えば、サンプルのテーブルはこんな感じです。

    2.基準範囲を設定する

    条件(クライテリア)は、ワークシートの別の範囲に入力します。 理論的には、クライテリアの範囲はシートのどこにあってもかまいませんが、実際には、最上部に配置し、データセットから1行以上の空白行で分離するのが便利です。

    アドバンストクライテリアの注意点

    • 基準範囲には 同列見出し をフィルタリングしたいテーブル/範囲として指定します。
    • 同じ行に記載されている条件はANDロジックで動作し、異なる行に記載されている条件はORロジックで動作します。

    のレコードをフィルタリングする場合、例えば ノース 地域 小計 が900以上であれば、以下の基準範囲を設定する。

    • 地域:北
    • 小計:>=900

    条件で使用できる比較演算子、ワイルドカード、計算式の詳細については、高度なフィルタの条件範囲を参照してください。

    3.Excelの高度なフィルタを適用する

    このように、条件範囲の場所で、高度なフィルタを適用します。

    • データセット内の任意の1セルを選択します。
    • Excel 2016、Excel 2013、Excel 2010、Excel 2007の場合、[ ]内に移動します。 データ tab> ソート&フィルター グループをクリックし アドバンスト .

      Excel2003の場合 データ をポイントすると、メニューが表示されます。 フィルター をクリックします。 アドバンストフィルター... .

    Excelアドバンストフィルターのダイアログボックスが表示されるので、以下の説明に従って設定します。

    4.アドバンストフィルターのパラメータを設定する

    Excelアドバンストフィルターダイアログウィンドウで、以下のパラメータを指定します。

    • アクション .リストをその場でフィルターにかけるか、結果を別の場所にコピーするかを選択します。

      を選択する。 リストを所定の位置にフィルタリングする" は、条件に一致しない行を隠します。

    を選択した場合は、" 結果を別の場所にコピーする" コピーした範囲の下のセルはすべて消去されるため、コピー先の範囲には列のどこにもデータがないことを確認してください。

    • リスト範囲 .フィルタリングするセルの範囲であり、列の見出しも含まれるはずです。

      をクリックする前に、データセット内のセルを選択していた場合は、そのセルをクリックします。 アドバンスト ボタンをクリックすると、Excel はリスト範囲全体を自動的に選択します。 Excel がリスト範囲を間違えた場合は、リスト範囲を指定するために 折りたたみダイアログ アイコン のすぐ右側にある。 リスト範囲 をクリックし、マウスで範囲を選択します。

    • 基準範囲 .条件を入力するセルの範囲です。

    また、「高度なフィルタ」ダイアログウィンドウの左下にあるチェックボックスで、表示する 単一レコードのみ 例えば、このオプションは、列の中の異なる(distinct)項目をすべて抽出するのに役立ちます。

    この例では、その場でリストにフィルタをかけているので、このようにExcelのアドバンストフィルタのパラメータを設定する。

    最後に「OK」をクリックすると、次のような結果になります。

    これはすごい...でも、実は通常のExcelオートフィルタでも同じ結果が得られるんですよね? とにかく、このページを急いで離れないでください。まだ表面しか見ていないので、Excelアドバンスドフィルタの仕組みの基本はわかっていただけたと思います。 さらに記事の中で、アドバンスドフィルタでしかできない例をいくつか紹介しています。 より分かりやすくするために。は、まずAdvanced Filterの条件について詳しく説明します。

    Excelアドバンストフィルタの条件範囲

    このように、Excelのアドバンストフィルターの使い方は簡単です。 しかし、一度アドバンストフィルターの基準の詳細を覚えてしまえば、あなたの選択肢はほぼ無限に広がります

    数値と日付の比較演算子

    高度なフィルタ条件では、以下の比較演算子を使用して異なる数値を比較することができます。

    比較演算子 意味
    = 等しい A1=B1
    > より大きい A1>B1
    < 未満 A1 td="">
    >=。 以上 A1>=B1
    <= 以下 A1<=B1
    イコールではない A1B1

    数値による比較演算子の使い方は明らかです。 上記の例では、すでに数値の基準である >=900 でレコードをフィルタリングします。 小計 900以上とする。

    そして、もう一つの例です。 ノース 地域 月の記録 7月 をもって 金額 このため、条件範囲に次の条件を指定する。

    • 地域:北
    • 注文日:>=2016/7/1
    • 注文日: <=2016/7/30
    • 金額:>800

    そして、今度は、Excelのアドバンストフィルターツールを実行し、以下のように指定します。 リスト範囲 (A4:D50)および 基準範囲 (A2:D2)とすると、次のような結果になります。

    注意:ワークシートで使用する日付の書式にかかわらず、常に フルデート を、Excel が理解できる形式(2016/7/1 や 2016/1-Jul-2016 など)で、アドバンストフィルターの基準範囲に設定します。

    テキスト値に対する高度なフィルタリング

    数値や日付の他に、論理演算子を使ってテキスト値を比較することもできます。 そのルールは、以下の表で定義されています。

    基準 商品説明
    ="=text" 値が以下のようなセルをフィルタリングします。 どっこいどっこい "text "です。
    テキスト コンテンツがあるセルをフィルタリングする 抑々 "text "です。
    テキスト 値が以下のようなセルをフィルタリングします。 とはいかない "text"(内容の一部に "text "を含むセルはフィルターに含まれます)。
    >テキスト 値がアルファベット順のセルにフィルターをかける "text "です。
    code=""> 値がアルファベット順のセルにフィルターをかける "text "です。

    このように、テキスト値に対する高度なフィルタを作成するには、いくつかの特殊性がありますので、もう少し詳しく説明しましょう。

    例1.完全一致のテキストフィルター

    というセルだけを表示させるには ジャスト・イコール を特定のテキストや文字に変換するには 等号 を基準にしています。

    例えば バナナ の項目で、次の条件を使用します。 Microsoft Excel は、条件を次のように表示します。 =バナナ をセルに入力しても、式全体をフォーミュラバーで見ることができます。

    上のスクリーンショットにあるように、クライテリアは、以下のものだけを表示します。 バナナ かきとめ 小計 900以上、無視 グリーンバナナ ゴールドフィンガーバナナ .

    注)フィルタリングを行う場合 数値 それは ジャスト・イコール 例えば、小計が900に等しいレコードをフィルタリングするには、次の小計基準のいずれかを使用できます:, =900 または単に900.

    例2.特定の文字で始まるテキスト値をフィルタリングする

    指定した文字列で始まるすべてのセルを表示するには、基準範囲にその文字列を等号や二重引用符を付けずに入力するだけでよい。

    例えば、すべての" 碧い " 小計が900以上の項目は、以下の基準で判断してください。

    • アイテム:グリーン
    • 小計:>=900

    ワイルドカードを使用したExcelアドバンストフィルタ

    でテキストレコードをフィルタリングするには 部分一致 を使用すると、高度なフィルタの条件で、次のワイルドカード文字を使用できます。

    • クエスチョンマーク(?)で任意の1文字にマッチします。
    • アスタリスク(*)で任意の文字列にマッチします。
    • チルダ(~)の後に*、?、~を付けると、本物のクエスチョンマーク、アスタリスク、チルダを含むセルをフィルタリングすることができます。

    次の表は、ワイルドカードを使用した基準範囲の例をいくつか示しています。

    基準 商品説明
    *テキスト* する細胞をろ過する。 含む "text "です。 *バナナ* は、"バナナ "という単語を含むすべてのセル(例:"グリーンバナナ")を検索します。
    テキスト コンテンツがあるセルをフィルタリングする 抑々 任意の2文字 しかるのち "text "です。 バナナ バナナ "という単語の前に "1#banana "や"//banana "のように任意の2文字があるセルを見つける。
    テキスト*テキスト する細胞をろ過する。 抑々 "text "を含み、かつ さいきん の "text "をセル内の任意の場所に配置する。 バナナ*バナナ は、"banana" という単語で始まり、さらに "banana" という単語が含まれるセルを検索します。 バナナグリーン vs. バナナイエロー" .
    ="=text*text" する細胞をろ過する。 始める アンド しゅうりょう を "text "とする。 ="= バナナ * バナナ " は、"banana" という単語で始まり、終わるセルを見つける、例えば、 " バナナ、おいしいバナナ" .
    ="=text1?text2" する細胞をろ過する。 始める を "text1 "とする。 しゅうりょう を "text2 "とし、正確に含む 一文字 を挟んでいます。 ="= バナナ ? オレンジ "バナナ "という単語で始まり、"オレンジ "という単語で終わり、その間にある任意の一文字を含むセルを検索する、例: " バナナ/オレンジ" または " banana*orange "です。
    テキスト〜** する細胞をろ過する。 抑々 "text "です。 しかるのち *, しかるのち その他のキャラクター バナナ〜☆彡 バナナ "とアスタリスクで始まり、"バナナ*緑 "や "バナナ*黄 "のような他のテキストが続くセルを検索します。
    ="=?????" ちょうど5文字を含むテキスト値を持つセルにフィルタをかける。 ="=?????" apple "や "lemon "のような、ちょうど5文字を含むテキストを含むセルを検索します。

    そして、最も単純なワイルドカードの条件(*banana*)は、"banana "という単語を含むすべてのセルを検索するものです。

    アドバンストフィルターの条件における計算式

    より複雑な条件を持つ高度なフィルターを作成するには、条件範囲に1つ以上のExcel関数を使用します。 数式ベースの条件を正しく動作させるには、次の規則に従ってください。

    • 数式はTRUEまたはFALSEのどちらかで評価されなければならない。
    • 基準範囲には最低2つのセルを含めること。 数式セル 見出しセル .
    • があります。 見出しセル は、フォーミュラ・ベース・クライテリアに含まれるべきものである。 貧乏くじ または、リスト範囲の見出しのいずれとも異なる見出しを持つ。
    • を評価する式については 各行データ の場合、データの最初の行のセルを参照するには、相対参照(A1 のように $ を使用しない)を使用します。
    • に対してのみ評価される式については 特定細胞 または セル範囲 のように$を付けて)絶対参照を使用して、そのセルまたは範囲を参照します。
    • を参照する場合 リスト範囲 の式では、常に絶対セル参照を使用してください。

    例えば、以下のような行をフィルタリングする場合 8月 売上高(C欄)を上回っている。 7月 売上高(D列)には、基準 =D5>C5 を使用し、5がデータの最初の行となります。

    注)条件として、「1」を含む場合 一式 この例のように、基準範囲に少なくとも2つのセル(数式セルと見出しセル)を含めるようにしてください。

    数式による複数条件の複雑な例については、Excelの高度なフィルタの使い方 - 条件範囲の例 をご覧ください。

    ANDとORのロジックでアドバンストフィルターを使用する

    このチュートリアルの冒頭ですでに述べたように、Excelアドバンストフィルタは、設定次第でAND論理だけでなくOR論理でも機能します。 基準範囲 :

    • に関する基準 同列 が結合されています。 アンド 演算子を使用します。
    • の基準 別段 が結合されています。 オア 演算子を使用します。

    わかりやすくするために、次のような例を考えてみましょう。

    ANDロジックを用いたExcelアドバンストフィルタ

    を持つレコードを表示するには 小計 >=900 AND 平均値 >=350、両方の条件を同じ行に定義する。

    ORロジックによるExcelアドバンストフィルタ

    を持つレコードを表示するには 小計 >=900 OR 平均値 >=350、各条件を別々の行に配置します。

    ORだけでなくANDロジックも使えるExcelアドバンストフィルタ

    のレコードを表示するには、次のようにします。 ノース 領域 小計 900以上 OR 平均値 が350以上であれば、このように基準範囲を設定する。

    言い方を変えると、この例の基準範囲は、次のような条件に変換されます。

    ( 地域 =北 アンド 小計 >=900) オア ( 地域 =北 アンド 平均値 >=350)

    注:この例のソース・テーブルには、North、South、East、West の4つのリージョンしか含まれていませんので、安全に ノース もし、NorthwestやNortheastのように "north "を含む地域があれば、完全一致の条件を使用することになります。 ="=北" .

    特定の列だけを抽出する方法

    Advanced Filterが結果を別の場所にコピーするように設定する場合、以下のように指定します。 どのカラムを抽出するか .

    1. フィルタを適用する前に、抽出したい列の見出しを、抽出先範囲の最初の行に入力またはコピーします。

      例えば、次のようなデータの要約をコピーする場合。 地域 , 項目 小計 指定された基準範囲に基づいて、セルH1:J1に3つの列のラベルを入力します(以下のスクリーンショットを参照してください)。

    2. Excelアドバンストフィルターを適用し 別の場所にコピーする オプションで アクション .
    3. での コピー先 ボックスに、移動先の範囲(H1:J1)の列ラベルの参照を入力し、OKをクリックします。

    その結果、Excelは条件範囲に記載された条件に従って行をフィルタリングしました( ノース の領域項目があります。 小計 >=900)で、3列を指定した場所にコピーしました。

    フィルタリングされた行を別のワークシートにコピーする方法

    元のデータを含むワークシートでアドバンストフィルターツールを開いた場合、 " 別の場所にコピーする " オプションを選択し コピー先 の範囲を別のシートで使用する場合、次のようなエラーメッセージが表示されます: " アクティブシートにコピーできるのは、フィルタリングされたデータのみです ".

    しかし、フィルタリングされた行を別のワークシートにコピーする方法があり、すでにヒントを得ています。 あともう一枚 をクリックすると、そのシートがアクティブシートになります。

    例えば、Sheet1に元のテーブルがあり、フィルタリングされたデータをSheet2にコピーしたいとします。 ここでは、超簡単な方法を紹介します。

    1. まず始めに、Sheet1 に基準範囲を設定します。
    2. Sheet2に移動し、ワークシートの未使用部分の任意の空きセルを選択します。
    3. Excelのアドバンストフィルターを実行する( データ tab> アドバンスト ).
    4. での アドバンストフィルター ダイアログウィンドウで、次のオプションを選択します。
      • アンダー アクション を選びました。 別の場所にコピーする .
      • をクリックします。 リスト範囲 ボックスで、Sheet1 に切り替え、フィルタリングしたいテーブルを選択します。
      • をクリックします。 基準範囲 ボックスで、Sheet1 に切り替え、基準範囲を選択します。
      • をクリックします。 コピー先 ボックスで、Sheet2上のコピー先範囲の左上セルを選択します(一部の列だけをコピーしたい場合は、Sheet2上にあらかじめ列の見出しを入力しておき、その見出しを選択します)。
      • OKをクリックします。

    この例では、Sheet2 に 4 列を抽出するので、対応する列の見出しを Sheet1 に表示されているのとまったく同じように入力し、見出しを含む範囲(A1:D1)を コピー先 ボックスを使用します。

    次回のチュートリアルでは、数式を使ったより複雑な条件範囲の例について詳しく見ていきますので、どうぞご期待ください。

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。