Excel VBA:範囲内に複数の基準がある高度なフィルター (5 つのメソッド)
大量のデータを処理し、一度に複数のフィルタを設定する必要がある場合、高度なフィルタリング エクセル 重宝します。コピーを削除してデータをクリーンアップするために適用することもできます。 高度なフィルタの適用中 、 VBA コードの実行ははるかに簡単です。このチュートリアルでは、VBA Advanced Filter を適用する方法を紹介します。 Excel の複数の基準範囲 .
Excel で範囲内に複数の基準がある VBA 高度なフィルターの 5 つの効果的な方法
以下のセクションでは、 5 について説明します。 VBA Advanced Filter を使用する方法 複数の基準。最初に、VBA Advanced Filter の構文を知っておく必要があるかもしれません .
VBA 高度なフィルタ構文:
- AdvancedFilter: 範囲オブジェクトを参照します。フィルターを適用する範囲を設定できます。
- アクション: xlFilterInPlace の 2 つのオプションを持つ必須の引数です。 または xlFilterCopy . xlFilterInPlace データセットがある場所で値をフィルタリングするために使用されます。 xlFilterCopy 別の目的の場所でフィルター値を取得するために使用されます。
- 基準範囲: 値がフィルタリングされる基準を表します。
- CopyToRange: は、フィルタ結果を保存する場所です。
- ユニーク: オプションの引数です。 True を使用します 引数を使用して、一意の値のみをフィルター処理します。それ以外の場合、デフォルトで False と見なされます .
下の画像では、実行するすべてのフィルターを適用するためのサンプル データ セットが提供されています。
1. Excel の範囲内の OR 基準に VBA 高度なフィルターを適用
最初の方法では、 OR を適用します VBA Advanced Filter を使用した基準 .たとえば、製品名 Cookies のデータをフィルタリングしたいとします。 そしてチョコレート . OR を適用するには 値を別の行に配置する必要があります。以下の手順に従ってタスクを実行してください。
ステップ 1:
- Alt キーを押します + F11 VBA マクロを開く .
- 挿入をクリックします。
- モジュールを選択します。
ステップ 2:
- 次に、次の VBA を貼り付けます OR を適用するコード。
Sub Apply_VBA_Advanced_Filter_for_OR_Criteria()
'Declare Variable for dataset range and for criteria range
Dim Dataset_Rng As Range
Dim Criteria_Rng As Range
'Set the location and range of datase range and criteria range
Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11")
Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16")
'Apply Advanced Filter to filter the dataset using the criteria
Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng
End Sub
<強い>
ステップ 3:
- 次に、プログラムを保存して F5 を押します 走る。
- したがって、下の画像に示すように、フィルタリングされた結果が得られます。
メモ。 プロセスを逆にするか、フィルタ ペーストをすべて削除して VBA を実行するには プログラム。
Sub Remove_All_Filter()
On Error Resume Next
'command to remove all the filter to show the previous dataset
ActiveSheet.ShowAllData
End Sub
- その結果、以前のバージョンのデータ セットを取得できます。
続きを読む:条件付きの高度なフィルターの Excel VBA の例 (6 つの条件)
2. Excel で範囲内の AND 条件に対して VBA 高度なフィルターを実行
前の方法と同様に、 VBA を実行します。 AND の高度なフィルタ 基準。価格が $0.65 の Cookie を知りたいとしましょう 下のスクリーンショットに示すように。 OR を適用する場合 値を別の列に配置する必要があります。 AND を適用するには 以下の手順に従ってください。
ステップ 1:
- VBA マクロを開くには 、 Alt を押します + F11
- VBA マクロを開いた後 、次の VBA を貼り付けます 新しいモジュールのコード
Sub Apply_VBA_Advanced_Filter_for_AND_Criteria()
'Declare Variable for dataset range and for criteria range
Dim Dataset_Rng As Range
Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11")
Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15")
'Apply Advanced Filter to filter the dataset using the criteria
Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng
End Sub
ステップ 2:
- F5 を押します 保存後にプログラムを実行する
- 最後に、フィルタリングされた結果を取得します。
続きを読む: Excel で高度なフィルタを使用してデータを別のシートにコピーする VBA
3. Excel で範囲内の AND 基準を使用した OR に VBA 高度なフィルターを利用する
OR を適用することもできます と AND 両方の基準を組み合わせます。たとえば、 Cookie の値を取得したいとします。 またはチョコレート 、ただし Cookie については 別の基準価格 $0.65 があります 適用されます。以下の手順に従ってください。
ステップ 1:
- 次の VBA を貼り付けます VBA マクロを開いた後のコード .
Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria()
'Declare Variable for dataset range and for criteria range
Dim Dataset_Rng As Range
Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11")
Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16")
'Apply Advanced Filter to filter the dataset using the criteria
Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng
End Sub
ステップ 2:
- 次に、最初に F5 を押してプログラムを保存します
- したがって、特定の AND を使用して値を見つけることができます。 および または。
続きを読む:Excel の 1 つの列で複数の条件に基づいて高度なフィルターを適用する
類似の読み方:
- Excel で複数の条件を使用した高度なフィルター (15 の適切な例)
- 動的高度フィルター Excel (VBA &マクロ)
- VBA で高度なフィルタを使用する方法 (ステップバイステップのガイドライン)
- Excel の基準範囲を使用した高度なフィルター (18 アプリケーション)
- Excel の高度なフィルターが機能しない (2 つの理由と解決策)
4. Excel で複数の基準を持つ一意の値に VBA 高度なフィルターを使用する
さらに、データ セットに重複がある場合は、フィルタリング中にそれらを削除できます。 ユニーク を追加します True への引数 一意の値のみを取得し、重複を削除します。概説された指示に従ってください。
ステップ 1:
- まず VBA を開きます Alt を押してマクロ + F11.
- 次の VBA を貼り付けます 新しいモジュールのコード
Sub Apply_VBA_Advanced_Filter_for_Unique_Values()
'Declare Variable for dataset range and for criteria range
Dim Dataset_Rng As Range
Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11")
Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16")
'Apply Advanced Filter to filter the dataset using the criteria
Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True
End Sub
ステップ 2:
- 次に F5 を押します 保存後にプログラムを実行します。
- したがって、一意の値のみを取得します。
続きを読む:Excel で一意のレコードのみに高度なフィルターを使用する方法
5.条件付きケースに対して VBA 高度なフィルターを実行
前の方法に加えて、数式を使用して条件を適用することもできます。たとえば、 合計価格 を見つけたいとします。 $100 を超えるもの .手順に従ってください。
ステップ 1:
- まず、VBA マクロ を開きます 、 Alt を押します + F11 .
- 新しいモジュールを選択 次の VBA コードを貼り付けます .
Sub Apply_VBA_Advanced_Filter_for_Formula()
'Declare Variable for dataset range and for criteria range
Dim Dataset_Rng As Range
Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11")
Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15")
'Apply Advanced Filter to filter the dataset using the criteria
Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng
End Sub
ステップ 2:
- 次に、プログラムを保存して F5 を押します ボタンをクリックして結果を確認してください。
メモ。 さらに、 xlFilterCopy アクション。 VBA を貼り付けるだけです コードを実行して Sheet6 で結果を取得します 範囲内 B4:E11 .
'Declare Variable for dataset range and for criteria range
Dim Dataset_Rng As Range
Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11")
Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15")
'Apply Advanced Filter to filter the dataset using the criteria
Dataset_Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11")
End Sub
- したがって、新しいワークシート 'Sheet6' で最終結果を確認します .
続きを読む:Excel で基準範囲にテキストが含まれる場合に高度なフィルターを使用する方法
結論
要約すると、 VBA の使い方が理解できたと思います。 Excel の高度なフィルタ 複数の基準範囲をフィルタリングします。これらの方法はすべて、データを教えて練習するために使用する必要があります。練習帳に目を通し、学んだことを使ってみましょう。皆様の多大なご支援のおかげで、私たちはこのようなセミナーを引き続き開催することに励まされています.
ご不明な点がございましたら、お気軽にお問い合わせください。以下のコメント セクションでご意見をお聞かせください。
Exceldemy スタッフがお客様のお問い合わせにできる限り迅速に対応いたします。
私たちと一緒に学び続けてください。
関連記事
- Excel の高度なフィルタ [複数の列と条件、数式とワイルドカードを使用]
- 高度なフィルターを使用して Excel で空白セルを除外する方法 (3 つの簡単なトリック)
- Excel VBA:範囲内の複数の基準を持つ高度なフィルター (5 つのメソッド)
- 高度なフィルタを適用して Excel の別の場所にコピーする方法
-
複数の区切り記号を含むテキスト ファイルを Excel にインポートする方法 (3 つの方法)
この記事では、 テキスト ファイル データをインポートする 方法について説明します。 複数の区切り記号を使用 Excel ワークシートに 3つの異なる方法を使用しています。 Excel の組み込み機能と VBA コードを使用してタスクを実行します。メソッドを明確に理解するために、例を詳しく見てみましょう。 複数の区切り記号を含むテキスト ファイルを Excel にインポートするための 3 つの適切な方法 複数の区切り記号を持つデータセットがあるとします テキスト ファイルで . データセット テキスト ファイルに このように見えます- データセット 販売の詳細を表します お店のため
-
Excel で複数の色でフィルター処理する方法 (2 つの簡単な方法)
この記事では、Microsoft Excel で複数の色でフィルター処理する方法について説明します .通常、特定の列を複数の色でフィルター処理すると、データセットに存在する他の列は、最初に適用されたフィルターに従ってフィルター処理されすぎます。複数の色でデータをフィルタリングするのは少し難しいです。ただし、2 つお見せします フィルタリングの適切な方法 投稿者 Excel の複数の色 適切なイラストで効果的です。 Excel で複数の色でフィルター処理する 2 つの適切な方法 複数の営業担当者を含む以下のデータセットがあるとします。 名前と販売地域、販売担当者の収益 B、C、 列に記載され