VBAのAutoFilter代わりにFILTER関数で条件抽出する方法は?
VBAでRange.AutoFilterメソッドを使っていた条件抽出は、Excel 2021/365のFILTER関数で置き換えられます。`=FILTER(データ範囲, 条件列=条件値, "該当なし")`のように記述すると、マクロなしで動的に絞り込み結果が更新されます。複数条件の場合は`(条件1)*(条件2)`で論理積、`(条件1)+(条件2)`で論理和を表現できます。VBAと違いスピル機能で自動的に結果範囲が拡張されるため、コピペや削除の手間がありません。
📊 バージョン対応
2016
❌
非対応
2019
❌
非対応
2021
✅
対応
365
✅
対応
📋 実務での使用例
💼 売上1000以上の行を抽出
売上1000以上の行を抽出
=FILTER(A2:D100, C2:C100>=1000, "該当なし")💼 部署が"営業"かつ売上1000以上
部署が"営業"かつ売上1000以上
=FILTER(A2:D100, (B2:B100="営業")*(C2:C100>=1000))VBA代替FILTER条件抽出マクロなし
📄
動的配列関数 移行マップ
旧関数 → 新関数の書き換え一覧(2021/365対応)
準備中※ PDFは現在作成中です。近日公開予定