Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

この記事では、ExcelのVBAを使って、データセットから複数の条件でフィルター(抽出)する方法を解説します。AND型OR型、両方の複数条件に対応したフィルター手法を学ぶことができます。

VBAでExcelの複数条件をフィルターする2つの簡単な方法

ここでは、「Martin Bookstore」という書店の書籍名・書籍の種類・価格をまとめたデータセットを使用します。

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

今回の目標は、このデータセットに対してVisual Basic for Applications(VBA)を使い、複数の条件でフィルターを行うことです。

1. VBAでAND型の複数条件をフィルターする

まずは、任意のデータセットに対してAND型の複数条件でフィルターを実行できるマクロを作成します。

例として、「小説(Novel)」であり、かつ価格が$25.00以上の本を抽出してみましょう。

⧭ VBAコード:

Sub Filter_Multiple_Criteria_AND_Type()

Count = 1
For i = 1 To Selection.Rows.Count

    If Selection.Cells(i, 2) = "Novel" And Selection.Cells(i, 3) >= 25 Then

        For j = 1 To Selection.Columns.Count

            Range("F4").Cells(Count, j) = Selection.Cells(i, j)

        Next j

        Count = Count + 1

    End If

Next i

End Sub

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

⧭ 実行結果:

ワークシート上でデータセットを選択し、このマクロ(Filter_Multiple_Criteria_AND_Type)を実行します。

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

すると、セルF4を起点とする新しい範囲に、「小説」かつ価格が$25.00以上の本だけが抽出されます。

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

⧭ ポイント解説:

  • コードの4行目では、Cells(i, 2) = "Novel"Selection.Cells(i, 3) >= 25 を使用しています。

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

  • これは「2列目(書籍の種類)が"Novel"であること」かつ「3列目(価格)が$25.00以上であること」という条件を意味します。
  • これらの条件は、必要に応じて自由に変更できます。
  • 例えば、「価格が$20.00以上$30.00以下の本」を抽出したい場合は、Selection.Cells(i, 3) >= 20Selection.Cells(i, 3) <= 30 のように指定します。
  • また、6行目でRange("F4")としているのは、抽出結果をセルF4から表示させたいためです。

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

  • 出力先のセルも、用途に合わせて適宜変更してください。

関連記事: Excelで複数条件をフィルターする方法

あわせて読みたい記事

  • Excelでユーザー設定フィルターを使う方法(5つの方法)
  • Excelにフィルターを追加する方法(4つの方法)
  • Excelフィルターのショートカットキー(実例付き3つの活用術)
  • Excelでテキストフィルターを使う方法(5つの具体例)

2. VBAでOR型の複数条件をフィルターする

次に、任意のデータセットに対してOR型の複数条件でフィルターを実行できるマクロを作成します。

今度は例として、「小説(Novel)」であるか、または価格が$25.00以上である本を抽出してみましょう。

⧭ VBAコード:

Sub Filter_Multiple_Criteria_Or_Type()

Count = 1

For i = 1 To Selection.Rows.Count

    If Selection.Cells(i, 2) = "Novel" Or Selection.Cells(i, 3) >= 25 Then

        For j = 1 To Selection.Columns.Count

            Range("F4").Cells(Count, j) = Selection.Cells(i, j)

        Next j

        Count = Count + 1

    End If

Next i
End Sub

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

⧭ 実行結果:

ワークシート上でデータセットを選択し、このマクロ(Filter_Multiple_Criteria_OR_Type)を実行します。

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

すると、セルF4を起点とする新しい範囲に、「小説」または価格が$25.00以上の本がすべて抽出されます。

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

⧭ ポイント解説:

  • コードの4行目では、Selection.Cells(i, 2) = "Novel" または Selection.Cells(i, 3) >= 25 を使用しています。

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

  • これは「2列目(書籍の種類)が"Novel"であること」または「3列目(価格)が$25.00以上であること」という条件を意味します。
  • 条件の内容は、必要に応じて自由に変更できます。
  • また、6行目でRange("F4")としているのは、抽出結果をセルF4から表示させたいためです。

【VBA】Excelで複数条件をフィルターする方法(AND型・OR型の両方に対応)

関連記事: Excelで複数のフィルターを適用する方法【標準機能+VBA】

覚えておきたいポイント

今回は2つの条件を使用しましたが、条件の数はいくつでも追加できます。すべての条件を、抽出したい内容に応じてAndまたはOrでつなげるだけでOKです。

まとめ

これらの方法を使えば、VBAでAND型・OR型どちらの複数条件でも、Excelのデータを簡単にフィルターできます。ご不明な点があれば、お気軽にお問い合わせください。最新の記事や更新情報については、当サイトExcelDemyもぜひご覧ください。

さらに学びたい方へ

  • Excelで複数列を個別にフィルターする方法
  • Excelフィルターで複数項目を検索する方法(2つの方法)
  • Excelでフィルターを解除する方法(5つの簡単&スピーディーな方法)
  • Excelで日付を条件にフィルターする方法(4つのクイックメソッド)
  1. Excelで複数の色を条件にデータをフィルターする2つの簡単な方法

    この記事では、Microsoft Excelで複数の色を条件にデータをフィルターする方法を解説します。通常、特定の列を複数の色でフィルターすると、他の列も最初に適用したフィルターの影響を受けてしまい、思い通りの結果が得られないことがあります。色による複数条件のフィルタリングは少し工夫が必要ですが、この記事では誰でも実践できる2つの方法を、わかりやすい手順とともに紹介します。 Excelで複数の色を条件にフィルターする2つの方法 ここでは、営業担当者の氏名、担当地域、売上高がそれぞれB列・C列・E列に入力されたサンプルデータセットを使用します。このデータには、セルごとに異なる色が設定されています

  2. Excelで色とテキストの両方を条件にフィルターをかける方法(3つの簡単なステップ)

    Excelでは、セルの色でフィルターをかけることも、特定のテキストで絞り込むことも簡単に行えます。しかし、この2つの条件を組み合わせて同時にフィルターをかける直接的な機能は用意されていません。本記事では、その回避策となる実践的な方法をわかりやすく解説します。手順は短く、初心者の方でもすぐに実践できる内容です。ぜひ最後までご覧ください。 練習用ワークブックは、下のダウンロードボタンから入手できます。 Excelで色とテキストの両方を使ってフィルターをかける手順 以下のようなデータセットを想定します。ここでは、色付きのセルは空白になっています。E列の「Yes」というテキストと、黄色く塗られたセル