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

VBA를 활용한 엑셀 데이터 필터링 방법

by 포탈메이커 2023. 6. 26.

VBA를 활용한 엑셀 데이터 필터링 방법

엑셀은 데이터를 다루는 데 있어 매우 중요한 역할을 합니다. 그리고 VBA를 사용하면 엑셀 데이터를 더욱 효율적으로 처리할 수 있습니다. 이번에는 VBA를 활용한 엑셀 데이터 필터링 방법에 대해 알아보겠습니다.

 

1. 필터링이란?

필터링은 데이터를 조건에 맞게 검색하여 표시하는 기능입니다. 필터링을 사용하면 큰 데이터셋에서 사소한 데이터를 찾는 것이 쉬워집니다.


2. VBA에서 필터링 사용하기

VBA에서는 Range 객체의 AutoFilter 메서드를 사용하여 필터링을 적용할 수 있습니다. AutoFilter 메서드는 조건에 맞는 데이터만 필터링하여 보여주는 기능을 합니다.

필터링 기능을 사용하기 위해서는 먼저 AutoFilter 메서드를 호출할 데이터가 들어있는 Range 객체를 선택해야 합니다. 그리고 마지막으로 필터를 적용하면 됩니다.

Sub FilterData()
    ' Select the range to be filtered
    Range("A1:D1").AutoFilter
    
    ' Apply the filter
    Range("A1:D1").AutoFilter Field:=2, Criteria1:=">30"
End Sub

위 코드는 A1:D1 범위에 필터링을 적용하는 예제입니다. 2번째 필드를 기준으로 30 이상인 데이터만 필터링하여 보여줍니다.

여기서 Criteria1 인자를 사용하여 필터링 조건을 지정하는 것이 중요합니다. 이 값은 문자열로 지정할 수 있습니다. 조건이 여러 개인 경우에는 Criteria2, Criteria3 등을 사용합니다.


3. 여러 개의 필터 적용하기

여러 개의 필터를 적용하는 것도 매우 쉽습니다. 필터링할 범위와 필드 번호, 조건값을 각각 배열에 저장해두고 필요한 만큼 필터링하면 됩니다.

아래 코드는 필터링할 범위와 필드 번호, 조건값을 배열에 저장하고 필요한 만큼 필터링하는 예제입니다.

Sub MultipleFilters()
    Dim rangeToFilter As Range
    Dim criteriaArr As Variant
    Dim i As Integer

    ' Select the range to be filtered
    Set rangeToFilter = Range("A1:D1")

    ' Store filtering criteria
    criteriaArr = Array(2, ">30", 4, "Male")

    ' Apply filters
    For i = LBound(criteriaArr) To UBound(criteriaArr) Step 2
        rangeToFilter.AutoFilter Field:=criteriaArr(i), Criteria1:=criteriaArr(i + 1)
    Next i
End Sub

위 코드는 A1:D1 범위를 선택하고 2번째 필드에서 30 이상, 4번째 필드에서 성별이 "Male"인 데이터를 필터링하는 예제입니다.


4. 필터링 조건 초기화하기

필터링을 적용한 후에는 반드시 필터링을 해제해주어야 합니다. 필터링 조건을 초기화할 때는 ShowAllData 메서드를 사용합니다.

Sub ClearFilter()
    ' Show all data, clearing any applied filters
    ActiveSheet.AutoFilter.ShowAllData
End Sub

5. 마치며

VBA를 사용하면 엑셀 데이터를 더욱 효율적으로 처리할 수 있습니다. 이번에는 VBA를 활용한 엑셀 데이터 필터링 방법에 대해 알아보았습니다. 필터링은 데이터를 좀 더 쉽게 관리할 수 있도록 도와주는 매우 유용한 기능입니다. VBA를 사용하여 필터링을 적용해보세요.



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

행복한 하루 되세요!