본문 바로가기
■ 칼퇴를 위한 VBA : 사례/- VBA for 엑셀

VBA 코드로 엑셀 데이터 필터링 자동화하기

by 포탈메이커 2023. 7. 25.

VBA 코드로 엑셀 데이터 필터링 자동화하기

 엑셀에서 반복적인 데이터 필터링 작업은 시간이 많이 소요되고, 때로는 오류가 발생할 수도 있습니다. 이러한 작업을 효율적으로 처리하기 위해 VBA(Visual Basic for Applications)를 사용하여 데이터 필터링을 자동화할 수 있습니다. VBA를 사용하면 복잡한 필터링 규칙을 쉽게 적용하고, 다양한 데이터 조건에 맞게 유연하게 조정할 수 있습니다.

이번 포스팅에서는 엑셀 데이터 필터링을 자동화하는 방법에 대해 알아보겠습니다.

 

칼퇴키트, 업무용 도구모음

칼퇴를 위해 꼭 필요한 도구 모음을 제공합니다. 당장의 업무에 필요한 순간 사용하는 가벼운 메모장, 계산기, 변환기 등

portalmaker.backtohome.kr

 

 

1. VBA를 이용한 기본 데이터 필터링

 

엑셀의 `AutoFilter` 메소드를 사용하여 특정 조건에 따라 데이터를 자동으로 필터링하는 기본적인 VBA 스크립트는 다음과 같습니다. 

Sub AutoFilterData()

    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Sheet1")

 

    ' 필터 초기화

    ws.AutoFilterMode = False

 

    ' A1에서 D100 범위에 데이터 필터 적용

    With ws.Range("A1:D100")

        .AutoFilter Field:=4, Criteria1:=">1000"  ' 4번 필드(D열)의 값이 1000 초과인 항목 필터

    End With

End Sub

 

위 코드는 "Sheet1" "A1:D100" 범위에서 D(4번 필드)의 값이 1000을 초과하는 데이터만 필터링합니다.


2. 복수 조건 필터링

 복수의 조건을 적용하여 더 세밀하게 데이터를 필터링할 수 있습니다. 예를 들어, 하나의 열에 대해 두 가지 조건을 적용하려면 다음과 같이 스크립트를 작성할 수 있습니다. 

Sub MultiCriteriaFilter()

    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Sheet1")

 

    ws.AutoFilterMode = False

 

    With ws.Range("A1:D100")

        .AutoFilter Field:=2, Criteria1:=">=10", Operator:=xlAnd, Criteria2:="<=20"

    End With

End Sub

 

이 코드는 B(2번 필드) 10 이상 20 이하의 값을 가진 데이터를 필터링합니다.


3. 복합 필터링

 여러 열에 걸쳐 각기 다른 조건을 적용하는 복합 필터링도 VBA를 통해 수행할 수 있습니다. 예를 들어, 다음과 같은 코드는 여러 조건을 동시에 적용합니다. 

Sub ComplexFilter()

    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Sheet1")

 

    ws.AutoFilterMode = False

 

    With ws.Range("A1:D100")

        .AutoFilter Field:=1, Criteria1:="=*abc*"  ' A열에 'abc'를 포함

        .AutoFilter Field:=4, Criteria1:=">1000"   ' D열의 값이 1000 초과

    End With

End Sub

 

이 스크립트는 A열에 "abc"를 포함하고, 동시에 D열의 값이 1000을 초과하는 행만을 필터링합니다.


4. 마치며

 

VBA를 사용하여 엑셀 데이터 필터링을 자동화함으로써, 데이터 처리 작업의 속도와 정확성을 향상시킬 수 있습니다. 이 방법은 복잡한 데이터 세트를 빠르게 분석하고, 결과를 효과적으로 도출하는 데 도움이 됩니다. VBA 스크립트는 사용자의 필요에 따라 다양하게 수정하고 확장할 수 있어, 엑셀 작업의 유연성을 크게 높여줍니다.



포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!

행복한 하루 되세요!