IF · IFS · SWITCH · AND · OR로 조건식 끝! (다중 조건·중첩 최소화·성능/가독성 1분 컷)

IF IFS SWITCH AND OR — 꽁이가 IF·IFS·SWITCH 팻말과 AND·OR 포스트잇을 보여주는 에디터 콘셉트
IF · IFS · SWITCH · AND · OR로 조건식 끝! (다중 조건·중첩 최소화·성능/가독성 1분 컷)

IF · IFS · SWITCH · AND · OR로 조건식 끝! (다중 조건·중첩 최소화·성능/가독성 1분 컷)

편집자가 실제 Excel 365에서 재현·검증했으며, 초안 정리에 AI 도구를 보조적으로 활용했습니다.

문법 & 핵심 개념

함수형식포인트
IF=IF(조건, 값_if_true, 값_if_false)이분 분기. 복합 조건은 AND/OR 사용
IFS=IFS(조건1,결과1, 조건2,결과2, …)위→아래 순서 평가, 첫 참 결과 반환
SWITCH=SWITCH(식, 값1,결과1, 값2,결과2, …, [기본])정해진 값→라벨 매핑에 최적
AND/OR=AND(조건1,조건2,…) / =OR(…)복합 조건 생성

불리언(BOOLEAN) 규칙: TRUE=1, FALSE=0. 수식 곱셈(*)은 AND, 덧셈(+)은 OR로 동작합니다(FILTER/SUMPRODUCT와 궁합).

IF + AND/OR 기본

출결·점수 동시 조건

=IF(AND(Score>=90, Absence=0), "A", "B~F")

VIP 또는 최근 구매자

=IF(OR(VIP="Y", TODAY()-LastPurchase<=30), "우선고객", "일반")

빈칸/0 방어

=IF(OR(A2="", A2=0), "", A2*Rate)

IFS — 중첩 최소화

학점 라벨링

=IFS(Score>=90,"A", Score>=80,"B", Score>=70,"C", TRUE,"D")

상태 코드 → 문구

=IFS(Status="NEW","신규", Status="PENDING","진행중", Status="DONE","완료", TRUE,"기타")

SWITCH — 값 매핑

상태코드 5종 매핑(기본값 포함)

=SWITCH(Status, "N","신규","P","대기","R","반려","D","완료","U","보류","기타")

요일 번호 → 한글 요일

=SWITCH(WEEKDAY(Date,2),1,"월",2,"화",3,"수",4,"목",5,"금",6,"토",7,"일")

실무 패턴 12가지

① 가격 구간화(티어)

=IFS(Price<10000,"Entry", Price<50000,"Standard", Price<100000,"Pro", TRUE,"Elite")

② 배송비 정책(무료/유료)

=IF(Amount>=Threshold, 0, Fee)

③ 반품 리스크 라벨(텍스트 포함)

=IF(OR(ISNUMBER(SEARCH("defect", LOWER(Desc))), ReturnDays>30), "High","Normal")

④ 휴먼에러 방어: 0으로 나눔

=IF(Den=0, "", Num/Den)

⑤ 다중조건 + 스필(동적 배열)

=IF((Region="Seoul")*(Month=EOMONTH(TODAY(),0)), "Y","N")

⑥ KPI 신호등(이모지/기호)

=SWITCH(TRUE, Rate>=0.95,"🟢", Rate>=0.9,"🟡", TRUE,"🔴")

⑦ 결측치 대체(평균/중앙값)

=IF(Value="", AVERAGEIF(Value,"<>",Value), Value)

⑧ 고객 등급 + 혜택 문구

=SWITCH(Tier,"GOLD","무료배송","SILVER","쿠폰10%","BRONZE","적립2%","일반")

⑨ 텍스트 카테고리 + 조건

=IF(AND(Category="Keyboard", Sales>=1000000), "히트", "일반")

⑩ 영업일 기준 SLA 초과

=IF(WORKDAY(Start,N,,Holiday)<=Due,"On-time","Delay")

⑪ 점수대별 포인트

=VSTACK({"구간","포인트"}, {">=90","100" ; "80~89","70" ; "70~79","40" ; "<70","10"})

⑫ IFS ↔ XLOOKUP 전환(규칙 표로 치환)

// 규칙표 Cutline:Grade (하한표)
=XLOOKUP(Score, Cutline, Grade, , -1)

LET로 가독성/성능 향상

=LET(s, Score, a, Absence,
 IF(OR(s="", a=""), "", IFS(s>=90,"A", s>=80,"B", s>=70,"C", TRUE,"D")))

TIP 동일 참조(예: Score)를 LET 변수로 캐싱하면 큰 표에서 속도가 빨라지고 디버깅이 쉬워집니다.

자주 하는 실수 & 체크

  • 텍스트 “TRUE”/”FALSE”를 값으로 오해 — 따옴표 있으면 문자열입니다.
  • 비교 연산 우선순위A<B<C 형태는 금지. AND(A<B, B<C)로.
  • 빈칸·0·NA 혼동 — 정책을 정해 IF의 첫 분기에 방어 로직을 둡니다.
  • 긴 중첩 — IFS/SWITCH 또는 XLOOKUP(규칙표)로 치환해 유지보수성 향상.

요약

목표대표 공식
복합 조건 분기IF(AND/OR(...), 값1, 값2)
다중 구간/라벨IFS(조건1,라벨1, ... , TRUE,기본)
값 매핑SWITCH(식, 값,라벨, …, 기본)
규칙표 기반XLOOKUP(점수, Cutline, Grade, , -1)
성능/가독성LET(변수들, …)
현재 시트에서 가장 긴 IF 중첩 하나를 골라 IFS 또는 SWITCH + LET로 바꿔보세요. 가독성과 유지보수성이 즉시 개선됩니다.

Leave a Reply

Your email address will not be published. Required fields are marked *