関数・メソッド

複数の列から条件に一致したデータを抽出する【AutoFilterメソッド】【ExcelVBA】

複数の列から抽出

AutoFilterメソッドでデータを抽出する際に、
複数の列にまたがっている条件と一致したデータが欲しいとき…

例えば

「Aさんの売り上げ実績で、売上個数50以上のデータを抽出したい」

こういった場合は列ごとに条件を指定しなければなりません。
オートフィルタ機能は列ごとに抽出する機能なので、複数回AutoFilterメソッドを実行する必要があります。

 

2つの列に条件を指定したフィルターをかけるサンプルコード

まず、以下の簡単な表をExcelのA1セルにコピーしてください。

名前日付売上個数
Aさん2025/6/150
Bさん2025/6/130
Aさん2025/6/270
Cさん2025/6/260
Aさん2025/6/320
Public Sub Sample()

  'A列の「Aさん」を抽出する
  Range("A1").AutoFilter Field:=1, Criteria1:="Aさん"

  'C列の「50以上のデータ」を抽出する
  Range("A1").AutoFilter Field:=3, Criteria1:=">=50"

End Sub

Withを使ってひとまとめにするとわかりやすくなります。

Public Sub Sample2()

  With ActiveSheet.Range("A1")
    .AutoFilter Field:=1, Criteria1:="Aさん"
    .AutoFilter Field:=3, Criteria1:=">=50"
  End With

End Sub

 

注意点

  • 複数の列でフィルターをかけた場合、AND条件になります。

 

関連記事

コメント

タイトルとURLをコピーしました