- 최초 작성일: 1999-10-05
- 최종 수정일: 2026-09-29
- 조회수: 22 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 고급 필터Ⅰ
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
지난 강좌에서 설명드린 "필터"는 잘 되시지요? 이번 시간에는 "고급필터"에 대해 설명을 드립니다.
고급필터 기능은 알고 있으면 뼈가 되고 살이되는건데 잘 사용들을 않고 있는 것 같더군요. 이번 기회에 완전히 마스터 하시기 바랍니다.
어제의 자료 중에서 지점명이 "강남지점"이면서 자체 판매 금액이 120000000원 이상인 자료들만 뽑아야 할 경우가 있다면 어떻게 해야 할까요? 물론 자동필터를 선택한 후 지점명 필드 옆의 버튼을 눌러 강남지점을 선택해 주고, 또 자체 판매 금액 옆의 버튼을 눌러 조건을 주고… 하는 식으로 해도 되겠지만 번거롭겠지요? 특히 조건을 다섯가지 정도 준다거나 and 조건이 아닌 or 조건으로 검색해야 한다거나 할 때는 자동 필터로서는 한계가 있는 것입니다.
지점명이 "강남지점"이면서(즉 AND 조건으로 연결됨) 자체 판매 금액이 120000000원 이상인 레코드들만을 필터링하는 경우를 통해 고급 필터 기능을 알아보도록 합니다.
고급 필터Ⅰ
핵심 요약
- 고급 필터는 자동 필터보다 복잡한 여러 조건을 조건 범위에 따로 작성해 검색할 수 있습니다.
- 원본의 필드명을 조건 범위의 머리글로 사용하고 같은 행에 조건을 두면 AND 조건으로 처리할 수 있습니다.
- 다른 장소에 복사를 선택하면 원본을 유지하면서 조건에 맞는 결과만 별도 위치에 추출할 수 있습니다.
(1) 먼저 어떻게 필터링 할 것인지 조건을 지정합니다. 소스 테이블의 타이틀 부분(이것을 정식용어로는 헤더(header)라고 합니다)을 그대로 복사해서 사용하는 것이 가장 좋을 것입니다.(이것은 다년간(?) 사용해 본 경험에서 우러나온 것임!)
| 년월 | 거래처명 | 지점명 | 대본사 판매 수량 | 대본사 판매 금액 | 자체 판매 수량 | 자체 판매 금액 |
| 강남지점 | >=120000000 |
(2) 테이블 내(즉 자료 영역 내)에 셀포인터를 위치시킵니다.
참고: 데이터-필터-고급 필터 메뉴는 구버전 메뉴입니다. 최신 Excel에서는 데이터 탭의 정렬 및 필터 그룹에 있는 고급 버튼을 누릅니다.
(3) "데이터-필터-고급 필터" 메뉴를 선택합니다.
(4) 그러면 고급 필터 대화상자가 나타나는데 아래와 같이 각 항목의 조건을 지정합니다.
즉, 검색 결과는 "다른 장소에 복사"를 선택하고(그래야 원본 자료가 변형되지 않습니다), 데이터 범위는 그대로 두고(default값으로 나타나므로), 조건 범위는 요부분을 마우스로 지정해 주면 되겠지요. 그리고 복사 위치는 원본 자료와 겹쳐지지 않는 임의의 위치(셀)를 클릭해 주면 되는 것입니다.
좀 복잡해 보여도 어려운 부분은 아니니까 순서대로 두세번 실행하다 보면 아실 수 있을 것입니다.
조건을 설정할 때 아래의 사항들에 유의하시기 바랍니다.
(1) 조건 검색시 *나 ? 같은 와일드 카드 문자를 사용할 수 있습니다.
즉 강남지점인지 강동지점인지 모른다거나 혹은 두 지점 모두를 검색하고 싶다면 "강*"라고 조건을 지정하면 되겠지요(이렇게 지정을 하면 "강"으로 시작되는 모든 지점 실적이 나타남)
(2) "강?지점"이라고 조건을 지정할 수도 있습니다.
(3) 지점명이 "강"으로 시작되지 않는 모든 지점의 결과를 보고 싶다면?
"<>강*"라고 조건을 주면 되겠지요.
(4) and 조건이 아닌 or 조건으로 검색하려면 아래와 같이 행을 달리해서 나타내면 됩니다.
| 년월 | 거래처명 | 지점명 | 대본사 판매 수량 | 대본사 판매 금액 | 자체 판매 수량 | 자체 판매 금액 |
| 강남지점 | ||||||
| =120000000 |
이렇게 조건을 주면 지점명이 "강남지점" 이거나 자체 판매 금액이 120000000원인 레코드를 모두 나타내 주는 것입니다.
참고: 원문에서는 OR 조건 예제의 조건 표에 머리글 행만 남아 있고, 강남지점과 =120000000이 표 밖의 문장과 코드 상자에 흩어져 있었습니다. 설명 문장(지점명이 강남지점이거나 자체 판매 금액이 120000000원인 레코드)에 맞추어 두 조건을 서로 다른 행에 두어 조건 표를 다시 구성했습니다.
(5) 또 조건을 아래와 같이 조합해서 사용할 수도 있습니다.
| 년월 | 거래처명 | 지점명 | 대본사 판매 수량 | 대본사 판매 금액 | 자체 판매 수량 | 자체 판매 금액 |
| 강남지점 | >100000000 | |||||
| 영등포지점 | >=120000000 |
위의 것은 무슨 조건인지 아시겠습니까?
강남지점 중에서 대본사 판매 금액이 100000000원을 초과하거나
영등포지점 중에서 자체 판매 금액이 120000000원 이상인 레코드들을 필터링하는 것입니다.
즉 (어떤어떤 조건이면서(AND) 어떤 조건) OR (어떤어떤 조건이면서(AND) 어떤 조건)을 동시에 충족하는 레코드를 필터링하라는 것이지요.
만약 이런 것을 고급 필터 기능을 몰라서 자동 필터로 하려고 한다고 생각해 보세요. 얼마나 머리가 아프겠는지…
고급 필터 기능을 잘 아시는 분은 다음과 같은 방법을 연구해 보세요(중고참님들만).
| 년월 | 거래처명 | 지점명 | 대본사 판매 수량 | 대본사 판매 금액 | 자체 판매 수량 | 자체판매액 |
| 강남지점 | =H12<(AVERAGE($H:$H)) |
수식을 조건으로 해서 고급 기능을 활용하는 것인데 한가지 주의할 점은 필드명을 다른 이름으로 주었다는 것입니다.
만약 이 경우에 같은 필드이름을 주게 되면 에러가 날 것입니다.
오늘은 여기까지…
정리 — 고급 필터Ⅰ
| 구분 | 내용 |
|---|---|
| 주제 | 고급 필터로 여러 조건을 만족하는 자료만 추출하기 |
| 조건 지정 | 소스 테이블의 머리글을 복사해 조건 영역을 만들고, 같은 행에는 AND 조건을 행을 달리하면 OR 조건을 입력 |
| 실행 | 자료 영역 안에 셀포인터를 두고 데이터 - 필터 - 고급 필터 선택 |
| 결과 위치 | 다른 장소에 복사를 선택하면 원본 자료가 변형되지 않음 |
| 와일드 카드 | 별표와 물음표를 조건에 사용할 수 있음 (강* 는 강으로 시작하는 모든 지점) |
| 부정 조건 | 강으로 시작하지 않는 지점은 <>강* 로 지정 |
| 수식 조건 | 필드명을 원본과 다른 이름으로 주고 수식을 조건으로 사용 |
자주 묻는 질문 (FAQ)
Q1. 고급 필터에서 AND 조건과 OR 조건은 어떻게 지정하나요?
조건을 같은 행에 나란히 쓰면 AND 조건이고, 행을 달리해서 쓰면 OR 조건입니다.
Q2. 검색 결과를 원본과 따로 보려면 어떻게 하나요?
고급 필터 대화상자에서 다른 장소에 복사를 선택하고, 원본 자료와 겹쳐지지 않는 위치를 복사 위치로 지정합니다.
Q3. 조건에 와일드 카드를 쓸 수 있나요?
쓸 수 있습니다. 별표와 물음표를 사용할 수 있으며, 예를 들어 강* 로 지정하면 강으로 시작하는 모든 지점의 자료가 나타납니다.
마치며
여러 조건이나 OR 조건이 필요할 때는 자동 필터 대신 고급 필터의 조건 영역을 활용해 보시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.