
Excel IF function을 한계까지 쓰는 법: 중첩 64단·8192자·LET·LAMBDA까지
엑셀에서 Excel IF function(엑셀 IF 함수)은 “조건 분기”의 기본입니다. 문제는 실무에서 조건이 늘어나면 수식이 급격히 길어지고, 어느 순간부터는 읽기/수정/속도가 동시에 무너진다는 점입니다. 이 글은 IF를 “끝까지” 밀어붙였을 때의 한계값, 대체 전략, 최적화까지 한 번에 정리합니다.
빠른 해결(Quick Fix): 복붙 10개 패턴
=IF(C2>=70,"PASS","FAIL")
=IF(C2="","",IF(C2>=70,"PASS","FAIL"))
=IF(ISNUMBER(SEARCH("urgent",D2)),"긴급","일반")
=IF(AND(B2="국내",E2>=50000),"무료배송","유료")
=IF(OR(D2="VIP",E2>=200000),"우선","일반")
=IFS(F2>=90,"A",F2>=80,"B",F2>=70,"C",TRUE,"D")
=SWITCH(G2,"W","WEB","S","STORE","A","APP","기타")
=IFERROR(XLOOKUP(A2,Price[Item],Price[Price]),"가격없음")
=XLOOKUP(1,(tbl[Item]=J2)*(tbl[Region]=K2),tbl[Price])
=LET(x,E2,r,B2,IF(AND(r="국내",x>=50000),"무료배송","유료"))
IF 함수 개념: 조건식과 평가 흐름
IF의 기본 구문은 =IF(logical_test, value_if_true, [value_if_false])입니다. 조건(logical_test)이 TRUE/FALSE를 만들고, 그 결과에 따라 값을 반환합니다.
다중 조건: AND·OR·NOT + 불리언 산술
AND/OR/NOT로 다중 조건을 만들 수 있고, 고급 패턴으로는 AND는 곱(*), OR는 합(+)으로 조건을 결합해 다중조건 조회 수식을 깔끔하게 만들 수 있습니다.
결과가 3개 이상이면: 중첩 IF vs IFS vs SWITCH
| 상황 | 추천 | 이유 |
|---|---|---|
| 결과 2개 | IF | 가장 직관적 |
| 구간 분류 | IFS | 위에서부터 첫 TRUE 반환 |
| 코드 매핑 | SWITCH | 짧고 읽기 쉬움 |
| 자주 바뀌는 규칙 | 조회표 + XLOOKUP | 표만 수정하면 됨 |
| 수식 폭발 | LET/헬퍼열/LAMBDA | 유지보수/성능 개선 |
오류 처리: IFERROR/IFNA 전략
보고서에서 보기 싫다고 무조건 IFERROR로 덮으면 데이터 문제를 놓칠 수 있습니다. “예방(IF로 차단)”과 “치환(IFERROR)”을 구분하세요.
IF를 한계까지 쓰면 만나는 3가지 제한(64단·8192자·255)
- 함수 중첩 최대 64단
- 수식 길이 최대 8,192자
- 함수 인수 최대 255개
실무 예제(샘플 데이터)
| OrderID | Region | Customer | Amount | Status | Score | Channel | Note |
|---|---|---|---|---|---|---|---|
| O-001 | 국내 | 일반 | 45000 | 완료 | 92 | W | |
| O-002 | 해외 | VIP | 20000 | 진행 | 81 | A | urgent |
| O-003 | 국내 | VIP | 120000 | 완료 | 76 | S | |
| O-004 | 국내 | 일반 | 35000 | 보류 | 65 | W | |
| O-005 | 해외 | 일반 | 220000 | 완료 | 88 | A | |
| O-006 | 국내 | VIP | 51000 | 완료 | 95 | W | urgent |
| O-007 | 국내 | 일반 | 8000 | 진행 | 55 | S | |
| O-008 | 해외 | VIP | 99000 | 완료 | 73 | W | |
| O-009 | 국내 | 일반 | 150000 | 완료 | 84 | A | |
| O-010 | 국내 | VIP | 30000 | 반품 | 60 | S |
예제: 배송 정책(국내 + 50,000 이상 = 무료배송)
=IF(AND(B2="국내",D2>=50000),"무료배송","유료")
예제: 우선 처리(VIP 또는 200,000 이상 또는 urgent 포함)
=IF(OR(C2="VIP",D2>=200000,ISNUMBER(SEARCH("urgent",H2))),"우선","일반")
예제: 등급(IFS 권장)
=IFS(F2>=90,"A",F2>=80,"B",F2>=70,"C",TRUE,"D")
예제: 채널 라벨링(SWITCH)
=SWITCH(G2,"W","WEB","S","STORE","A","APP","기타")
LET로 리팩터링(가독성+속도)
=LET(st,E2,IF(st="반품","⚠ 반품건",IF(st="보류","보류",IF(st="완료","OK","진행중"))))
자주 쓰는 내부 링크(ExcelJump)
- IF 다중조건(AND/OR/IFS, XLOOKUP·FILTER 연계) 실무 가이드
- IFS 함수 정의 및 예제
- XLOOKUP 완전 정복
- 엑셀 함수 A~Z 무료 가이드
- 데이터 유효성 검사(입력 실수 방지)
맺음말
IF를 한계까지 쓰면 결국 승부는 구조(IFS/SWITCH/조회표/LET/LAMBDA)에서 납니다. 오늘 글의 샘플 표로 예제를 먼저 재현해 보세요.