이 글에서 사용할 데이터 세트는 2022년 1월, 2월, 3월 동안의 날짜별 전자 제품 판매 수량을 담고 있습니다. 이 데이터를 활용해 특정 날짜 범위에 맞는 데이터만 추출하는 엑셀 고급 필터(Advanced Filter) 활용법을 두 가지 방법으로 자세히 알아보겠습니다.

방법 1 – 정렬 및 필터 옵션으로 날짜 범위 고급 필터 적용하기
단계별 진행 방법:
- 아래 그림과 같이 날짜(Date), 제품(Products), 판매 수량(Sales Qty.)라는 3개의 열 제목을 먼저 만듭니다.

- 날짜 열에는 적용하고 싶은 조건 또는 범위를 입력합니다. 여기서는 2022년 1월 31일 이후의 판매 데이터를 추출하겠습니다.
- F6 셀에 >1/31/2022를 입력합니다.
- 확인(OK)을 클릭합니다.

>1/31/2022는 2022년 1월 31일 이후의 날짜를 의미하는 조건입니다.
이제 이 조건을 바탕으로 실제 데이터를 필터링해 보겠습니다.
- 전체 데이터 범위 B4:D14를 선택합니다.
- 상단의 데이터(Data) 탭으로 이동한 뒤, 정렬 및 필터(Sort & Filter) 그룹에서 고급(Advanced)을 클릭합니다.

고급 필터(Advanced Filter) 대화상자가 열리면 다음과 같이 설정합니다.
- 다른 위치에 복사(Copy to another location) 옵션을 선택합니다.
- 목록 범위(List range)에는 앞서 선택한 전체 데이터 범위가 자동으로 표시됩니다.

- 조건 범위(Criteria Range) 입력란에 $F$4:$H$5를 입력합니다.
- 복사 위치(Copy to) 입력란에 $F$7을 입력합니다.
- Enter 키를 누르면 필터링된 결과가 출력됩니다.

- 조건은 언제든 변경할 수 있으며, 날짜 범위뿐 아니라 제품이나 판매 수량 기준으로도 고급 필터링을 손쉽게 적용할 수 있습니다.

방법 2 – 엑셀 VBA 매크로로 날짜 범위 고급 필터 자동화하기
반복적인 작업을 자동화하고 싶다면 VBA 코드를 활용하는 것이 효율적입니다.
단계별 진행 방법:
- 시작일(Start)과 종료일(End Date)이라는 2개의 열 제목을 만듭니다.

2022년 1월 판매 정보를 추출하려면 시작일에 1월 1일, 종료일에 1월 31일을 입력합니다.

- VBA 코드에서 조건(Criteria)을 올바르게 인식하려면 조건 영역의 헤더(열 제목)가 반드시 원본 데이터와 동일해야 합니다.
- F8 셀에 아래 수식을 입력합니다.

=">="&F5 수식은 F5 셀의 값을 가져와 조건을 생성합니다. 이 조건은 해당 값 이상을 의미하며, 결과적으로 F8의 조건은 2022년 1월 1일 이상으로 설정됩니다.
- G8 셀에는 아래 수식을 입력합니다.

="<="&G5 수식은 G5 셀의 값을 가져와 조건을 생성합니다. 이 조건은 해당 값 이하를 의미하며, 즉 G8의 조건은 2022년 1월 31일 이하로 설정됩니다.
- 이제 개발 도구(Developer) 탭으로 이동해 Visual Basic을 클릭합니다.

- Microsoft Visual Basic Application 창이 열리면 메뉴에서 삽입(Insert) >> 모듈(Module)을 차례로 클릭합니다.

- 생성된 모듈에 아래 코드를 그대로 입력합니다.
Sub myAdvancedFilterForDateRange()
Dim eb As Workbook
Dim es As Worksheet
Dim Rg As Range
Dim CRg As Range
Dim DRg As Range
Set eb = ThisWorkbook
Set es = eb.Worksheets("VBA Code")
Set Rg = es.Range("B4").CurrentRegion
Set CRg = es.Range("F7").CurrentRegion
Set DRg = es.Range("F10")
DRg.CurrentRegion.Clear
Rg.AdvancedFilter xlFilterCopy, CRg, DRg
End Sub

코드의 주요 구성 요소를 살펴보면 다음과 같습니다.
- Rg 변수는 데이터 세트의 시작 범위를, CRg 변수는 조건 영역의 시작 지점을, DRg 변수는 필터 결과가 표시될 시작 위치를 나타냅니다.
- DRg.CurrentRegion.Clear는 결과가 출력되기 전 해당 영역을 깨끗하게 비우는 역할을 합니다.
- Rg.AdvancedFilter xlFilterCopy, CRg, DRg 부분이 실제 고급 필터를 실행하는 명령문입니다.
- 모든 입력이 끝나면 아래 아이콘을 클릭해 코드를 실행합니다.

- 실행이 완료되면 2022년 1월의 판매 정보만 골라져 화면에 표시됩니다.

마무리
이처럼 엑셀 고급 필터는 간단한 조건 입력만으로 복잡한 날짜 범위 필터링을 처리할 수 있는 강력한 기능입니다. 메뉴를 활용하는 방법 1은 빠르고 직관적이며, VBA를 활용하는 방법 2는 반복 작업 자동화에 탁월합니다. 상황에 맞는 방법을 선택해 업무 효율을 높여 보세요.
연습용 워크북 다운로드
아래 워크북을 내려받아 직접 따라 하며 연습해 보세요.
<< 고급 필터 목록으로 돌아가기 | 엑셀 필터 | 엑셀 배우기
무료 엑셀 고급 연습 문제와 해답을 받아보세요!