高度な条件を使ってフィルターを適用する

注: 最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。 このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。 私たちの目的は、このコンテンツがお客様の役に立つようにすることです。 お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。 簡単に参照できるように、こちらに英語の記事があります。

フィルターを適用するデータに複雑な条件 (Type = "ビール" や販売員 = "西脇" など) が必要な場合は、 [フィルターオプションの設定] ダイアログボックスを使用できます。

[フィルターオプションの設定] ダイアログボックスを開くには、[データ> advanced] をクリックします。

[データ] タブの [並べ替えとフィルター] グループ

使用例

Overview

1 つの列に複数の検索条件を指定して、いずれかの条件に一致するデータを抽出する

販売員 = "西脇" OR 販売員 = "吉田"

複数の列に複数の検索条件を指定して、すべての条件に一致するデータを抽出する

種別 = "農産物" AND 売上 > 1000

複数の列に複数の検索条件を指定して、いずれかの条件に一致するデータを抽出する

種別 = "農産物" OR 販売員 = "西脇"

すべてのセット内の 1 つの列に複数の検索条件のセットを指定する

(売上 > 6000 AND 売上 < 6500 ) OR (売上 < 500)

各セット内の複数の列に複数の条件のセットを指定する

(販売員 = "西脇" AND 売上 >3000)また
は (販売員 = "吉田" AND 売上 > 1500)

ワイルドカード条件

販売員 = 2 文字目が '山' になっている名前

概要

[詳細設定] コマンドの機能は、いくつかの重要な点で、[フィルター] コマンドの機能とは異なります。

  • この機能では、[オートフィルター] メニューではなく [フィルター オプションの設定] ダイアログ ボックスが開きます。

  • ワークシートの個別の条件範囲、およびフィルター処理するセルまたはテーブルの範囲の上で高度な条件を入力します。 Microsoft Office Excel では、[フィルター オプションの設定] ダイアログ ボックスで、高度な条件のソースとして個別の条件範囲が使用されます。

サンプル データ

この記事のすべての手順で使用されるサンプルデータを次に示します。

このデータには、検索条件範囲 (A1: C4) とリスト範囲 (A6: C10) として使用される、リスト範囲の上に4つの空白行が含まれています。 条件範囲には、列ラベルがあり、条件値とリスト範囲の間に少なくとも 1 つの空白行が含まれます。

このデータを操作するには、次の表でデータを選んでコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。

種類

営業担当者

売上

種別

営業担当者

売上

飲料

須山

¥5,122

肉類

西脇

¥450

農産物

吉田

¥6,328

農産物

西脇

¥6,544

比較演算子

次の演算子は、2 つの値を比較する際に使用します。 これらの演算子を使用して 2 つの値を比較すると、結果は TRUE または FALSE のいずれかの論理値になります。

比較演算子

意味

使用例

= (等号)

等しい

A1=B1

> (大なり記号)

より大きい

A1>B1

< (小なり記号)

より小さい

A1<B1

>= (より大か等しい記号)

以上

A1>=B1

<= (より小か等しい記号)

以下

A1<=B1

<> (不等号)

等しくない

A1<>B1

等号を使ってテキストまたは値を入力する

等号 (=) は、セルにテキストまたは値を入力するときに数式を示すために使用されるので、Excel で入力内容が評価されますが、このためにフィルターの処理結果が予期しないものになることがあります。 テキストまたは値の等価比較演算子を示すには、条件範囲内の適切なセルに条件を文字列式として入力します。

=''= 入力内容 ''

入力内容には、検索する文字列または値を指定します。 次に例を示します。

セルに入力する内容

Excel による評価と表示

="=西脇"

=西脇

="=3000"

=3000

大文字と小文字の区別を考慮する

Excel のテキスト データのフィルター処理では、大文字と小文字は区別されません。 ただし、特定の数式を使用すると、大文字と小文字を区別した検索を実行できます。 例については、「ワイルドカード条件」セクションを参照してください。

事前に定義された名前を使用する

範囲に Criteria という名前を付けて、その範囲の参照が [検索条件範囲] ボックスに自動的に表示されるようにできます。 フィルター処理されるリスト範囲に対して Database という名前を定義し、行を貼り付ける領域に対して Extract という名前を定義して、それらの範囲がそれぞれ [リスト範囲] ボックスと [コピー先] ボックスに自動的に表示されるようにすることができます。

数式を使用して条件を作成する

数式の計算結果を検索条件として使用できます。 次の点に注意してください。

  • TRUE または FALSE に評価される数式しか使用できません。

  • 数式は通常と同じように入力する必要があります。次のような式を入力することはできません。

    =''= 入力内容 ''

  • 列ラベルを検索条件のラベルに指定することはできません。検索条件のラベルを指定しないか、リスト範囲内の列ラベルとは異なるラベル (以降の例では、"平均値評価" と "完全一致") を指定します。

    数式には、相対セル参照や範囲名の代わりに列ラベルを指定することができます。 列ラベルを使用すると、検索条件を入力したセルに "#NAME?"、#VALUE! などのエラー値が表示されます。 このエラーはリスト範囲のフィルター処理の結果には影響しないため、無視してかまいません。

  • 条件として使用する数式は、データ先頭行の対応するセルを相対参照する必要があります。

  • それ以外の参照には、絶対参照を使用します。

1 つの列に複数の検索条件を指定して、いずれかの条件に一致するデータを抽出する

論理式:    (販売員 = "西脇" OR 販売員 = "吉田")

  1. 条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。

  2. 1 つの列に複数の検索条件を指定して、いずれかに一致するデータを抽出する場合、同じ列の個別の行に検索条件を入力します。 例を使用して次の値を入力します。

    種類

    営業担当者

    売上

    ="=西脇"

    ="=吉田"

  3. リスト範囲内のセルをクリックします。 例を使用し、範囲 A6:C10 内のいずれかのセルをクリックします。

  4. [データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。

    [データ] タブの [並べ替えとフィルター] グループ

  5. 次のいずれかの操作を行います。

    • 条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。

    • 条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。

      ヒント    フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。

  6. [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$C$3」と入力します。

    条件範囲を選択している間、[フィルターオプションの設定] ダイアログボックスを一時的に非表示にするには、[ダイアログ縮小]をクリックします。

  7. 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。

    種別

    営業担当者

    売上

    肉類

    西脇

    ¥450

    農産物

    吉田

    ¥6,328

    農産物

    西脇

    ¥6,544

複数の列に複数の検索条件を指定して、すべての条件に一致するデータを抽出する

論理式:    (種別 = "農産物" AND 売上 > 1000)

  1. 条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。

  2. 複数の列に検索条件を指定して、すべてに一致するデータを抽出する場合、同じ行に検索条件を入力します。 例を使用し、次のように入力します。

    種類

    営業担当者

    売上

    ="=農産物"

    >1000

  3. リスト範囲内のセルをクリックします。 例を使用し、範囲 A6:C10 内のいずれかのセルをクリックします。

  4. [データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。

    [データ] タブの [並べ替えとフィルター] グループ

  5. 次のいずれかの操作を行います。

    • 条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。

    • 条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。

      ヒント    フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。

  6. [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$C$2」と入力します。

    条件範囲を選択している間、[フィルターオプションの設定] ダイアログボックスを一時的に非表示にするには、[ダイアログ縮小]をクリックします。

  7. 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。

    種別

    営業担当者

    売上

    農産物

    吉田

    ¥6,328

    農産物

    西脇

    ¥6,544

複数の列に複数の検索条件を指定して、いずれかの条件に一致するデータを抽出する

論理演算子:    (種別 = "農産物" OR 販売員 = "西脇")

  1. 条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。

  2. 複数の列に検索条件を指定して、いずれかの条件に一致するデータを抽出する場合、別々の列と行に検索条件を入力します。 例を使用し、次のように入力します。

    種類

    営業担当者

    売上

    ="=農産物"

    ="=吉田"

  3. リスト範囲内のセルをクリックします。 例を使用し、リスト範囲 A6:C10 内の任意のセルをクリックします。

  4. [データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。

    [データ] タブの [並べ替えとフィルター] グループ

  5. 次のいずれかの操作を行います。

    • 条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。

    • 条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。

    ヒント: フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。

  6. [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$B$3」と入力します。

    条件範囲を選択している間、[フィルターオプションの設定] ダイアログボックスを一時的に非表示にするには、[ダイアログ縮小]をクリックします。

  7. 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。

    種類

    営業担当者

    売上

    農産物

    吉田

    ¥6,328

    農産物

    西脇

    ¥6,544

すべてのセット内の 1 つの列に複数の検索条件のセットを指定する

論理式:     ( (売上 > 6000 AND 売上 < 6500 ) OR (売上 < 500) )

  1. 条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。

  2. 1 つの列を対象とする 2 セット以上の検索条件を指定するには、複数の列に同じ列ラベルを付けて指定します。 例を使用し、次のように入力します。

    種類

    営業担当者

    売上

    売上

    >6000

    <6500

    <500

  3. リスト範囲内のセルをクリックします。 例を使用し、リスト範囲 A6:C10 内の任意のセルをクリックします。

  4. [データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。

    [データ] タブの [並べ替えとフィルター] グループ

  5. 次のいずれかの操作を行います。

    • 条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。

    • 条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。

      ヒント: フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。

  6. [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$D$3」と入力します。

    条件範囲を選択している間、[フィルターオプションの設定] ダイアログボックスを一時的に非表示にするには、[ダイアログ縮小]をクリックします。

  7. 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。

    種類

    営業担当者

    売上

    肉類

    西脇

    ¥450

    農産物

    吉田

    ¥6,328

各セット内の複数の列に複数の条件のセットを指定する

論理式:    ( (販売員 = "西脇" AND 売上 >3000) OR (販売員 = "吉田" AND 売上 > 1500) )

  1. 条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。

  2. 複数の列を対象とする 2 セット以上の検索条件を指定して、一致するデータを抽出するには、個別の行に検索条件セットを入力します。 例を使用し、次のように入力します。

    種類

    営業担当者

    売上

    ="=西脇"

    >3000

    ="=吉田"

    >1500

  3. リスト範囲内のセルをクリックします。 例を使用し、リスト範囲 A6:C10 内の任意のセルをクリックします。

  4. [データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。

    [データ] タブの [並べ替えとフィルター] グループ

  5. 次のいずれかの操作を行います。

    • 条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。

    • 条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。

      ヒント    フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。

  6. [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 次の例を使用して、$A $1: $C $ 3.To を入力します。 [フィルターオプションの設定] ダイアログボックスを一時的に非表示にします。検索条件範囲を選択して、[ダイアログ縮小] をクリックします。

  7. 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。

    種別

    営業担当者

    売上

    農産物

    吉田

    ¥6,328

    農産物

    西脇

    ¥6,544

ワイルドカード条件

論理式:    販売員 = 2 文字目が '山' になっている名前

  1. 一部の文字だけが一致する文字列を検索するには、次のいずれかを行います。

    • 特定の文字または文字列から始まる文字列値を含む行を検索するには、等号 (=) を使用せずにその文字または文字列を入力します。 たとえば、検索条件として「西」と入力すると、"西脇"、"西田"、"西崎" などが検索されます。

    • ワイルドカード文字を使用します。

      入力する文字列

      検索対象

      ? (疑問符)

      任意の 1
      文字 たとえば、sm?th では、"smith" と "インターフェース" が検索されます。

      * (アスタリスク)

      任意の文字
      数 たとえば、* east では "北東" と "南東" が検索されます。

      ˜ (チルダ) (?、*、または ˜ の前に入力)

      疑問符、アスタリスク、またはチルダ
      たとえば、fy91 ~? "fy91?" が検索されます

  2. 条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。

  3. 列ラベルの下の行に、一致させる条件を入力します。 例を使用し、次のように入力します。

    種類

    営業担当者

    売上

    ="=肉*"

    ="=?山*"

  4. リスト範囲内のセルをクリックします。 例を使用し、リスト範囲 A6:C10 内の任意のセルをクリックします。

  5. [データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。

    [データ] タブの [並べ替えとフィルター] グループ

  6. 次のいずれかの操作を行います。

    • 条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。

    • 条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。

      ヒント: フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。

  7. [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$B$3」と入力します。

    条件範囲を選択している間、[フィルターオプションの設定] ダイアログボックスを一時的に非表示にするには、[ダイアログ縮小]をクリックします。

  8. 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。

    種別

    営業担当者

    売上

    飲料

    須山

    ¥5,122

    肉類

    西脇

    ¥450

    農産物

    吉田

    ¥6,328

補足説明

Excel Tech Community では、いつでも専門家に質問できます。Microsoft コミュニティでは、サポートを受けられます。また、Excel User Voice では、新機能についての提案や改善案を送信することができます。

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×