高度な条件を使ってフィルターを適用する
Excel for Microsoft 365 Excel 2021 Excel 2019 Excel 2016 その他…表示数を減らす
フィルター処理するデータに複雑な条件 (種別 = "農産物" や販売員 = "西脇" など) が必要な場合は、[高度なフィルター] ダイアログ ボックスを使用できます。
[高度なフィルター] ダイアログ ボックスを開くには、[詳細設定]、[上級] の順にクリックします。
フィルター オプションの設定 | 使用例 |
---|---|
高度なフィルター条件の概要 | |
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 のテキスト データのフィルター処理では、大文字と小文字は区別されません。 ただし、特定の数式を使用すると、大文字と小文字を区別した検索を実行できます。 例については、「 target=”_blank” title=”ワイルドカード条件” rel=”noopener”>ワイルドカード条件」セクションを参照してください。
事前に定義された名前を使用する
範囲に Criteria という名前を付けて、その範囲の参照が [検索条件範囲] ボックスに自動的に表示されるようにできます。 フィルター処理されるリスト範囲に対して Database という名前を定義し、行を貼り付ける領域に対して Extract という名前を定義して、それらの範囲がそれぞれ [リスト範囲] ボックスと [コピー先] ボックスに自動的に表示されるようにすることができます。
数式を使用して条件を作成する
数式の計算結果を検索条件として使用できます。 次の点に注意してください。
TRUE または FALSE に評価される数式しか使用できません。
数式は通常と同じように入力する必要があります。次のような式を入力することはできません。
=”= 入力内容 ”
- 列ラベルを検索条件のラベルに指定することはできません。検索条件のラベルを指定しないか、リスト範囲内の列ラベルとは異なるラベル (以降の例では、"平均値評価" と "完全一致") を指定します。
数式には、相対セル参照や範囲名の代わりに列ラベルを指定することができます。 列ラベルを使用すると、検索条件を入力したセルに "#NAME?"、#VALUE! などのエラー値が表示されます。 このエラーはリスト範囲のフィルター処理の結果には影響しないため、無視してかまいません。
条件として使用する数式は、データ先頭行の対応するセルを相対参照する必要があります。
それ以外の参照には、絶対参照を使用します。
1 つの列に複数の検索条件を指定して、いずれかの条件に一致するデータを抽出する
論理式: (販売員 = "西脇" OR 販売員 = "吉田")
条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。
1 つの列に複数の検索条件を指定して、いずれかに一致するデータを抽出する場合、同じ列の個別の行に検索条件を入力します。 例を使用して次の値を入力します。
種別 | 営業担当者 | 売上 |
---|---|---|
="=西脇" | ||
="=吉田" |
リスト範囲内のセルをクリックします。 例を使用し、範囲 A6:C10 内のいずれかのセルをクリックします。
[データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。
次のいずれかの操作を行います。
条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。
条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。
ヒント フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。
- [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$C$3」と入力します。
条件範囲を選択する間、[高度なフィルター] ダイアログ ボックスをじゃまにならないように一時的に移動する場合は、[ダイアログ縮小] をクリックします。
- 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。
種別 | 営業担当者 | 売上 |
---|---|---|
肉類 | 西脇 | ¥450 |
農産物 | 吉田 | ¥6,328 |
農産物 | 西脇 | ¥6,544 |
複数の列に複数の検索条件を指定して、すべての条件に一致するデータを抽出する
論理式: (種別 = "農産物" AND 売上 > 1000)
条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。
複数の列に検索条件を指定して、すべてに一致するデータを抽出する場合、同じ行に検索条件を入力します。 例を使用し、次のように入力します。
種別 | 営業担当者 | 売上 |
---|---|---|
="=農産物" | >1000 |
リスト範囲内のセルをクリックします。 例を使用し、範囲 A6:C10 内のいずれかのセルをクリックします。
[データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。
次のいずれかの操作を行います。
条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。
条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。
ヒント フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。
- [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$C$2」と入力します。
条件範囲を選択する間、[高度なフィルター] ダイアログ ボックスをじゃまにならないように一時的に移動する場合は、[ダイアログ縮小] をクリックします。
- 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。
種別 | 営業担当者 | 売上 |
---|---|---|
農産物 | 吉田 | ¥6,328 |
農産物 | 西脇 | ¥6,544 |
複数の列に複数の検索条件を指定して、いずれかの条件に一致するデータを抽出する
論理式: (種別 = "農産物" OR 販売員 = "西脇")
条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。
複数の列に検索条件を指定して、いずれかの条件に一致するデータを抽出する場合、別々の列と行に検索条件を入力します。 例を使用し、次のように入力します。
種別 | 営業担当者 | 売上 |
---|---|---|
="=農産物" | ||
="=吉田" |
リスト範囲内のセルをクリックします。 例を使用し、リスト範囲 A6:C10 内の任意のセルをクリックします。
[データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。
次のいずれかの操作を行います。
条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。
条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。
ヒント: フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。
- [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$B$3」と入力します。
条件範囲を選択する間、[高度なフィルター] ダイアログ ボックスをじゃまにならないように一時的に移動する場合は、[ダイアログ縮小] をクリックします。
- 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。
種別 | 営業担当者 | 売上 |
---|---|---|
農産物 | 吉田 | ¥6,328 |
農産物 | 西脇 | ¥6,544 |
すべてのセット内の 1 つの列に複数の検索条件のセットを指定する
論理式: ( (売上 > 6000 AND 売上 < 6500 ) OR (売上 < 500) )
条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。
1 つの列を対象とする 2 セット以上の検索条件を指定するには、複数の列に同じ列ラベルを付けて指定します。 例を使用し、次のように入力します。
種別 | 営業担当者 | 売上 | 売上 |
---|---|---|---|
>6000 | <6500 | ||
<500 |
リスト範囲内のセルをクリックします。 例を使用し、リスト範囲 A6:C10 内の任意のセルをクリックします。
[データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。
次のいずれかの操作を行います。
条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。
条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。
ヒント: フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。
- [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$D$3」と入力します。
条件範囲を選択する間、[高度なフィルター] ダイアログ ボックスをじゃまにならないように一時的に移動する場合は、[ダイアログ縮小] をクリックします。
- 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。
種別 | 営業担当者 | 売上 |
---|---|---|
肉類 | 西脇 | ¥450 |
農産物 | 吉田 | ¥6,328 |
各セット内の複数の列に複数の条件のセットを指定する
論理式: ( (販売員 = "西脇" AND 売上 >3000) OR (販売員 = "吉田" AND 売上 > 1500) )
条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。
複数の列を対象とする 2 セット以上の検索条件を指定して、一致するデータを抽出するには、個別の行に検索条件セットを入力します。 例を使用し、次のように入力します。
種別 | 営業担当者 | 売上 |
---|---|---|
="=西脇" | >3000 | |
="=吉田" | >1500 |
リスト範囲内のセルをクリックします。 例を使用し、リスト範囲 A6:C10 内の任意のセルをクリックします。
[データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。
次のいずれかの操作を行います。
条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。
条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。
ヒント フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。
[条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 この例を使用して、「$A$1:$C$3」と入力します。条件範囲を選択する間、[高度なフィルター] ダイアログ ボックスをじゃまにならないように一時的に移動する場合は、[ダイアログ縮小] をクリックします。
例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。
種別 | 営業担当者 | 売上 |
---|---|---|
農産物 | 吉田 | ¥6,328 |
農産物 | 西脇 | ¥6,544 |
ワイルドカード条件
論理式: 販売員 = 2 文字目が ‘山’ になっている名前
一部の文字だけが一致する文字列を検索するには、次のいずれかを行います。
特定の文字または文字列から始まる文字列値を含む行を検索するには、等号 (=) を使用せずにその文字または文字列を入力します。 たとえば、検索条件として「西 」と入力すると、"西脇"、"西田"、"西崎" などが検索されます。
ワイルドカード文字を使用します。
入力する文字列 | 検索対象 |
---|---|
? (疑問符) | 任意の 1 文字 |
たとえば、「インターフェ?ス」と入力すると "インターフェイス" や "インターフェース" が検索されます。
(アスタリスク) | 任意の数の文字
たとえば、「Win」と入力すると "Win98" や "Win2000" が検索されます。
˜ (チルダ) (?、、または ˜ の前に入力) | 疑問符、アスタリスク、またはチルダ
たとえば、「fy91~?」と入力すると、 "fy91?" が検索されます
2. 条件範囲として使用できるリスト範囲の上に少なくとも 3 つの空白行を挿入します。 条件範囲には列ラベルが必要です。 条件値とリスト範囲の間に少なくとも 1 つの空白行があることを確認してください。- 列ラベルの下の行に、一致させる条件を入力します。 例を使用し、次のように入力します。
種別 | 営業担当者 | 売上 |
---|---|---|
="=肉*" | ||
="=?山*" |
リスト範囲内のセルをクリックします。 例を使用し、リスト範囲 A6:C10 内の任意のセルをクリックします。
[データ] タブの [並べ替えとフィルター] で [詳細] をクリックします。
次のいずれかの操作を行います。
条件に一致しない行を非表示にして、リスト範囲をフィルター処理するには、[選択範囲内] をクリックします。
条件に一致する行をワークシートの別の領域にコピーして、リスト範囲をフィルター処理するには、[指定した範囲] をクリックし、[コピー先] ボックス内をクリックして、行を貼り付ける領域の左上隅をクリックします。
ヒント: フィルター処理された行を別の場所にコピーするときには、コピー操作に含まれる列を指定することができます。 フィルター処理する前に、フィルター処理された行を貼り付ける領域の最初の行に、列ラベルをコピーします。 フィルター処理するときに、[コピー先] ボックスで、コピーされた列ラベルの参照を入力します。 コピーされた行には、ラベルをコピーした列のみが含まれます。
- [条件範囲] ボックスに、条件ラベルを含む条件範囲の参照を入力します。 例を使用し、「$A$1:$B$3」と入力します。
条件範囲を選択する間、[高度なフィルター] ダイアログ ボックスをじゃまにならないように一時的に移動する場合は、[ダイアログ縮小] をクリックします。
- 例を使用すると、リスト範囲のフィルター処理された結果は次のようになります。
種別 | 営業担当者 | 売上 |
---|---|---|
飲料 | 須山 | ¥5,122 |
肉類 | 西脇 | ¥450 |
農産物 | 吉田 | ¥6,328 |
補足説明
Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。