VBAのAutoFilter代わりにFILTER関数で条件抽出する方法は?
結論
FILTER関数で条件指定するとVBAのAutoFilterと同等の抽出が可能
詳しい解説
VBAでRange.AutoFilterメソッドを使っていた条件抽出は、Excel 2021/365のFILTER関数で置き換えられます。`=FILTER(データ範囲, 条件列=条件値, "該当なし")`のように記述すると、マクロなしで動的に絞り込み結果が更新されます。複数条件の場合は`(条件1)*(条件2)`で論理積、`(条件1)+(条件2)`で論理和を表現できます。VBAと違いスピル機能で自動的に結果範囲が拡張されるため、コピペや削除の手間がありません。
執筆・検証:田中 けんた|Excel歴15年・MOS資格保持
バージョン対応
| Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|
| 非対応 | 非対応 | 対応 | 対応 | 対応 |
実務での使用例
売上1000以上の行を抽出
売上1000以上の行を抽出
=FILTER(A2:D100, C2:C100>=1000, "該当なし")部署が"営業"かつ売上1000以上
部署が"営業"かつ売上1000以上
=FILTER(A2:D100, (B2:B100="営業")*(C2:C100>=1000))