=IF(B2>=50,"Pass","Fail")은 B2의 점수가 50 이상인지 확인합니다. 맞으면 셀에 Pass가, 아니면 Fail이 나옵니다.
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Result |
| 2 | Ana | 72 | Pass |
| 3 | Ben | 45 | Fail |
| 4 | Chloe | 50 | Pass |
| 5 | Dan | 38 | Fail |
| 6 | Eve | 91 | Pass |
C2를 클릭해 수식을 확인한 뒤 B3에 있는 Ben의 점수를 60으로 바꿔 보세요. 결과가 Pass로 바뀝니다. Chloe는 정확히 50점이고 >=는 "50 이상"을 뜻하므로 합격합니다. >였다면 불합격입니다.
IF 구문
=IF(logical_test, value_if_true, value_if_false)
logical_test는 TRUE나 FALSE를 내는 비교나 수식입니다:B2>=50,C2="Paid",D2<TODAY().value_if_true는 조건이 TRUE일 때 셀에 보이는 값입니다.value_if_false는 그 밖의 경우에 보이는 값입니다. 생략할 수 있는데, 생략하면 조건이 맞지 않을 때 셀에 FALSE가 나옵니다. 쉼표는 남기고 인수만 비워=IF(B2>=50,"Pass",)라고 쓰면 0이 나옵니다.
각 결과에는 큰따옴표로 감싼 텍스트("Pass"), 숫자(0), 셀 참조(C2), 다른 수식을 넣을 수 있습니다. 따옴표 없는 텍스트는 이름으로 읽히므로 =IF(B2>=50,Pass,Fail)은 #NAME?을 냅니다.
비교 연산자는 =(같음), <>(같지 않음), >, <, >=, <=입니다. 소수점으로 쉼표를 쓰는 언어로 설정된 엑셀에서는 인수를 세미콜론으로 구분합니다: =IF(B2>=50;"Pass";"Fail"). Google 스프레드시트도 같은 인수로 같은 IF를 씁니다.
텍스트를 비교하는 IF
조건에서 셀을 텍스트와 비교할 수 있습니다. 텍스트는 큰따옴표로 감싸며, 비교할 때 대소문자는 무시됩니다.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Region | Free delivery | Exact case |
| 2 | 1001 | North | Yes | Yes |
| 3 | 1002 | South | No | No |
| 4 | 1003 | north | Yes | No |
| 5 | 1004 | East | No | No |
| 6 | 1005 | NORTH | Yes | No |
=는 대소문자를 가리지 않으므로 C열은 North, north, NORTH 모두에 Yes를 표시합니다. 제품 코드나 비밀번호처럼 대소문자가 중요하면 D열처럼 EXACT로 검사하세요. 정확히 North라고 적힌 행만 Yes를 받습니다.
어떤 값을 제외한 모든 경우를 검사하려면 <>를 씁니다: =IF(B2<>"North","Standard","Free"). 셀 안 어딘가에 단어가 들어 있는지 검사하려면 IF에 SEARCH가 필요하며, 이 내용은 IS 함수 페이지에서 다룹니다.
계산을 넣은 IF
IF의 결과가 텍스트일 필요는 없습니다. 여기서는 각 영업 담당자가 매출이 1,000을 넘으면 5% 보너스를 받고, 그 이하이면 받지 못합니다:
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Bonus |
| 2 | Ana | $1,400 | $70 |
| 3 | Ben | $800 | $0 |
| 4 | Chloe | $1,000 | $0 |
| 5 | Dan | $2,600 | $130 |
| 6 | Eve | $1,150 | $58 |
Ana는 $70(1,400의 5%)를, Ben은 $0을 받습니다. Chloe는 정확히 1,000을 팔았고 조건은 "1,000 초과"이므로 역시 $0을 받습니다. C2의 수식을 =IF(B2>=1000,B2*5%,0)으로 바꾸면 그녀의 보너스는 $50이 됩니다.
조건에서 두 셀을 비교하거나(=IF(B2>C2,"Over target","Under target")), 셀을 계산 결과와 비교할 수도 있습니다(=IF(B2>AVERAGE($B$2:$B$6),"Above average","")).
셀이 비어 있으면
B2=""는 B2가 비어 있을 때 TRUE입니다. 아직 데이터가 없는 행을 건너뛰어 수식 열이 0으로 가득 차지 않게 할 때 씁니다:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Item | Qty | Price | Total | Status |
| 2 | Pens | 10 | $1.50 | $15.00 | Ordered |
| 3 | Paper | $4.20 | Not ordered | ||
| 4 | Ink | 2 | $18.00 | $36.00 | Ordered |
| 5 | Tape | $2.80 | Not ordered | ||
| 6 | Clips | 5 | $0.90 | $4.50 | Ordered |
""(사이에 아무것도 없는 큰따옴표 두 개)는 빈 텍스트이므로 Paper와 Tape는 D열에 아무것도 표시하지 않습니다. B3에 수량을 입력하면 합계가 나타납니다. E열은 반대로 <>"", 즉 "비어 있지 않음"을 검사합니다.
=""가 든 셀은 비어 보이지만 ISBLANK에게는 빈 셀이 아닙니다. 다른 수식이 그 열을 읽을 때 이 차이가 중요합니다. 예를 들어 COUNTA는 그 셀을 셉니다.
조건이 두 개인 IF
IF는 조건을 하나 받습니다. 두 조건을 동시에 요구하려면 조건 안에 AND를 넣고, 둘 중 하나만 맞아도 되면 OR을 씁니다:
=IF(AND(B2>=50,C2>=50),"Pass","Fail")
=IF(OR(B2="North",B2="South"),"Zone 1","Zone 2")
두 함수 모두 AND와 OR 페이지에서 실습 예제와 함께 설명합니다. 결과가 세 가지 이상이면(A, B, C, F) IF 안에 IF를 중첩하거나(중첩 IF) IFS를 쓰세요.
연습: 재주문 여부
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Stock | Minimum | Status |
| 2 | Pens | 12 | 20 | |
| 3 | Paper | 30 | 25 | |
| 4 | Tape | 15 | 12 | |
| 5 | Ink | 8 | 10 |
직접 해 보세요: D2에서 B2의 재고가 C2의 최소 수량보다 적으면 "Reorder"를, 아니면 "OK"를 표시하세요. 수식은 D5까지 아래로 채워집니다.
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Bonus |
| 2 | Ana | $1,250 | |
| 3 | Ben | $600 | |
| 4 | Chloe | $2,300 |
직접 해 보세요: C2에서 B2의 매출이 1000을 넘으면 매출의 10%를 보너스로, 아니면 0을 반환하세요. 수식은 C4까지 아래로 채워집니다.
흔한 IF 실수
숫자를 따옴표로 감싸기. =IF(B2>"50","High","Low")는 B2를 숫자 50이 아니라 텍스트 "50"과 비교합니다. 엑셀은 모든 숫자를 모든 텍스트보다 작게 취급하므로, B2에 어떤 숫자가 있든 조건은 FALSE가 되고 수식은 항상 Low를 표시합니다. 숫자는 따옴표 없이 쓰세요: B2>50.
== 쓰기. 엑셀의 같음 비교는 = 하나입니다. =IF(B2=="Paid","Yes","No")라고 입력하면 엑셀이 "There's a problem with this formula"(이 수식에 문제가 있습니다)라며 수식을 받아들이지 않습니다.
텍스트로 저장된 숫자. B2에 '12(주로 가져온 데이터에서 생기는, 숫자처럼 보이는 텍스트)가 들어 있으면 B2>=50은 텍스트와 숫자를 비교합니다. 텍스트는 항상 더 크게 취급되므로 조건이 TRUE가 되어 12가 합격합니다. 먼저 열을 변환하세요. 방법은 텍스트를 숫자로 변환하기 페이지에 있습니다.
TRUE를 텍스트로 기대하기. =IF(B2>=50,"TRUE","FALSE")는 단어를 텍스트로 반환하며, 다른 수식은 이것을 논리값으로 쓸 수 없습니다. TRUE와 FALSE가 필요하다면 IF조차 필요 없습니다. =B2>=50이 그 값을 바로 반환합니다.
닫는 괄호 빠뜨리기. IF마다 괄호를 하나 열고, 각각 자기 )가 필요합니다. 편집하는 동안 엑셀은 괄호 쌍마다 다른 색으로 보여 주므로, 빠진 괄호를 쉽게 찾을 수 있습니다.
자주 묻는 질문
엑셀에서 IF 수식은 어떻게 쓰나요?
=IF(test, value_if_true, value_if_false) 형태로 씁니다. 예를 들어 =IF(B2>=50,"Pass","Fail")은 B2가 50 이상이면 Pass, 아니면 Fail을 보여 줍니다. 텍스트 결과는 큰따옴표로 감싸고, 숫자와 셀 참조는 감싸지 않습니다.
IF 수식이 FALSE를 반환하는 이유는 무엇인가요?
세 번째 인수를 빠뜨렸기 때문입니다. =IF(B2>=50,"Pass")는 조건이 맞지 않으면 FALSE를 반환합니다. 그 경우의 값을 넣으세요. 예를 들어 빈 셀로 보이게 하려면 ""를 넣습니다: =IF(B2>=50,"Pass","").
IF 함수는 대소문자를 구분하나요?
구분하지 않습니다. =IF(B2="North","Yes","No")는 North, north, NORTH 모두에 Yes를 반환합니다. 대소문자까지 정확히 맞추려면 조건에 EXACT를 쓰세요: =IF(EXACT(B2,"North"),"Yes","No").
IF로 셀을 비워 두려면 어떻게 하나요?
빈 텍스트 문자열, 즉 큰따옴표 두 개를 반환합니다. =IF(B2="","",B2*C2)는 B2가 비어 있으면 아무것도 보여 주지 않고, 아니면 곱을 보여 줍니다. 셀에는 여전히 수식이 있으므로 그 셀에 ISBLANK를 쓰면 FALSE가 나옵니다.
IF로 조건을 여러 개 확인할 수 있나요?
있습니다. 조건 안에 AND나 OR을 넣거나(=IF(AND(B2>=50,C2>=50),"Pass","Fail")), 결과가 셋 이상이면 IF 안에 IF를 중첩합니다. Excel 2019 이후에서는 IFS가 중첩 없이 여러 결과를 처리합니다.