Excel VBA | データ抽出(Offset × 条件分岐 × Autofilter)の黄金パターン集

VBA
スポンサーリンク

ここでは Offset × 条件分岐 × Autofilter を組み合わせて「表から条件に合致するデータを抽出し、隣列や下段に出力する」黄金パターンをまとめます。
Range.AutoFilter を活用することで、複雑な条件抽出を高速に処理できます。


基本パターン 10選

1. 特定値を抽出(商品カテゴリ=FRU)

Range("A1:D20").AutoFilter Field:=1, Criteria1:="FRU"
VB

👉 商品カテゴリ列で「FRU」を抽出。


2. 数値条件抽出(売上100以上)

Range("A1:D20").AutoFilter Field:=2, Criteria1:=">=100"
VB

👉 売上列で100以上を抽出。


3. 範囲条件抽出(売上100〜500)

Range("A1:D20").AutoFilter Field:=2, Criteria1:=">=100", Operator:=xlAnd, Criteria2:="<=500"
VB

👉 売上列で100〜500の範囲を抽出。


4. 複数条件抽出(部署=営業 or 開発)

Range("A1:D20").AutoFilter Field:=3, Criteria1:="=営業", Operator:=xlOr, Criteria2:="=開発"
VB

👉 部署列で「営業」「開発」を抽出。


5. 空白セル抽出

Range("A1:D20").AutoFilter Field:=4, Criteria1:="="
VB

👉 指定列で空白セルを抽出。


6. 非空白セル抽出

Range("A1:D20").AutoFilter Field:=4, Criteria1:="<>"
VB

👉 指定列で非空白セルを抽出。


7. 部分一致抽出(顧客名に「山田」を含む)

Range("A1:D20").AutoFilter Field:=1, Criteria1:="=*山田*"
VB

👉 顧客名列で「山田」を含むセルを抽出。


8. 日付条件抽出(2025年11月以降)

Range("A1:D20").AutoFilter Field:=2, Criteria1:=">=2025/11/01"
VB

👉 日付列で2025年11月以降を抽出。


9. エラー値抽出(#N/A)

Range("A1:D20").AutoFilter Field:=3, Criteria1:="#N/A"
VB

👉 指定列でエラー値を抽出。


10. 抽出結果を隣列へコピー

Dim rng As Range
Range("A1:D20").AutoFilter Field:=2, Criteria1:=">=100"
Set rng = Range("A2:D20").SpecialCells(xlCellTypeVisible)
rng.Offset(0, 5).Value = rng.Value
VB

👉 抽出結果を右隣ブロックへコピー。


✅ まとめ

  • Offset → 抽出結果を隣列や下段へ展開
  • 条件分岐 → 数値判定・文字列判定・日付判定・空白判定などを組み合わせ
  • AutoFilter → 高速に抽出処理を実現、複数条件や範囲条件も可能
  • 黄金パターン → カテゴリ抽出・範囲抽出・複数条件・空白/非空白・部分一致・日付条件など

💡 この「データ抽出 × Offset × 条件分岐 × Autofilter」パターン集を使えば、売上表・勤怠表・在庫表などの 条件抽出・分析 を一瞬で自動化できます。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました