- 최초 작성일: 2002-04-26
- 최종 수정일: 2026-09-29
- 조회수: 20 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 특정년도 데이터 추출하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
단순히 '2020년 데이터만' 또는 '5월 이후 데이터만' 추출하는 것은 자동 필터로도 어렵지 않게 할 수 있습니다. 하지만 '짝수년도이면서 5월 이후'처럼 두 조건이 계산을 거쳐야 판단되는 경우라면 이야기가 달라집니다. 이럴 때 유용한 것이 바로 고급 필터의 '계산된 조건(수식 Criteria)'입니다. 독자 한 분이 보내주신 실제 질문을 바탕으로 이 기능을 살펴보겠습니다.
특정년도 데이터 추출하기
핵심 요약
고급 필터의 계산된 조건(수식 Criteria)을 이용하면 '짝수년도 5월 이후'처럼 복합적인 날짜 조건으로 데이터를 추출할 수 있습니다.
- 수식 조건을 쓸 때는 조건 영역의 필드명을 원본과 다르게 지정해야 합니다.
- =MOD(YEAR(셀),2)=0으로 짝수년도를, =MONTH(셀)>5로 5월 이후를 판단합니다.
- '데이터-필터-고급 필터' 메뉴에서 조건 범위를 지정해 실행합니다.
질문 하나
안녕하세요. 고급필터에 대해 좀안다고 했는데 이런 문제에 봉착하다보니 참으로 한계를 느껴 엑셀러님의 조언을 구합니다.
아래와 같은 자료가 있습니다.
소재지 / 아파트명 / 총세대수 / 입주시기: 덕양구 고양동 삼성 282 1998/11/12, 덕양구 고양동 윤창 299 1997/06, 덕양구 고양동 청구 168 1997/11, 덕양구 고양동 현대 791 1997/12/28, 덕양구 고양동 화성 122 1998/07/10, 덕양구 관산동 신성 320 1988/05/31, 덕양구 관산동 유승 218 2000/04/30, 덕양구 관산동 주공 1,192 2003/11, 덕양구 성사동 개나리 150 1987/05, 덕양구 성사동 동신1차 390 1992/09, 덕양구 성사동 동신2차 495 1992/10, 덕양구 성사동 미도 500 1986/12, 덕양구 성사동 삼화 105 1988, 덕양구 성사동 세현 100 1992, 덕양구 성사동 신원대명 512 1993/09
조건은 총세대수 250세대 이상이면서 입주시기가 짝수년도 5월 이후 자료(또는 홀수년도 5월 이후)를 추출하라고 했을 경우, 어떻게 해야 할지 모르겠습니다. 도와주세요.
데이터 형태를 조금 바꾸어 주었습니다. 다른 부분은 별로 문제가 없으나 '입주시기'의 경우, 날짜 표기 규칙을 정하고 그에 맞게 데이터를 입력해야지 그렇지 않으면 나중에 아주 곤란한 경우를 맞게 될 수도 있으므로 유의하시기 바랍니다.
| 소재지 | 아파트명 | 총세대수 | 입주시기 |
| 덕양구 고양동 | 삼성 | 282 | 1998-11-12 |
| 덕양구 고양동 | 윤창 | 299 | 1997-06-01 |
| 덕양구 고양동 | 청구 | 168 | 1997-11-01 |
| 덕양구 고양동 | 현대 | 791 | 1997-12-28 |
| 덕양구 고양동 | 화성 | 122 | 1998-07-10 |
| 덕양구 관산동 | 신성 | 320 | 1988-05-31 |
| 덕양구 관산동 | 유승 | 218 | 2000-04-30 |
| 덕양구 관산동 | 주공 | 1192 | 2003-11-01 |
| 덕양구 성사동 | 개나리 | 150 | 1987-05-01 |
| 덕양구 성사동 | 동신1차 | 390 | 1992-09-01 |
| 덕양구 성사동 | 동신2차 | 495 | 1992-10-01 |
| 덕양구 성사동 | 미도 | 500 | 1986-12-01 |
| 덕양구 성사동 | 삼화 | 105 | 1998-12-31 |
| 덕양구 성사동 | 세현 | 100 | 1992-12-31 |
| 덕양구 성사동 | 신원대명 | 512 | 1993-09-01 |
이 데이터 중에서, "총 세대수가 250세대 이상이면서 입주시기가 짝수년도 5월 이후"인 데이터만 추출하려면 어떻게 해야 할까요? 이런 경우에는 '고급 필터'를 사용하면 쉽게 해결할 수 있습니다.
(1) 고급 필터를 사용하기 위해 Criteria 즉, 필터링 할 기준을 만듭니다.
| 총세대수 | 입주시기1 | 입주시기2 |
| >=250 | =MOD(YEAR(E45),2)=0 | =MONTH(E45)>5 |
총세대수의 경우는 별 문제가 없으나 "입주시기가 짝수년도 5월 이후"라는 조건에 해당되는 데이터를 필터링하기 위한 Criteria 지정 부분을 눈여겨 보시기 바랍니다.
필드명을 소스 테이블의 것과 다르게 주었지요? 일반적인 필터링 작업의 경우, 필드명을 다르게 주면 에러가 나지만 이 경우에는 반드시 다르게 지정해 주어야 합니다. 또한 조건을 지정할 때에도 어떤 정해진 값이 아니라 수식을 통해 지정해 주었습니다.
| 입주시기1 | =MOD(YEAR(E45),2)=0 |
| 입주시기2 | =MONTH(E45)>5 |
(2) 소스 데이터 내부의 아무 셀이나 클릭하고 '데이터-필터-고급 필터' 메뉴를 선택합니다.
(3) '고급 필터' 대화상자가 나타나면 그림과 같이 조건을 지정합니다.
(4) '확인' 버튼을 클릭하면 "총 세대수가 250세대 이상이면서 입주시기가 짝수년도 5월 이후"에 해당되는 데이터가 추출됩니다.
| 소재지 | 아파트명 | 총세대수 | 입주시기 |
| 덕양구 고양동 | 삼성 | 282 | 1998-11-12 |
| 덕양구 성사동 | 동신1차 | 390 | 1992-09-01 |
| 덕양구 성사동 | 동신2차 | 495 | 1992-10-01 |
| 덕양구 성사동 | 미도 | 500 | 1986-12-01 |
그러면 반대로, 홀수 년도이면서 1/4분기 데이터만 추출하려면 어떻게 하면 될까요? 그것은… 숙제랍니다. ^^
정리 — 계산된 조건(수식 Criteria) 작성법
| 조건 | 수식 |
|---|---|
| 총세대수 250 이상 | >=250 |
| 짝수년도 | =MOD(YEAR(E45),2)=0 |
| 5월 이후 | =MONTH(E45)>5 |
자주 묻는 질문 (FAQ)
Q1. 고급 필터에서 수식으로 조건(Criteria)을 지정할 때 주의할 점은 무엇인가요?
수식으로 조건을 지정할 때는 조건 영역의 필드명을 원본 데이터의 필드명과 다르게 지정해야 합니다. 일반적인 값 조건과 달리 수식 조건은 필드명이 같으면 오히려 오류가 발생하므로, '입주시기1', '입주시기2'처럼 다른 이름을 붙여야 합니다.
Q2. 짝수년도 5월 이후 데이터를 추출하는 수식은 어떻게 만드나요?
=MOD(YEAR(E45),2)=0 수식으로 연도가 짝수인지 판단하고, =MONTH(E45)>5 수식으로 5월 이후(6월부터)인지 판단합니다. 두 조건을 같은 행에 나란히 놓으면 AND 조건으로, 총세대수 조건과 함께 AND로 결합해 필터링합니다.
Q3. 홀수년도이면서 1/4분기 데이터를 추출하려면 어떻게 해야 하나요?
짝수년도 조건 수식을 =MOD(YEAR(셀),2)=1로 바꾸고, 5월 이후 조건 대신 1/4분기(1~3월)를 판단하는 =MONTH(셀)<=3 수식으로 바꾸면 됩니다. 같은 원리로 다양한 날짜 조건을 계산된 조건으로 만들 수 있습니다.
마치며
고급 필터의 계산된 조건은 처음에는 낯설지만, 필드명을 다르게 주고 수식으로 논리값(TRUE/FALSE)을 반환하도록 만든다는 원리만 이해하면 어떤 복잡한 날짜·숫자 조건도 자유롭게 만들 수 있습니다.