- 최초 작성일: 2001-11-23
- 최종 수정일: 2026-09-29
- 조회수: 19 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 조건이 8개 이상인 경우의 대처방법2
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
널리 알려진 사실입니다만, If 함수는 7개까지 중첩해서 사용할 수 있습니다. 하지만 작업을 하다보면 이 제한 조건을 넘어서야 하는 경우가 분명히 있을 것입니다. 이런 경우에는 참고 테이블을 하나 만든 다음에 Vlookup 함수나 Index, Match 함수의 조합하여 사용하면 해결을 할 수 있습니다. 또는 VBA 상에서 Select Case 文을 사용하면 더 쉽게 처리할 수 있습니다. 이상의 방법들에 대해서는 X0153 강좌에서 이미 소개해 드린 기억이 납니다.
이번 시간에는 다른 시각에서 한번 접근해 보도록 하지요. 아래와 같은 테이블이 있다고 가정하고… 모두 14개의 등급이 있습니다. 오른쪽에 있는 [검색]란에 적당한 점수를 넣어 보세요.
조건이 8개 이상인 경우의 대처방법2
핵심 요약
- IF 함수를 7단계보다 많이 중첩해야 할 때 이름 정의를 이용해 조건 수식을 여러 부분으로 나누는 방법입니다.
- 기준 조건으로 상위·하위 구간을 나눈 뒤 조건1과 조건2라는 이름에 각각 중첩 IF 수식을 정의합니다.
- 최종 셀에서는 =IF(기준,조건1,조건2)처럼 간단히 호출할 수 있으며 VBA의 Select Case도 대안이 될 수 있습니다.
| [참고 테이블] | [검색] | |||
| 등급 | 점수 | 점수 | 등급 | |
| 1 등급 | 320 | 234 | 10등급 | |
| 2 등급 | 310 | =IF(기준,조건1,조건2) | ||
| 3 등급 | 300 | |||
| 4 등급 | 290 | |||
| 5 등급 | 280 | |||
| 6 등급 | 270 | |||
| 7 등급 | 260 | |||
| 8 등급 | 250 | |||
| 9 등급 | 240 | |||
| 10 등급 | 230 | |||
| 11 등급 | 220 | |||
| 12 등급 | 210 | |||
| 13 등급 | 200 | |||
| 14 등급 | 180 |
잘 되지요? 그런데 "등급" 부분에 보면 이런 해괴한(?) 수식이 덜렁 들어있군요.
=IF(기준,조건1,조건2)
기준, 조건1, 조건2라는 것이 어디에서 나타난 것일까요? Exceller가 새로운 함수를 하나 만든 것일까요? 이것은 수식에 이름 정의 방법을 활용한 것입니다.
(1) "삽입-이름-정의" 메뉴를 선택합니다.
(2) "조건"이라는 이름을 정의해 주고 "참조 대상" 항목에 아래와 같은 수식을 입력한 다음, "추가" 버튼을 클릭합니다. (그림을 이용하여 설명을 드렸으면 좋겠는데 PC를 포맷시키고 나서 아직 화면 캡쳐 유틸리티를 설치하지 않아서…)
=IF(Preface!$E22>=260,TRUE,FALSE)
위 수식에 대해서는 설명이 필요 없을 듯 합니다. 다들 잘 아시는 If 함수이지요. 7번째 조건이 되는 260점을 기준으로 조건을 둘로 나누는 것입니다.
(3) 다시 "삽입-이름-정의" 메뉴를 선택합니다. "조건1"이라는 이름을 하나 입력한 다음 "참조 대상"에 아래와 같이 입력합니다. 좀, 아니 많이 길군요. ^^
=IF(Preface!$E22>=320,"1등급",IF(Preface!$E22>=310,"2등급",IF(Preface!$E22>=300,"3등급",
IF(Preface!$E22>=290,"4등급",IF(Preface!$E22>=280,"5등급",IF(Preface!$E22>=270,"6등급",
"7등급",FALSE)))))))
(4) 또 한번 "삽입-이름-정의" 메뉴를 선택하고 이번에는 "조건2"라는 이름을 삽입합니다. 수식은 아래와 같습니다.
=IF(Preface!$E22>=250,"8등급",IF(Preface!$E22>=240,"9등급",IF(Preface!$E22>=230,"10등급",
IF(Preface!$E22>=220,"11등급",IF(Preface!$E22>=210,"12등급",IF(Preface!$E22>=200,"13등급",
IF(Preface!$E22>=180,"14등급","해당사항 없음")))))))
이런 방법이 있다는 정도만 알아두셔도 될 듯 합니다. 가급적이면 이 방법보다는 Select Case 문을 이용하시는 것이 여러모로 좋을 것입니다.
정리 — 이름 정의로 나눈 조건식 구조
| 이름 | 역할 |
|---|---|
| 기준 | 260점 이상 여부로 상위/하위 구간을 TRUE/FALSE로 구분 |
| 조건1 | 1~7등급(상위 구간)을 판정하는 중첩 IF |
| 조건2 | 8~14등급(하위 구간)을 판정하는 중첩 IF |
| 셀 수식 | =IF(기준,조건1,조건2) |
자주 묻는 질문 (FAQ)
Q1. IF 함수는 최대 몇 단계까지 중첩할 수 있나요?
IF 함수는 7단계까지만 중첩해서 사용할 수 있습니다. 14개 등급처럼 그 이상의 조건이 필요할 때는 다른 방법으로 나누어야 합니다.
Q2. 조건을 어떻게 두 부분으로 나누어 처리하나요?
먼저 "기준"이라는 이름에 상위·하위 구간을 나누는 IF 수식을 정의하고, "조건1"에는 상위 등급의 중첩 IF를, "조건2"에는 하위 등급의 중첩 IF를 각각 정의한 다음, 실제 셀에는 =IF(기준,조건1,조건2) 형태로 간단히 호출합니다.
Q3. IF 중첩 대신 사용할 수 있는 다른 방법도 있나요?
네. 참고 테이블을 만들어 VLOOKUP이나 INDEX·MATCH 조합을 사용하거나, VBA의 Select Case 문을 사용하는 방법도 있으며, 가능하면 Select Case 문을 사용하는 편이 더 좋습니다.
마치며
IF 중첩 제한을 이름 정의로 우회하는 방법은 알아둘 만하지만, 실무에서는 VLOOKUP·INDEX/MATCH 조합이나 VBA의 Select Case 문을 사용하는 편이 더 명확하고 유지보수하기 쉽습니다.