- 최초 작성일: 2002-02-08
- 최종 수정일: 2026-09-29
- 조회수: 23 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 특정행 데이터 필터링하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
많은 사람들이 미래에 대한 고민과 번뇌, 과거에 대한 후회를 하는데 아까운 시간을 보내곤 합니다. 또한 미래의 보랏빛 꿈을 그리며 현재를 희생하기도 합니다.
특정행 데이터 필터링하기
핵심 요약
- 특정 행만 추출하려면 행 번호를 이용한 조건식을 만들어 고급 필터의 조건 범위로 사용할 수 있습니다.
- MOD와 ROW 함수를 조합하면 행 번호가 짝수인지 홀수인지 판별할 수 있습니다.
- 작성한 조건식을 고급 필터에 적용하면 원하는 규칙에 해당하는 행만 골라 표시할 수 있습니다.
아주 오래 전에 읽은 스티븐 코비의 "성공하는 사람들의 7가지 습관"에 보면 "관심의 원"과 "영향력의 원"에 대한 얘기가 나옵니다. "관심의 원"이란 우리가 관심을 가지고 있는 광범위한 영역으로 이 영역에는 자신의 건강, 자녀, 직장 문제, 외채, 핵전쟁 등 여러 가지가 있을 수 있습니다. 그런데 관심의 원을 가만히 들여다 보면, 우리가 통제력을 가지고 있는 것, 즉 우리가 주도적으로 행동하여 변화시킬 수 있는 영역이 있는가 하면 통제력을 전혀 가지 않는 것이 있습니다. 핵전쟁이나 실업 문제 등과 같은 것이지요. 여기서 자신이 통제력을 갖고 있는 영역을 "영향력의 원"이라고 합니다. 매사에 주도적인 사람은 자신의 노력을 "영향력의 원"에 집중을 시킵니다. 자신이 변화시킬 수 있는 일에 관심을 집중시킨다는 얘기입니다.
Pay Attention at the Very Moment! 지금 이 순간에 최선을 다하라! 간단하면서도 결코 쉽지 않은 일이 아닌가 싶습니다.
어느덧 세밑입니다(음력으로 ^^). 새해에는 현실에 보다 충실해 지도록 노력해야 겠습니다. 개인적인 사정으로 이번 주 내내 강좌를 빼먹었습니다. 너른 마음으로 양해하시기를…(Exceller도 본업이 따로 있으니까요 ^^)
게시판에, "필터링을 할 때, 데이터가 홀수 행인지 짝수 행인지를 구분하여 필터링"을 할 수 있느냐고 질문을 하신 분이 있군요. 아래와 같은 데이터가 있다고 가정합니다.
| 번호 | 이름 | 생년월일 | 직급 | 연봉 | 부서 | 입사일 | 결혼여부 |
| 1 | 이순신 | 1968-01-01 | 사원 | 22000000 | 총무부 | 1995-01-01 | =TRUE() |
| 2 | 김유신 | 1969-01-01 | 부장 | 55000000 | 영업부 | 1988-07-01 | =TRUE() |
| 3 | 박유진 | 1968-01-01 | 사원 | 22000000 | 총무부 | 1995-01-01 | =TRUE() |
| 4 | 김유신 | 1969-01-01 | 부장 | 55000000 | 영업부 | 1988-07-01 | =TRUE() |
| 5 | 장진 | 1970-01-05 | 전무 | 100000000 | 영업부 | 1995-12-01 | =TRUE() |
| 6 | 박종태 | 1980-07-31 | 상무 | 80000000 | 기획부 | 1992-07-15 | =TRUE() |
| 7 | 이순신 | 1968-01-01 | 사원 | 22000000 | 총무부 | 1995-01-01 | =TRUE() |
| 8 | 권예지 | 1969-01-01 | 대리 | 40000000 | 경리부 | 1994-01-01 | =FALSE() |
| 9 | 주정민 | 1972-08-01 | 과장 | 50000000 | 영업부 | 1990-07-15 | =TRUE() |
| 10 | 박아름 | 1985-09-04 | 주임 | 18500000 | 영업부 | 1999-12-10 | =TRUE() |
| 11 | 김남주 | 1988-07-04 | 사원 | 14000000 | 인사부 | 2000-01-01 | =FALSE() |
| 12 | 김필수 | 1969-01-01 | 대리 | 40000000 | 경리부 | 1994-01-01 | =FALSE() |
| 13 | 박세화 | 1972-08-01 | 과장 | 50000000 | 영업부 | 1990-07-15 | =TRUE() |
| 14 | 최동진 | 1999-01-01 | 과장 | 45000000 | 총무부 | 2000-05-15 | =FALSE() |
| 15 | 박병진 | 1969-01-01 | 대리 | 40000000 | 경리부 | 1994-01-01 | =FALSE() |
여기서 짝수행 또는 홀수행만 따로 구분해서 보아야 할 일이 있나 봅니다. 여러 가지 방법이 있겠지만 "고급 필터" 기능을 사용하면 손쉽게 해결이 됩니다. 짝수행 데이터만 추출해 보도록 하지요.
(1) 필터링 할 기준(Criteria)을 만듭니다. 이 때 주의할 점은, 데이터 테이블의 필드명은 "번호"였으나 Criteria의 필드명은 "NO"로 바꾸어 주었다는 점에 유의하시기 바랍니다. 일반적인 고급 필터와는 이 점이 다릅니다. 그리고 NO 아래 부분에는 다음과 같은 공식이 입력되어 있습니다. Mod 함수를 사용하여 짝수행인지 여부를 확인하는 것입니다.
| NO | 이름 | 생년월일 | 직급 | 연봉 | 부서 | 입사일 | 결혼여부 |
=MOD(ROW(A40:A54),2)=0
(2) '데이터-고급 필터' 메뉴를 선택하고 아래와 같이 각 항목을 지정합니다.
(3) 그러면 그림처럼 짝수행 데이터만 골라서 표시가 됩니다.
| 번호 | 이름 | 생년월일 | 직급 | 연봉 | 부서 | 입사일 | 결혼여부 |
| 1 | 이순신 | 1968-01-01 | 사원 | 22000000 | 총무부 | 1995-01-01 | =TRUE() |
| 3 | 박유진 | 1968-01-01 | 사원 | 22000000 | 총무부 | 1995-01-01 | =TRUE() |
| 5 | 장진 | 1970-01-05 | 전무 | 100000000 | 영업부 | 1995-12-01 | =TRUE() |
| 7 | 이순신 | 1968-01-01 | 사원 | 22000000 | 총무부 | 1995-01-01 | =TRUE() |
| 9 | 주정민 | 1972-08-01 | 과장 | 50000000 | 영업부 | 1990-07-15 | =TRUE() |
| 11 | 김남주 | 1988-07-04 | 사원 | 14000000 | 인사부 | 2000-01-01 | =FALSE() |
| 13 | 박세화 | 1972-08-01 | 과장 | 50000000 | 영업부 | 1990-07-15 | =TRUE() |
| 15 | 박병진 | 1969-01-01 | 대리 | 40000000 | 경리부 | 1994-01-01 | =FALSE() |
내일부터 설 연휴가 시작되는군요. 고향 잘 다녀오시고 건강한 모습으로 다시 뵙기를 바랍니다. 여러부~운, 부~우~자 되세요!!! 꼭이요~~ ^^
정리 — MOD/ROW 조건식과 고급 필터
| 항목 | 설명 |
|---|---|
| 조건식 | =MOD(ROW(A40:A54),2)=0 형태로 작성해 짝수행 여부를 TRUE/FALSE로 판별 |
| 조건 범위 필드명 | 원본 표의 필드명("번호")과 다르게("NO") 지정해야 수식 조건으로 인식됨 |
| 적용 메뉴 | 데이터 > 고급 필터에서 목록 범위와 조건 범위를 지정 |
| 결과 | 조건식이 TRUE인 행(짝수행)만 화면에 표시 |
자주 묻는 질문 (FAQ)
Q1. 짝수행이나 홀수행처럼 특정 행만 골라내려면 어떻게 해야 하나요?
MOD와 ROW 함수를 조합한 조건식(예: =MOD(ROW(A40:A54),2)=0)을 별도의 조건 범위에 만들고, 이를 고급 필터의 조건 범위로 지정하면 짝수행 또는 홀수행만 골라 표시할 수 있습니다.
Q2. 고급 필터의 조건 범위에서 필드명을 원래 데이터와 다르게 지정해도 되나요?
네. 수식으로 조건을 만들 때는 조건 범위의 필드명을 원본 데이터 표의 필드명과 다르게(예: '번호' 대신 'NO') 지정해야 합니다. 같은 이름을 쓰면 일반적인 값 비교 조건으로 인식되어 수식 조건이 제대로 작동하지 않습니다.
Q3. MOD(ROW(...),2)=0 수식은 어떤 원리로 짝수행을 구분하나요?
ROW 함수로 각 셀의 행 번호를 구하고, 이를 2로 나눈 나머지를 MOD 함수로 계산합니다. 나머지가 0이면 짝수행, 1이면 홀수행이므로 이 결과를 TRUE/FALSE 조건으로 활용해 원하는 행만 필터링할 수 있습니다.
마치며
단순히 값으로만 조건을 거는 것에서 한 걸음 나아가, 행 번호 자체를 조건식으로 활용하면 짝수행·홀수행처럼 위치 기반의 필터링도 어렵지 않게 해낼 수 있습니다. MOD와 ROW의 조합을 잘 기억해 두시면 비슷한 상황에서 두루 응용하실 수 있을 것입니다.