=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")는 조건을 처음부터 끝까지 검사해, 처음으로 TRUE인 조건과 짝지어진 값을 반환합니다. IF 안에 IF를 넣지 않고도 중첩 IF와 같은 일을 합니다. IFS는 Excel 2019 이상이나 Microsoft 365가 필요합니다.
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Grade |
| 2 | Ana | 94 | A |
| 3 | Ben | 81 | B |
| 4 | Chloe | 70 | C |
| 5 | Dan | 65 | F |
| 6 | Eve | 88 | B |
| 7 | Finn | 90 | A |
C2를 클릭해 보세요. 조건과 결과 쌍이 네 개, 닫는 괄호가 하나 있습니다. B4에 있는 Chloe의 점수를 69로 바꾸면 등급이 F로 떨어집니다.
IFS 구문
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
- 인수는 쌍으로 옵니다. TRUE나 FALSE를 내는 조건, 그리고 그 조건이 TRUE일 때 반환할 값입니다.
- 엑셀은 조건을 순서대로 검사해 처음으로 TRUE인 조건의 값을 반환합니다. 그 뒤의 조건은 검사하지 않으므로,
>=조건이라면 가장 높은 기준을 먼저 두세요. - 쌍은 127개까지 넣을 수 있습니다.
- "그 밖의 경우"를 위한 별도 인수는 없습니다. 조건이
TRUE인 마지막 쌍이 그 역할을 합니다.
값 없이 조건만 있으면(인수 개수가 홀수이면) 엑셀이 "You've entered too few arguments for this function"(이 함수에 대해 너무 적은 인수를 입력했습니다)라며 수식을 받아들이지 않습니다.
기본값으로 쓰는 TRUE, 맞는 조건이 없을 때의 #N/A
TRUE인 조건이 없으면 IFS는 #N/A를 반환합니다. 아래 C열에는 기본값이 없어 낮은 점수 두 개에서 실패하고, D열은 TRUE,"F"로 끝나서 그 점수들을 받아 냅니다:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | No default | TRUE default |
| 2 | Ana | 94 | A | A |
| 3 | Ben | 81 | B | B |
| 4 | Dan | 65 | #N/A | F |
| 5 | Eve | 88 | B | B |
| 6 | Gus | 52 | #N/A | F |
#N/A 찾는 값이 조회 범위에 없습니다.TRUE는 항상 참인 조건이라서 앞의 모든 조건이 FALSE일 때만 도달합니다. 그 뒤에 있는 것은 검사되지 않으므로 반드시 마지막 쌍이어야 합니다. 기본값은 어떤 값이든 됩니다. 빈 셀로 보이려면 TRUE,"", 행을 표시하려면 TRUE,"Check"를 씁니다. 기본값 없이 #N/A만 보이지 않게 하려면 =IFNA(IFS(...),"No grade")도 됩니다. IFNA는 IFERROR 페이지에서 설명합니다.
텍스트, AND, OR을 쓰는 IFS
조건은 일반적인 논리식이므로 텍스트를 비교하고 AND와 OR을 쓸 수 있습니다. 여기서는 지역과 주문 합계에 따라 배송 방법이 정해집니다:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Region | Total | Delivery |
| 2 | 1001 | North | $120 | Free |
| 3 | 1002 | North | $60 | Standard |
| 4 | 1003 | South | $150 | Express |
| 5 | 1004 | East | $40 | Post |
| 6 | 1005 | north | $300 | Free |
주문 1001은 North이고 100을 넘으므로 Free를 받습니다. 주문 1002는 North지만 100 미만이라 첫 조건이 실패하고, 두 번째 조건 B2="North"가 Standard를 줍니다. 텍스트 비교는 대소문자를 무시하므로 north로 적힌 1005도 Free를 받습니다.
모든 조건이 같은 셀을 고정된 값과 비교할 때는(B2="N", B2="S", B2="E") 각 값을 한 번씩만 쓰는 SWITCH가 더 짧습니다: =SWITCH(B2,"N","North","S","South","Other").
연습: 배송 속도
| A | B | C | |
|---|---|---|---|
| 1 | Order | Days | Speed |
| 2 | 1001 | 3 | |
| 3 | 1002 | 1 | |
| 4 | 1003 | 7 | |
| 5 | 1004 | 2 | |
| 6 | 1005 | 5 |
직접 해 보세요: C2에서 B2의 일수가 1 이하면 "Express", 3 이하면 "Standard", 그 밖에는 "Slow"를 반환하세요. IFS를 쓰세요. 수식은 C6까지 아래로 채워집니다.
IFS와 중첩 IF 비교
아래 두 수식은 모든 점수에 같은 등급을 반환합니다:
=IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F")))
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")
| IFS | 중첩 IF | |
|---|---|---|
| 괄호 | 한 쌍 | IF마다 한 쌍 |
| 기본값 | 마지막 TRUE 쌍 | 마지막 IF의 value_if_false |
| 맞는 조건이 없을 때 | TRUE를 추가하지 않으면 #N/A | 마지막 IF의 value_if_false(생략했다면 FALSE) |
| 한도 | 127쌍 | 중첩 IF 64개 |
| Excel 2016 이하 | #NAME? | 동작함 |
파일을 여는 사람이 모두 Excel 2019 이상을 쓴다면 IFS를, 이전 버전의 엑셀을 쓰는 사람에게 파일을 보낸다면 중첩 IF를 고르세요. 결과가 두 가지뿐이라면 일반 IF가 둘 다보다 간단합니다. 세율 구간이나 배송 무게처럼 숫자 구간이 많을 때는 둘 다 최선이 아닙니다. 중첩 IF 페이지에서 보듯, 근사 일치를 쓰는 조회 표가 기준값을 셀에 담아 둡니다.
자주 묻는 질문
IFS에 그 밖의 경우 값을 넣으려면 어떻게 하나요?
마지막 조건을 항상 참인 TRUE로 만듭니다: =IFS(B2>=90,"A",B2>=80,"B",TRUE,"F"). 앞의 조건 어디에도 맞지 않은 값은 F를 받습니다.
IFS가 #N/A를 반환하는 이유는 무엇인가요?
TRUE인 조건이 하나도 없고 마지막 TRUE 쌍도 없기 때문입니다. =IFS(B2>=90,"A",B2>=80,"B")는 75점에 #N/A를 반환합니다. 끝에 TRUE,"F"를 추가하거나 수식을 IFNA로 감싸세요.
어떤 엑셀 버전에 IFS가 있나요?
Excel 2019, Excel 2021, Excel 2024, Microsoft 365, 그리고 웹용 Excel입니다. Excel 2016 이하에서는 IFS를 쓴 수식이 #NAME?을 표시하므로 그곳에서는 중첩 IF를 쓰세요. Google 스프레드시트에도 IFS가 있습니다.
IFS가 중첩 IF보다 나은가요?
읽기 쉽고 닫는 괄호가 하나뿐이지만, 동작 방식은 같습니다. 처음으로 TRUE인 조건이 결과를 정합니다. 파일을 Excel 2016 이하에서 열어야 한다면 여전히 중첩 IF를 쓰세요.