Menu

엑셀 중첩 IF: 다중 조건 IF 함수와 예제

=IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F")))는 IF 안에 IF를 넣어 결과를 셋 이상 중에서 고릅니다. 중첩 IF를 읽는 법, 조건 순서가 중요한 이유, IFS나 조회 표가 더 나은 경우를 알아봅니다.

이 페이지의 모든 시트는 실제로 동작합니다. 숫자나 수식을 바꾸면 다시 계산됩니다.

중첩 IF는 다른 IF 안에 들어간 IF로, 가능한 결과가 셋 이상일 때 씁니다. =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F")))는 90 이상이면 A, 80에서 89는 B, 70에서 79는 C, 70 미만은 F를 줍니다.

점수로 등급 매기기
C2
ABC
1StudentScoreGrade
2Ana94A
3Ben81B
4Chloe70C
5Dan65F
6Eve88B
7Finn90A
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

C2를 클릭하고 수식 입력줄을 보세요. IF 함수 세 개와 끝에 닫는 괄호 세 개가 있습니다. B5에 있는 Dan의 점수를 75로 바꾸면 등급이 F에서 C로 바뀝니다.

중첩 IF를 읽는 방법

엑셀은 수식을 처음부터 읽다가 처음으로 TRUE인 조건에서 멈춥니다:

=IF(B2>=90, "A",
   IF(B2>=80, "B",
      IF(B2>=70, "C",
         "F")))
  1. 점수가 90 이상인가? 그러면 A이고, 나머지는 검사하지 않습니다.
  2. 아니라면 80 이상인가? 그러면 B입니다. 90 이상인 점수는 이 조건에 도달하지 않으므로 "그리고 90 미만"이라고 쓸 필요가 없습니다.
  3. 아니라면 70 이상인가? 그러면 C입니다.
  4. 아니라면 마지막 IF의 value_if_false인 F입니다.

안쪽 IF는 각각 바로 앞 IF의 value_if_false 자리에 들어갑니다. 엑셀은 64단계까지 허용하지만, 네다섯 단계를 넘는 수식은 눈으로 검토하기 어렵습니다. 엑셀은 수식 안의 줄 바꿈을 받아들이므로 긴 수식을 수식 입력줄에서 이렇게 배치할 수 있습니다. 각 IF 앞에서 Alt+Enter(Windows)나 Control+Option+Return(Mac)을 누르세요.

조건 순서가 중요한 이유

엑셀은 처음으로 TRUE인 조건에서 멈추므로, >=를 쓸 때는 기준을 가장 높은 것부터 낮은 순으로 두어야 합니다. D열에는 같은 세 조건이 반대 순서로 들어 있습니다:

같은 조건, 틀린 순서
D2
ABCD
1StudentScoreRight orderWrong order
2Ana94AC
3Ben81BC
4Chloe70CC
5Dan65FF
6Eve88BC
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

D열에서는 70 이상인 사람이 모두 C를 받습니다. 94점은 첫 조건 B2>=70을 통과하므로 B와 A 조건에는 도달하지 않습니다. 가장 낮은 구간부터 시작하고 싶다면 연산자를 뒤집으세요. =IF(B2<70,"F",IF(B2<80,"C",IF(B2<90,"B","A")))는 C열과 같은 등급을 줍니다.

텍스트를 비교하는 중첩 IF

조건에서 텍스트도 비교할 수 있습니다. 여기서는 지역에 따라 배송비가 달라지고, 이름이 나오지 않은 지역은 모두 마지막 값을 받습니다:

지역별 배송비
C2
ABC
1OrderRegionFee
21001North$5.00
31002South$7.00
41003West$9.00
51004East$6.00
61005Islands$9.00
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

West와 Islands는 세 조건 어디에도 맞지 않아 마지막 값인 $9.00을 받습니다. 여기처럼 모든 조건이 같은 셀을 고정된 값과 비교할 때는 SWITCH로 각 지역을 한 번씩만 써서 같은 규칙을 만들 수 있습니다: =SWITCH(B2,"North",5,"South",7,"East",6,9). SWITCH 페이지를 보세요.

AND를 쓰는 중첩 IF

한 구간이 두 셀에 따라 정해질 때는 중첩 IF의 각 단계에서 AND나 OR을 함께 쓸 수 있습니다. 매출이 2,000 이상이고 근속 3년 이상인 담당자는 10%, 그 밖에 2,000 이상인 사람은 5%, 나머지는 받지 못합니다:

수수료율
D2
ABCD
1RepSalesYearsRate
2Ana2400410%
3Ben210015%
4Chloe150060%
5Dan3000310%
6Eve90020%
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

Ana와 Dan은 10%를 받고, Ben은 매출은 되지만 근속 연수가 부족해 5%를 받으며, Chloe와 Eve는 0%입니다. 여기서도 순서가 중요합니다. 더 엄격한 조건이 먼저 옵니다.

IFS: 중첩 없이 같은 일을 하는 함수

Excel 2019, Excel 2021, Microsoft 365에서는 IFS가 조건과 결과를 쌍으로 받으며, 안쪽 IF 없이 닫는 괄호도 하나뿐입니다. 마지막 조건의 TRUE는 "그 밖의 모든 경우"로 동작합니다:

=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")

IFS도 조건을 같은 순서로 읽고 처음으로 TRUE인 조건에서 멈추므로, 위의 순서 규칙이 그대로 적용됩니다. 맞는 조건이 없을 때 반환하는 #N/A를 포함해 IFS 페이지에서 다룹니다. Excel 2016 이하에서는 IFS를 쓸 수 없고, IFS를 쓴 파일은 그곳에서 #NAME?을 표시합니다.

연습: 세 구간 수수료

수수료
C2
ABC
1RepSalesCommission
2Ana$6,200
3Ben$2,400
4Chloe$600
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: C2에서 B2의 매출이 5000 이상이면 매출의 10%를, 1000 이상이면 5%를, 그 밖에는 0을 지급하세요. 수식은 C4까지 아래로 채워집니다.

IF 여러 개 대신 조회 표

구간이 숫자이고 서너 개를 넘으면 기준값을 작은 표에 두고 조회하세요. 표는 가장 낮은 기준부터 오름차순으로 정렬되어 있고, 근사 일치(마지막 인수 TRUE)는 점수를 넘지 않는 가장 큰 기준값의 행을 반환합니다:

구간 표로 등급 매기기
C2
ABCDEF
1StudentScoreGradeMin scoreGrade
2Ana94A0F
3Ben81B70C
4Chloe70C80B
5Dan65F90A
6Eve88B
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

결과는 페이지 맨 위의 중첩 IF와 같습니다. B 구간을 85로 옮기려면 E4를 85로 바꾸면 됩니다. 수식은 하나도 바뀌지 않고 모든 등급이 다시 계산됩니다. XLOOKUP으로는 같은 조회가 =XLOOKUP(B2,$E$2:$E$5,$F$2:$F$5,,-1)이며, -1은 "정확히 일치하거나 그다음으로 작은 값"을 뜻합니다. 이때는 표를 정렬할 필요가 없습니다.

직접 해 보세요. 구간 표는 준비되어 있으니 조회 수식을 쓰면 됩니다.

VLOOKUP으로 등급 구하기
C2
ABCDEF
1StudentScoreGradeMin scoreGrade
2Ana860F
370C
480B
590A
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: C2에서 E2:F5의 구간 표를 이용해 B2 점수의 등급을 반환하세요.

자주 묻는 질문

엑셀에서 IF를 여러 개 쓰려면 어떻게 하나요?

다음 IF를 앞 IF의 value_if_false 인수에 넣습니다: =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F"))). 엑셀은 조건을 처음부터 끝까지 검사하다가 처음으로 TRUE인 조건에서 멈춥니다.

엑셀에서 IF는 몇 개까지 중첩할 수 있나요?

Excel 2007 이후에서는 64단계까지입니다. 그 한도보다 훨씬 전에 수식이 읽고 검토하기 어려워지므로, 구간이 서너 개를 넘으면 근사 일치 VLOOKUP이나 XLOOKUP을 쓰는 조회 표가 관리하기 쉽습니다.

중첩 IF가 잘못된 결과를 내는 이유는 무엇인가요?

대개 조건 순서가 틀렸기 때문입니다. >= 조건에서는 가장 높은 기준부터 시작하세요. B2>=70이 먼저 오면 95점도 거기서 멈춰 70점 구간의 결과를 받습니다.

엑셀에서 중첩 IF 대신 무엇을 쓸 수 있나요?

Excel 2019 이후의 IFS(=IFS(B2>=90,"A",B2>=80,"B",TRUE,"F")), 값 하나를 고정된 값들과 비교할 때의 SWITCH, 숫자 구간에는 =VLOOKUP(B2,$E$2:$F$5,2,TRUE)를 쓰는 조회 표가 있습니다.

Coddy 프로그래밍 언어 일러스트

Coddy로 코딩 배우기

시작하기