IF 함수: 구문, 예제, 오류 해결
2026-10-13 업데이트 · 무료 · Excel 및 Google Sheets 지원
구문
=IF(logical_test, value_if_true, [value_if_false])빠른 답변
IF는 하나의 검사 결과에 따라 두 값 중 하나를 반환합니다: =IF(B2>=50, "Pass", "Fail")는 B2가 50 이상이면 Pass, 아니면 Fail을 표시합니다. 텍스트 결과에는 큰따옴표가 필수이고 숫자와 수식은 그대로 씁니다. 세 번째 인수는 선택 사항이지만 생략하면 빈 칸이 아니라 FALSE가 반환됩니다.
구문
=IF(logical_test, value_if_true, [value_if_false])| 인수 | 의미 |
|---|---|
| logical_test | TRUE 또는 FALSE로 판정되는 조건: B2>=50 같은 비교, C2="Paid" 같은 일치 검사, 또는 TRUE/FALSE를 반환하는 모든 식. |
| value_if_true | 검사가 TRUE일 때 반환할 값 — 큰따옴표로 감싼 텍스트, 숫자, 날짜 또는 다른 수식. |
| value_if_false | 선택 사항. 검사가 FALSE일 때 반환할 값. 생략하면 IF는 FALSE를 반환합니다. 빈 셀처럼 보이게 하려면 빈 따옴표 ""를 씁니다. |
지역 설정에 따라 인수가 쉼표 대신 세미콜론으로 구분됩니다: =IF(B2>=50; "Pass"; "Fail"). 쉼표를 소수점으로 쓰는 국가에서는 이것이 표준입니다.
기본 예제
=IF(B2>=50, "Pass", "Fail")정통 합격/불합격 검사: 50점 이상은 Pass, 그 미만은 Fail이 표시됩니다. 텍스트 결과에는 반드시 큰따옴표가 필요하고, 비교 연산자(=, <>, >, >=, <, <=)는 결과가 아니라 logical_test 안에 씁니다.
=IF(C2>1000, C2*0.1, 0)매출이 1,000을 넘으면 10% 수수료, 아니면 0. 두 결과 모두 계산식이므로 따옴표가 전혀 필요 없습니다 — IF는 고정값뿐 아니라 모든 수식을 반환할 수 있습니다.
=IF(D2="", "Missing", D2*1.2)먼저 빈 셀인지 검사해 표시하고, 아니면 마진 계산을 실행합니다. ="" 비교는 계산 전에 빈 값을 걸러내는 표준 방식입니다.
=IF(E2="Done", "Closed", "")완료된 행에 라벨을 붙이고 나머지는 진짜 빈 칸으로 둡니다. 셀을 빈 것처럼 보이게 하는 것은 빈 따옴표의 역할입니다 — 세 번째 인수를 생략하면 빈 칸 대신 FALSE가 표시됩니다.
숫자 결과에는 따옴표를 붙이지 마세요: =IF(A1>0, "50", 0)가 반환하는 것은 텍스트 "50"이고, SUM과 AVERAGE는 이를 조용히 건너뜁니다. 따옴표는 텍스트 결과에만 붙입니다. 숫자·날짜·수식은 그대로 씁니다.
흔한 오류와 해결 방법
| 증상 | 가장 흔한 원인 | 해결 방법 |
|---|---|---|
| #NAME? | IF 철자 오류 — 또는 Excel이 다른 언어 버전이라 함수에 현지화된 이름(SI, WENN, SE)이 있음. | =I 또는 =W를 입력해 자동 완성으로 이름을 완성하거나, 해당 언어 버전의 Excel로 파일을 엽니다. |
| 결과가 FALSE로 그대로 표시됨 | 세 번째 인수를 생략해 검사가 실패할 때 IF가 FALSE를 인쇄함. | value_if_false 인수를 추가합니다. 빈 칸으로 보이게 하려면 ""를 씁니다. |
| 숫자가 텍스트가 됨 | 결과를 따옴표로 씀: =IF(A1>0, "50", 0)은 텍스트를 반환하고 SUM이 건너뜀. | 숫자 결과에서 따옴표를 제거합니다: =IF(A1>0, 50, 0). |
| 일부 행에서 #VALUE! | IF 자체는 정상 — 결과 안의 수식(D2*1.2 등)이 원본 열의 텍스트나 빈 값과 충돌함. | 원본 데이터를 수정하거나 계산을 보호합니다: =IF(D2="", "Missing", D2*1.2). |
| 모든 행이 같은 결과를 반환함 | logical_test에 비교가 없음: =IF(B2, "Yes", "No")는 0이 아닌 수를 모두 TRUE로 취급하고, =IF(B2>50, ...)로 쓰려다 =IF(B2=50, ...)가 됨. | 완전한 비교를 쓰고(B2>50, B2<>""), =는 실제로 같은지 판정할 때만 사용합니다. |
보이지 않는 공백도 텍스트 일치 판정을 망칩니다: =IF(C2="Paid", ...)는 뒤에 공백이 붙은 “Paid ”를 찾지 못합니다. 열 전체를 먼저 정리하면 비교가 일치합니다.
중첩 IF vs IFS
| 중첩 IF | IFS | |
|---|---|---|
| 수식당 조건 수 | 제한 없음. 다만 단계마다 닫는 괄호가 하나씩 늘어남 | 최대 127쌍. “조건, 결과”를 평평하게 나열 |
| 가독성 | 3-4단계를 넘으면 검증이 어려워짐 | 조건을 위에서 아래로 읽기만 하면 됨. 괄호 미로 없음 |
| 사용 가능 버전 | 모든 Excel 버전(Google Sheets 포함) | Excel 2019+/365(Google Sheets 포함) |
=IF(B2>=90, "A", IF(B2>=80, "B", IF(B2>=70, "C", "F")))정통 성적 사다리: 조건이 실패하면 다음 IF로 떨어집니다. 안쪽부터 읽고, 닫는 괄호가 끝에 쌓인다는 점에 유의하세요 — 3단 중첩은 마지막에 닫는 괄호 3개로 끝납니다.
=IFS(B2>=90, "A", B2>=80, "B", B2>=70, "C", TRUE, "F")같은 사다리를 IFS로 쓴 것: 조건과 결과가 평평한 쌍으로 교대로 나열되고 순서대로 평가됩니다. IFS에는 기본 “그 외”가 없습니다 — 끝의 TRUE, "F" 쌍이 위의 마지막 IF와 같은 역할을 합니다.
Google Sheets에서 IF
Google Sheets는 Excel과 같은 인수와 동작의 IF를 지원하므로 위의 수식을 그대로 붙여넣을 수 있습니다.
- 선택적 세 번째 인수의 동작도 같습니다: 생략하면 Sheets 역시 빈 칸이 아니라 FALSE를 반환합니다.
- 쉼표를 소수점으로 쓰는 지역 설정(유럽과 라틴아메리카 대부분)에서는 인수 구분에 세미콜론을 입력합니다: =IF(B2>=50; "Pass"; "Fail"). Excel도 같은 방식입니다.
- Sheets에도 IFS가 있으며 역시 기본 “그 외”가 없습니다 — 끝을 TRUE, 대체값 으로 마쳐 나머지를 모두 처리합니다.
- 분기가 많을 때는 두 앱 모두 SWITCH를 제공합니다. 하나의 셀을 값 목록과 차례로 비교하며, 깊은 IF 사다리보다 훨씬 읽기 쉽습니다.
제한 사항과 고급 팁
- IF는 값을 반환할 뿐 동작을 수행하거나 “아무것도 하지 않을” 수 없습니다. 조건부 서식·필터·행 삭제 같은 작업은 IF로 감싸지 말고 해당 기능을 직접 사용하세요.
- 중첩이 3-4단계를 넘으면 IFS로 전환하거나, 사다리 전체를 조회로 대체합니다: =VLOOKUP(B2, $F$2:$G$5, 2, TRUE) 한 줄로 점수 구간을 등급에 매핑합니다.
- 숫자 결과에 따옴표를 붙이지 마세요 — 따옴표 붙은 숫자는 텍스트가 되어 SUM, AVERAGE, 차트에서 사라집니다.
- 세 번째 인수를 생략하면 빈 셀이 아니라 FALSE가 반환됩니다: 빈 모양이 목적이라면 ""를 명시적으로 씁니다.
- &로 텍스트와 셀을 연결합니다: =IF(B2>=50, "Passed with "&B2, "Failed with "&B2)는 보조 열 없이 동적 메시지를 만듭니다.
IF의 신뢰성은 판정 대상 데이터에 달려 있습니다. 먼저 열을 검증하세요 — 빈 값, 텍스트 숫자, 중복이 모두 조용히 결과를 뒤집습니다 — 그다음 수식이 제 역할을 하게 두면 됩니다.
관련 도구
관련 함수
자주 묻는 질문
IF 함수는 Excel에서 무슨 일을 하나요?
하나의 검사를 실행해 두 값 중 하나를 반환합니다: =IF(B2>=50, "Pass", "Fail")는 검사가 TRUE면 Pass, FALSE면 Fail을 표시합니다. 검사는 숫자·텍스트·날짜를 비교할 수 있고 두 결과 자리에는 텍스트, 숫자, 날짜, 완전한 수식이 모두 들어갈 수 있습니다.
텍스트를 반환하는 IF 수식은 어떻게 쓰나요?
수식 안에서 텍스트를 큰따옴표로 감쌉니다: =IF(C2="Paid", "Yes", "No"). 따옴표는 결과에만 붙습니다 — 셀에 따옴표까지 표시된다면 따옴표를 문자열 안에 잘못 중첩한 것입니다.
IF 수식이 FALSE를 반환하는 이유는?
세 번째 인수가 빠졌습니다: =IF(B2>50, "High")는 검사가 실패할 때 FALSE를 인쇄합니다. FALSE에 반환할 값을 추가하거나, 빈 칸처럼 보이게 하려면 ""를 씁니다: =IF(B2>50, "High", "").
IF가 텍스트 대신 계산 결과를 반환할 수 있나요?
네 — 수식을 따옴표 없이 결과 자리에 놓습니다: =IF(C2>1000, C2*0.1, 0)은 C2가 1,000을 넘으면 그 10%, 아니면 0을 반환합니다. 두 결과 자리 모두 중첩 IF를 포함한 모든 수식을 받을 수 있습니다.
IF로 여러 조건을 어떻게 조합하나요?
검사를 AND(모두 참) 또는 OR(하나만 참이면 충분)로 결합합니다: =IF(AND(B2>=50, C2<3), "Bonus", "No bonus"). 둘 중 하나만 되면 되는 로직은 AND를 OR로 바꿉니다: =IF(OR(B2="", C2=""), "Missing", "OK").
IF는 몇 단계까지 중첩할 수 있나요?
기술적으로 최신 Excel은 64단계까지 지원하지만 3-4단계를 넘으면 가독성이 무너집니다. 그 이상은 IFS로 조건을 평평하게 나열하거나(Excel 2019+/365), 점수 구간 사다리를 범위 조회로 대체합니다: =VLOOKUP(B2, $F$2:$G$5, 2, TRUE).
IF는 Google Sheets에서도 되나요?
네 — 이름, 세 인수, 세 번째 인수 생략 시 FALSE 동작까지 같습니다. 쉼표를 소수점으로 쓰는 지역 설정에서만 인수 구분자가 세미콜론으로 바뀝니다: =IF(B2>=50; "Pass"; "Fail").
내 파일로 직접 해볼 준비가 되셨나요?
Excel 데이터 검증 마커 열기 — 무료