엑셀 고급필터 & 콤보박스 활용법 — 조건 검색 매크로 만들기
안녕하세요! 오늘은 엑셀에서 고급 필터 기능과 콤보박스, 매크로를 활용하여 원하는 조건으로 데이터를 검색하는 방법을 기초부터 정리해보겠습니다.
처음 배우는 분도 따라 하기 쉽게 설명하고, 실제 VBA 매크로 코드도 제공해드릴 테니 차근차근 따라오세요!
콤보박스 만들기
콤보박스란?
여러 값 중 하나를 선택할 수 있는 드롭다운 박스입니다.
만드는 방법
-
개발도구 → 삽입 → 양식 컨트롤 → 콤보박스
-
그룹상자(GroupBox)를 함께 사용하여 콤보박스와 라디오 버튼 등을 깔끔하게 배치 가능
콤보박스 속성 설정
-
마우스 우클릭 → 컨트롤 서식
-
입력 범위: 콤보박스에 표시할 값 목록
-
셀 연결: 선택한 값의 순서번호를 저장할 셀 지정
고급 필터 적용하기
고급 필터란?
데이터를 특정 조건에 따라 필터링해 다른 장소로 복사하는 고급 기능.
이름 상자 설정
-
전체 데이터 범위를 선택하고 이름을
검색대상
으로 설정
(Ctrl+Shift+* 단축키로 빠르게 전체 데이터 선택 가능)
조건 입력
조건 시트에 성별, 종교, 체질량 지수 기준을 아래 수식으로 설정
-
성별:
=CHOOSE(B3,"M","F","")
-
종교:
=IF(C3=1,"",INDEX(G3:G7,C3))
-
체질량 지수 상한/하한
= ">= " & CHOOSE(D3,0,0,18.5,23,25,30)
= "< " & CHOOSE(D3,100,18.5,23,25,30,100)
조건 검색 매크로 만들기
매크로 기록 방법
개발도구 → 매크로 기록 → 이름 : 검색, 단축키 : Ctrl+Shift+S
고급 필터 설정
-
데이터 → 고급 필터
-
‘다른 장소에 복사’ 선택
-
목록범위:
검색대상
-
조건범위:
조건!$B$7:$E$8
-
복사위치:
결과!$A$8:$G$185
기록 후 매크로 중지
매크로 알고리즘 확인
VBA 코드
코드 설명
-
AdvancedFilter
: 고급 필터 실행 -
Action:=xlFilterCopy
: 다른 장소에 복사 -
CriteriaRange
: 조건 범위 -
CopyToRange
: 결과 복사 위치 -
Unique
: 중복 제거 여부 (False: 중복 허용)
검색 전 기존 데이터 삭제 코드 추가
이 코드를 검색()
매크로의 첫 줄에 추가하여 검색 전 기존 결과 삭제 가능
중요 내용 정리
-
콤보박스로 사용자가 필터 조건 선택 가능
-
고급 필터로 조건 검색하여 다른 시트로 결과 복사
-
조건 시트에 성별, 종교, 체질량지수 값 수식으로 자동 설정
-
AdvancedFilter 매크로로 자동화 가능
-
검색 결과 초기화 코드 추가로 검색 버튼 클릭 시 결과 초기화 가능
객관식 문제
1. 콤보박스 설정 시 입력 범위와 셀 연결의 역할은?
① 콤보박스 위치를 조절
② 선택한 값의 번호를 저장하고 표시할 값을 설정
③ 데이터 정렬을 실행
④ 고급필터를 자동 실행
정답: ②
해설: 콤보박스는 목록과 선택 값 위치 설정 필요
2. 고급 필터 매크로 실행 시 Action 값으로 ‘xlFilterCopy’를 지정하면 어떤 작업이 수행되는가?
① 같은 장소에서 필터
② 다른 장소에 필터 결과 복사
③ 중복 제거
④ 필터 초기화
정답: ②
해설: xlFilterCopy는 결과를 다른 범위에 복사
3. 다음 중 고급 필터 조건 범위의 설정으로 옳은 것은?
① 검색대상
② 조건!$B$7:$E$8
③ 결과!$A$8:$G$185
④ A1:G185
정답: ②
해설: 조건범위는 조건이 입력된 셀 범위