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

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

Excel の オートフィルタ 特定の条件に基づいてデータを抽出するには、機能が非常に効率的です。 VBA の実装 は、Excel で操作を実行するための最も効果的、迅速、かつ安全な方法です。この記事では、 同じフィールド (列) で複数の条件を使用してオートフィルター処理する ための 4 つの方法を紹介します。 VBA マクロを使用して Excel で .

ワークブックをダウンロード

ここから無料の練習用 Excel ワークブックをダウンロードできます。

Excel の同じフィールド (列) で複数の条件を使用して AutoFilter する VBA を使用した 4 つのメソッド

このセクションに続いて、複数のテキストと数値、AND 演算子と OR 演算子を使用したオートフィルターの方法を学習します。 同じ列 VBA を使用した Excel で 4 つの異なる基準で。

1.同じ列に複数の数値基準がある VBA を AutoFilter に埋め込む

次のデータセットを検討してください。 列 B いくつかの乱数で構成されています 、一方、列 D 奇数のみを保持 .ここで行うことは、列 D にある条件に基づいて列 B をフィルタリングすることです。;つまり、乱数 (列 B ) は奇数でフィルタリングされます D 列にある数字を含むという基準で .

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

VBA でそれを行う方法を見てみましょう

手順:

  • 最初に Alt + F11 を押します キーボードで、またはタブ Developer -> Visual Basic に移動します Visual Basic Editor を開く .

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

  • 次に、ポップアップ コード ウィンドウで、メニュー バーから [挿入] -> [モジュール] をクリックします。 .

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

  • 次に、コピー 次のコードと 貼り付け それをコード ウィンドウに表示します。
Sub AutoFilterWithMultipleCriteriaOnSameColumn()
Dim iArray As Variant
With ThisWorkbook.Worksheets("Column")
    iArray = Split(Join(Application.Transpose(.Range(.Cells(5, 4), .Cells(.Range("D:D").Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row, 4)).Value)))
    .Range("B4").AutoFilter Field:=1, Criteria1:=iArray, Operator:=xlFilterValues
End With
End Sub

コードを実行する準備ができました。

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

  • では、 F5 を押してください キーボードまたはメニュー バーから Run -> Run Sub/UserForm を選択します . スモール ラン アイコンをクリックすることもできます。 サブメニュー バーでマクロを実行します。

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

コードの実行が成功したら、次の画像を見て結果を確認してください。

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

上の画像からわかるように、列 B フィルタリングされました 奇数のみ .

同じコードを実行して、偶数に基づいてデータをフィルタリングできます .その場合、奇数の代わりに別の列に偶数を格納する必要があります。

VBA コードの説明

Dim iArray As Variant

変数を定義します 配列の .

With ThisWorkbook.Worksheets("Column")

ワークシート名を宣言する (「 」は、データセットのシート名です)。データセットに従ってシート名を記述する必要があります。

iArray = Split(Join(Application.Transpose(.Range(.Cells(5, 4), .Cells(.Range("D:D").Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row, 4)).Value)))

定義された配列を埋める 条件が保存されている 列 D セル D5 から .

.Range("B4").AutoFilter Field:=1, Criteria1:=iArray, Operator:=xlFilterValues
End With
  • フィルター列 B セル B4 から開始 保存された複数の基準に従って 定義された配列で .
  • その後、 ワークシート .

続きを読む: オートフィルターがオンになっているかどうかを確認する Excel VBA (4 つの簡単な方法)

2. Excel の同じ列に AND 演算子を使用して AutoFilter に VBA を実装する

xLAND Excel の演算子は 2 つの基準で機能します。 両方の基準を満たす値を返します .

ここで、次のデータセットを考えてみましょう。 列 B 乱数で構成され、 D4:E5 の範囲に 2 つの条件を挿入しました .条件はB列 フィルタリングする必要があります 2以上の数字で (セル E4 に格納された値 ) 9 以下 (セル E5 に保存された値 )。 列 B をフィルタリングします AND 演算子でこれらの条件に従って Excel VBA で .

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

それを取得する手順を以下に示します。

手順:

  • 前と同じように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
  • 次に、コピー 次のコードと貼り付け それをコード ウィンドウに表示します。
Sub AutoFilterOnSameColumnWithAND()
With ThisWorkbook.Worksheets("AND")
    .Range("B4").AutoFilter Field:=1, Criteria1:=">=" & .Range("E4").Value, Operator:=xlAnd, Criteria2:="<=" & .Range("E5").Value
End With
End Sub

コードを実行する準備ができました。

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

  • その後、実行 上記のセクションで示したマクロ。結果を下の画像に示します。

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

コードの実行が成功すると、列 B 2 から 9 までの値でフィルタリングされます 、両方の条件を満たす

VBA コードの説明

With ThisWorkbook.Worksheets("AND")
 .Range("B4").AutoFilter Field:=1, Criteria1:=">=" & .Range("E4").Value, Operator:=xlAnd, Criteria2:="<=" & .Range("E5").Value
End With

このコードは、

  • 最初にワークシート名を宣言します (「AND 」は、データセットのシート名です)。データセットに従ってシート名を記述する必要があります。
  • その後、列 B をフィルタリング セル B4 から開始 保存された複数の基準に従って セル E4 内 と E5 xlAnd で オペレーター。
  • その後、 ワークシート .

続きを読む: [修正]:Range クラスの AutoFilter メソッドが失敗しました (5 つの解決策)

3. Excel の同じ列に OR 演算子を使用してマクロをオートフィルターに適用する

xlOR Excel の演算子は 2 つの基準で機能します。 xLAND とは異なります 、基準のいずれかを満たす値を返します .

ここで、次のデータセットを考えてみましょう。 列 B 乱数で構成され、 D4:E5 の範囲に 2 つの条件を挿入しました .条件はB列 12以上の数値でフィルタリングする必要があります (セル E4 に格納された値 ) または 7 以下 (セル E5 に保存された値 )。 列 B をフィルタリングします OR 演算子を使用してこれらの条件に従って Excel VBA で .

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

その方法の手順を見てみましょう。

手順:

  • 前に示したように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
  • 次に、コピー 次のコードと貼り付け それをコード ウィンドウに表示します。
Sub AutoFilterOnSameColumnWithOR()
With ThisWorkbook.Worksheets("OR")
    .Range("B4").AutoFilter Field:=1, Criteria1:="<" & .Range("E5").Value, Operator:=xlOr, Criteria2:=">" & .Range("E4").Value
End With
End Sub

コードを実行する準備ができました。

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

  • 後で、走る マクロを実行し、次の画像を見て出力を確認してください。

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

コードの実行が成功すると、列 B 12 以上または 7 以下の値でフィルタリングされます .

VBA コードの説明

With ThisWorkbook.Worksheets("OR")
 .Range("B4").AutoFilter Field:=1, Criteria1:="<" & .Range("E5").Value, Operator:=xlOr, Criteria2:=">" & .Range("E4").Value
End With

このコードは、

  • 最初にワークシート名を宣言します (「または 」は、データセットのシート名です)。データセットに従ってシート名を記述する必要があります。
  • その後、列 B をフィルタリング セル B4 から開始 保存された複数の基準に従って セル E4 内 と E5 xlOr で オペレーター。
  • その後、 ワークシート .

続きを読む: Excel VBA で表示されている行をオートフィルターしてコピーする方法

4.同じフィールドの複数のテキスト値に基づいて AutoFilter に VBA を埋め込む

次のデータセットを見てください。 列 B 国名で構成されています .マクロでハードコーディングする国に基づいて、この列をフィルター処理します。 列をオートフィルタします オーストラリアの 2 つの国名に基づく とイングランド .

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

実行する手順を以下に示します。

手順:

  • まず、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
  • 次に、コピー 次のコードと貼り付け それをコード ウィンドウに表示します。
Sub AutoFilterOnSameColumnWithMultipleTexts()
Dim iArray As Variant
iArray = Array("Australia", "England")
Range("B4", Range("B" & Rows.Count).End(xlUp)).AutoFilter 1, iArray, xlFilterValues, , 0
End Sub

コードを実行する準備ができました。

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

  • 次に、走る マクロ。次の画像で結果を確認してください。

Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)

その結果、列 B 非常に多くの国で満たされていましたが、現在はフィルタリングされています 2 つの国名のみ – オーストラリア および イングランド – コードで提供したもの。

VBA コードの説明

Dim iArray As Variant

変数を定義します 配列の .

iArray = Array("Australia", "England")

ストア テキスト基準 フィルタリングに基づいて 定義された配列で実行されます .

Range("B4", Range("B" & Rows.Count).End(xlUp)).AutoFilter 1, iArray, xlFilterValues, , 0

列をフィルタ B セル B4 から開始 ハードコードされた複数のテキスト基準に従って 定義された配列で .

続きを読む: Excel で VBA を使用して特定の値と等しくない値をオートフィルター処理する方法

結論

結論として、この記事では 同じフィールド (列) で複数の条件を使用してオートフィルター処理する ための 4 つの方法を紹介しました。 VBA マクロを使用して Excel で .この記事があなたにとって非常に有益であることを願っています。このトピックに関する質問はお気軽にどうぞ。

関連記事

  • VBA オートフィルター:最小から最大への並べ替え (3 つの方法)
  • Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

  1. Excel で複数の色でフィルター処理する方法 (2 つの簡単な方法)

    この記事では、Microsoft Excel で複数の色でフィルター処理する方法について説明します .通常、特定の列を複数の色でフィルター処理すると、データセットに存在する他の列は、最初に適用されたフィルターに従ってフィルター処理されすぎます。複数の色でデータをフィルタリングするのは少し難しいです。ただし、2 つお見せします フィルタリングの適切な方法 投稿者 Excel の複数の色 適切なイラストで効果的です。 Excel で複数の色でフィルター処理する 2 つの適切な方法 複数の営業担当者を含む以下のデータセットがあるとします。 名前と販売地域、販売担当者の収益 B、C、 列に記載され

  2. Excel で列を区切り記号付きのテキストに変換する方法

    Excel の列にリストが必要になることがよくあります 水平方向に配置するシート。その横方向の配置でテキストを区切るには、区切り記号が必要です。コンマを区切り文字としてよく使用します。 エクセル 区切り記号で区切られたテキストに列を配置する直接的な方法は提供しません。この記事では、Excel で列を区切り記号付きのテキストに変換する方法を紹介します。 . 練習用ワークブックはこちらからダウンロードできます。 Excel で区切り記号を使用して列をテキストに変換する 5 つの簡単な方法 この記事では、Excel で区切り記号付きのテキストに変換する方法について説明します。 5 で