Excel VBAを使用した複数列に跨る複合フィルタの作成と業務効率化

この記事では、Excel VBAを用いて複数列に跨る複合フィルタを作成し、業務効率化を図る方法について詳しく解説します。初心者向けに具体的なコード例とその詳細な解説、さらには応用例も含めてご紹介します。この手法は、特に大量のデータを効率よく分析、整理する必要があるビジネスシーンで役立ちます。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

VBAで複合フィルタを作成する理由

Excelのフィルタ機能は非常に便利ですが、複数の列にまたがる複雑な条件でデータを絞り込む場合、手動で操作すると非常に手間がかかります。VBAを使用することで、このような複合フィルタを一度設定すれば、ボタン一つで瞬時にデータをフィルタリングできるようになります。

手動操作のデメリット

1. 時間がかかる
2. 操作ミスが発生しやすい
3. 再利用性が低い

基本的な複合フィルタのVBAコード

ここでは、ExcelのシートにあるA列とB列を対象に、「A列が10以上でB列が”OK”」という条件でフィルタリングする基本的なVBAコードを示します。


Sub ComplexFilter()
    ' A列が10以上で、B列が"OK"であるデータをフィルタリング
    Worksheets("Sheet1").Range("A1:B10").AutoFilter _
        Field:=1, Criteria1:=">=10", Operator:=xlAnd, _
        Field:=2, Criteria2:="=OK"
End Sub

コードの解説

– `Worksheets(“Sheet1”).Range(“A1:B10”).AutoFilter`:`Sheet1`のA1からB10までの範囲を自動フィルタリングします。
– `Field:=1, Criteria1:=”>=10″`:1つ目のフィールド(A列)に対する条件は「10以上」です。
– `Operator:=xlAnd`:AND条件でフィルタリングします。
– `Field:=2, Criteria2:=”=OK”`:2つ目のフィールド(B列)に対する条件は「OK」です。

応用例

応用例1:日付と文字列の複合フィルタ


Sub DateAndStringFilter()
    ' A列が2023/9/12で、B列が"NG"であるデータをフィルタリング
    Worksheets("Sheet1").Range("A1:B10").AutoFilter _
        Field:=1, Criteria1:="=2023/9/12", Operator:=xlAnd, _
        Field:=2, Criteria2:="=NG"
End Sub

応用例2:複数の条件(OR条件)


Sub MultipleConditions()
    ' A列が10または20であるデータをフィルタリング
    Worksheets("Sheet1").Range("A1:A10").AutoFilter _
        Field:=1, Criteria1:=Array("10", "20"), Operator:=xlFilterValues
End Sub

応用例3:部分一致のフィルタ


Sub PartialMatch()
    ' B列が"Test"を含むデータをフィルタリング
    Worksheets("Sheet1").Range("B1:B10").AutoFilter _
        Field:=1, Criteria1:="=*Test*"
End Sub

まとめ

Excel VBAを使用して複数列に跨る複合フィルタを設定することで、手動でのフィルタリング作業に比べて高度なフィルタリングが可能になり、業務効率が大幅に向上します。特に、大量のデータを扱う場面でその効果を最大限に発揮します。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次