関数・メソッド

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

複数の列から抽出

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

例えば

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

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

 

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

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

名前 日付 売上個数
Aさん 2025/6/1 50
Bさん 2025/6/1 30
Aさん 2025/6/2 70
Cさん 2025/6/2 60
Aさん 2025/6/3 20
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条件になります。

 

関連記事

コメント