• 최초 작성일: 2025-01-28
  • 최종 수정일: 2026-09-23
  • 조회수: 25 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 처리 조건이 여러 가지인 경우 대처법

들어가기 전에: 수능 시험 단상

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

2020학년도 대학수학능력 시험이 끝났습니다. 학력고사 세대인 Exceller로서는 용어 자체도 생소할 뿐더러(원점수, 표준점수, 백분위 점수, 변환표준점수...), 학교와 학과마다 무슨 전형들이 그렇게나 다양한지 정신이 없을 지경입니다. 십수년 동안 공부한 것이 단 한번의 시험에 의해 결정되는 방식이 참으로 잔인하다는 생각도 듭니다. 고등학교 입학하자마자 특정 대학의 특정 학과를 타깃으로 준비를 한다는 것이 옳은 방향인지도 알기 어렵습니다.

그건 그렇고... 아래 왼쪽 표는 모 학원에서 제시한 "2020학년도 수능 예상등급컷"입니다. 이것을 이용하여 "개인별 등급" 표의 "등급"란을 채우는 다양한 방법에 대해 알아보겠습니다.

수능 예상등급컷 표와, 등급란이 비어 있는 개인별 등급 표
아이엑셀러
권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 지음

📊 신간 전자책(PDF) · 287쪽 · 13500원

엑셀 대시보드를 만드는 최적의 '표준 3계층 구조'

  • 3초 안에 읽히는 화면 설계 감각 습득
  • Microsoft Excel MVP의 실전 노하우 수록
  • 중간마진 없는 합리적인 가격, 오직 아이엑셀러에서만!
지금 구매하기 완성 화면 보기

처리 조건이 여러 가지로 나뉘는 경우 대처법

핵심 요약: 구간별 등급 매기기 다섯 가지 방법

점수 구간에 따라 등급을 매기는 문제는 다중 IF, INDEX+MATCH, 이름 정의, IFS, VBA 다섯 가지 방식으로 풀 수 있으며, 엑셀 버전과 취향에 따라 적합한 방법이 다릅니다.

  • 방법 1: 다중 IF 중첩 — 가장 직관적이나 수식이 길어짐(2007 이전은 7중첩 한도)
  • 방법 2: INDEX+MATCH — 참조표를 오름차순 정렬해야 함
  • 방법 3: 이름 정의 활용 — 긴 수식을 이름 뒤로 감춰 가독성 향상
  • 방법 4~5: IFS(2019+), VBA 사용자 정의 함수 — 짧고 명확

방법 1: 다중 IF 문 사용

엑셀 초보 시절에 Sum이나 Count 함수에 이어서 접하게 되는 함수가 If 함수일 겁니다. If 함수를 여러 번 중첩해서 사용하면 되니까 이 정도는 문제도 아니지요. G5 셀에는 이런 수식이 입력되어 있습니다.

=IF(F5>=$C$5,1,IF(F5>=$C$6,2,IF(F5>=$C$7,3,IF(F5>=$C$8,4,
IF(F5>=$C$9,5,IF(F5>=$C$10,6,IF(F5>=$C$11,7,
IF(F5>=$C$12,8,9))))))))

엑셀 2007 이전 버전이라면 이 수식을 사용할 수 없습니다. 다중 If 문에서 If는 7번까지만 중첩해서 쓸 수 있기 때문입니다. 엑셀 2007 이후 버전부터는 64개까지 중첩해서 사용할 수 있게 되었습니다.

방법 2: INDEX와 MATCH 함수 조합

Index와 Match 함수의 조합을 통해서도 해결할 수 있습니다. 아래 표와 같이 수능 예상등급컷 표를 '점수' 항목을 오름차순으로 정리해 둔 다음 이것을 참조하여 수식을 작성합니다.

INDEX와 MATCH 함수에서 참조할 오름차순 정렬된 등급컷 표
아이엑셀러

H5 셀에는 이런 수식이 입력되어 있습니다.

=INDEX($M$5:$M$13,MATCH(F5,$N$5:$N$13,1))

Match 함수의 match_type 인수를 1로 지정하면 "작거나 같은 값 중에서 최대값"을 찾아줍니다. 그러기 위해서는 참조 대상 테이블이 반드시 "오름차순 정렬"되어 있어야 합니다.

표에서 자신이 원하는 값을 찾고자 할 때 초보 사용자들은 일단 Vlookup 함수를 떠올립니다. 하지만 Vlookup 함수는 '찾을 값'(이 경우에는 '점수')의 왼쪽 영역에 있는 값('등급')은 가져올 수 없습니다.

방법 3: 수식에 이름을 정의하여 해결

이것을 뭐라고 부를까 생각하다가 '수식에 이름 정의를 통한 해결'이라고 해봅니다. 예제 파일의 I5 셀을 보면 '=IF(기준,조건1,조건2)'라고 하는 희안한 수식이 들어 있습니다.

I5 셀에 이름 정의를 이용한 =IF(기준,조건1,조건2) 수식이 입력된 모습
아이엑셀러

'기준', '조건1', '조건2'라는 건 어디서 나타난 것일까요? 이것이 바로 '수식에 이름 정의하기'를 이용한 겁니다.

① [수식] 탭 - [정의된 이름] 그룹에서 [이름 정의]를 클릭합니다.

② [새 이름] 대화상자에서 '이름' 항목에는 '기준'이라고 입력하고, '참조 대상'에는 아래와 같은 수식을 입력한 다음 '확인' 버튼을 클릭합니다. 수식은 이해하시겠지요? 7번째 조건이 되는 C11 셀을 기준으로 조건을 둘로 나누기 위한 수식입니다.

=IF(연습!E5>=연습!$C$11,TRUE,FALSE)

③ 다시 한 번 [삽입] - [이름 정의]를 클릭하고 '조건1'이라는 이름을 입력합니다. 7번째 조건에 해당되는 부분을 기준으로 둘로 나누기 위한 수식입니다.

=IF(연습!E5>=연습!$C$5,1,IF(연습!E5>=연습!$C$6,2,IF(연습!E5>=연습!$C$7,3,
IF(연습!E5>=연습!$C$8,4,IF(연습!E5>=연습!$C$9,5,IF(연습!E5>=연습!$C$10,6,
IF(연습!E5>=연습!$C$11,7,FALSE)))))))

④ 마찬가지 방법으로 '조건2'라는 이름을 작성합니다.

=IF(연습!F14>=연습!$C$20,8,9)

⑤ I5 셀에 '=IF(기준,조건1,조건2)'라고 입력하고 수식을 아래로 복사하여 완성합니다.

방법 4: IFS 함수 이용

설치된 엑셀이 2019나 Office 365 버전이라면 Ifs 함수를 사용할 수 있습니다. 예제 파일의 J5 셀에는 Ifs 함수를 이용한 수식이 입력되어 있습니다.

=IFS(F5>=$C$5,$B$5,F5>=$C$6,$B$6,F5>=$C$7,$B$7,F5>=$C$8,$B$8,F5>=$C$9,$B$9,
F5>=$C$10,$B$10,F5>=$C$11,$B$11,F5>=$C$12,$B$12,TRUE,9)

Ifs 함수는 각각의 조건을 기준으로 수식을 나눠서 살펴보면 이해하기 쉽습니다.

=IFS(F5>=$C$5,$B$5, F5>=$C$6,$B$6, F5>=$C$7,$B$7,
F5>=$C$8,$B$8, F5>=$C$9,$B$9, F5>=$C$10,$B$10,
F5>=$C$11,$B$11, F5>=$C$12,$B$12, TRUE,9)

수식 마지막의 TRUE, 9라는 것은 앞에서 지정한 모든 조건을 충족하지 않는 값에는 '9'(9등급)를 표시하라는 의미이며, True 대신 1을 써도 됩니다. 만약 이 부분을 생략하면 조건을 충족하지 않는 값일 때 '#N/A' 오류 메시지가 나타납니다. 참고로, Ifs 함수에서 조건은 127개까지 지정할 수 있습니다.

방법 5: VBA 활용

① 워크시트에서 <Alt> + <F11> 키를 눌러서 Visual Basic Editor로 갑니다.

② [삽입] - [모듈] 메뉴를 클릭하여 모듈을 삽입하고 다음 코드를 붙여넣습니다.

Function GetGrade(iScore) As Integer
    Select Case iScore
        Case Is >= 92: GetGrade = 1
        Case Is >= 85: GetGrade = 2
        Case Is >= 76: GetGrade = 3
        Case Is >= 66: GetGrade = 4
        Case Is >= 55: GetGrade = 5
        Case Is >= 44: GetGrade = 6
        Case Is >= 30: GetGrade = 7
        Case Is >= 20: GetGrade = 8
        Case Else: GetGrade = 9
    End Select
End Function

③ K5 셀에 '=getgrade(f5)'라고 입력하고 수식을 아래로 복사합니다.

K5 셀에 VBA 사용자 정의 함수 GetGrade를 적용한 결과
아이엑셀러

저쪽 구석에서 이런 궁시렁거림(?)이 들리는 듯 합니다.
"알려줄 거면 한 두 가지만 알려주지 왜 이렇게 많이 알려줘서 사람 헷갈리게 해요!!"
실무에서는 어떤 상황에 맞닥뜨릴 지 알 수 없습니다. 여러 가지 해결 방법을 알고 있으면 각 상황에 맞게 융통성 있게 대처할 수 있지요. 수십 년 업무 노하우를 죄다 공개하는 사람 성의를 생각해서라도 '너무 많이 알려준다' 불평하지 말고 잘 익혀 두세요. ^^;

참고: 이미지에 대하여

이 글은 원래 네이버 포스트에 게재되었던 글로, 네이버 포스트 서비스 종료로 네이버 블로그로 옮기는 과정에서 원본 이미지가 소실되었습니다. 위 이미지는 본문 설명을 바탕으로 재구성한 예시 화면이며, 실제 엑셀 화면과 세부 디자인은 다를 수 있습니다.

정리 — 다섯 가지 방법 비교

방법 특징 제약
1. 다중 IF 가장 직관적 2007 이전 7중첩 한도, 수식 길어짐
2. INDEX+MATCH 짧고 유지보수 쉬움 참조표 오름차순 정렬 필수
3. 이름 정의 셀 수식이 짧고 읽기 쉬움 이름 관리자에서 별도 확인 필요
4. IFS 중첩 없이 조건 나열, 최대 127개 엑셀 2019 이상 필요
5. VBA 일반 함수처럼 재사용 가능 매크로 사용 설정 필요

자주 묻는 질문 (FAQ)

Q1. 다중 IF 문은 몇 번까지 중첩할 수 있나요?

엑셀 2007 이전 버전에서는 IF를 7번까지만 중첩할 수 있습니다. 엑셀 2007 이후 버전부터는 64개까지 중첩할 수 있습니다.

Q2. INDEX+MATCH로 등급을 찾으려면 어떤 조건이 필요한가요?

MATCH 함수의 match_type을 1로 지정해 '작거나 같은 값 중 최대값'을 찾으려면, 참조 대상 표(점수 열)가 반드시 오름차순으로 정렬되어 있어야 합니다.

Q3. IFS 함수는 몇 개까지 조건을 지정할 수 있나요?

IFS 함수는 조건을 최대 127개까지 지정할 수 있습니다. 마지막에 TRUE 조건을 추가해 두면, 앞의 모든 조건에 해당하지 않는 경우의 기본값을 지정할 수 있습니다.

마치며

VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.