複数の列から抽出
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条件になります。



コメント