VBA에서 여러 기준을 사용하는 자동 필터

Iqra Hasnain 2022년6월2일
VBA에서 여러 기준을 사용하는 자동 필터

AutoFilter를 사용하여 VBA에서 셀 범위 또는 Excel 테이블을 필터링하는 방법을 소개합니다.

VBA에서 여러 기준을 사용하는 자동 필터

VBA 코드에서 작업하는 동안 Excel에서 필터를 사용해야 하는 상황이 많이 있습니다. 특정 날짜의 판매 데이터를 얻으려면 VBA의 날짜 열에 날짜 필터를 사용해야 합니다.

VBA는 AutoFilter를 사용하여 이 문제에 대한 솔루션을 제공합니다.

사용자가 데이터를 필터링할 수 있도록 범위에서 자동 필터를 사용하는 방법을 이해하는 것부터 시작하겠습니다. 먼저 아래와 같이 몇 가지 데이터를 가지고 시작하겠습니다.

VBA에서 자동 필터를 사용할 샘플 데이터

아래와 같이 시트의 Range 방법을 사용하여 AutoFilter를 적용할 범위를 선택합니다.

# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter
End Sub

출력:

VBA의 샘플 데이터에서 활성화된 자동 필터

범위의 헤더를 지정해야 하며, 이 경우에는 A1:C1이고 객체 범위의 AutoFilter 기술을 활용하여 자동 필터를 적용해야 합니다. 그러면 위와 같이 범위에 대한 필터가 활성화됩니다.

VBA의 필드 및 기준이 있는 자동 필터

VBA를 사용하면 특정 값으로 특정 필드를 필터링할 수도 있습니다. 이를 달성하려면 필터를 적용할 필드를 정의해야 합니다.

또한 필터를 적용할 기준을 정의합니다. 노트북에 대해서만 두 번째 열을 필터링하려면 아래와 같이 코드를 실행할 수 있습니다.

# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:="Laptop"
End Sub

출력:

VBA의 일부 기준과 함께 자동 필터 사용

위의 예에서 볼 수 있듯이 필드와 기준의 값을 정의하여 원하는 값으로 AutoFilter를 사용할 수 있었습니다. 결과는 VBA 코드에서 제공한 기준을 사용하는 필터와 함께 위에 표시됩니다.

VBA에서 여러 기준을 사용하는 자동 필터

필터에 대해 여러 기준을 설정하려고 한다고 가정합니다. 이 경우 하나의 필드를 여러 값으로 필터링해야 할 때 AutoFilter에서 다른 매개변수 연산자를 사용하여 이를 수행할 수 있습니다.

아래와 같이 xlFilterValues 연산자를 사용하고 배열의 Criteria 매개변수에 값을 전달하여 이러한 값을 기반으로 필터링할 수 있습니다.

# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:=Array("Laptop", "iPhone"), _
                                 Operator:=xlFilterValues
End Sub

출력:

VBA의 샘플 데이터에서 여러 값으로 활성화된 자동 필터

위의 예에서 볼 수 있듯이 코드를 실행하면 AutoFilter가 여러 값으로 활성화되어 원하는 결과를 표시합니다.

VBA에서 여러 기준으로 날짜 범위 자동 필터링

날짜 범위를 기반으로 AutoFilter를 사용하거나 특정 날짜 범위 사이의 데이터를 가져오려는 경우 xlAnd 연산자와 함께 여러 Criteria 매개변수를 사용해야 합니다.

예제를 살펴보고 아래 날짜와 함께 샘플 시트에 더 많은 데이터를 추가해 보겠습니다.

VBA의 날짜 범위와 함께 자동 필터를 사용하는 샘플 데이터

위의 데이터에서 볼 수 있듯이 날짜가 있는 새 열을 추가했습니다. 아래와 같이 이 날짜를 사용하여 5월 20일과 25일 사이의 데이터를 필터링합니다.

#VBA
Sub test()
Sheet1.Range("A1:D1").AutoFilter Field:=1, Criteria1:=">=05/20/2022", Operator:=xlAnd, Criteria2:="<=05/25/2022", Operator:=xlFilterValues
End Sub

출력:

VBA의 샘플 데이터에 대한 날짜 범위로 활성화된 자동 필터

위의 예에서 볼 수 있듯이 두 가지 날짜 기준을 제공하고 Operator 매개변수를 xlAnd 값과 함께 사용하여 날짜 범위의 데이터를 쉽게 필터링할 수 있습니다.

일부 Operator 매개변수 및 해당 설명은 아래에 설명되어 있습니다.

  1. xlAnd 연산자는 Criteria1Criteria2와 같은 여러 기준으로 필터링할 수 있습니다.
  2. xlOr 연산자는 하나의 기준 또는 다른 기준으로 필터링할 수 있습니다.
  3. xlTop10Items 연산자는 기준에서 가장 높은 순위 값의 특정 수를 필터링하는 데 도움이 됩니다.
  4. xlBottom10Items 연산자는 기준에서 가장 낮은 순위 값의 특정 수를 필터링하는 데 도움이 됩니다.
  5. xlTop10Percent 연산자는 기준에서 가장 높은 순위 값의 특정 백분율을 필터링하는 데 도움이 됩니다.
  6. xlBottom10Percent 연산자는 기준에서 가장 낮은 순위 값의 특정 백분율을 필터링하는 데 도움이 됩니다.
  7. xlFilterValues 연산자는 여러 값으로 기준을 필터링하는 데 도움이 됩니다.
  8. xlFilterCellColor 연산자는 셀 색상을 기반으로 기준을 필터링하는 데 도움이 됩니다.
  9. xlFilterFontColor 연산자는 글꼴 색상을 기반으로 기준을 필터링하는 데 도움이 됩니다.
  10. xlFIlterIcon 연산자는 글꼴 아이콘을 기반으로 기준을 필터링하는 데 도움이 됩니다.
  11. xlFilterDynamic 연산자는 동적 값을 필터링하는 데 도움이 됩니다.