IFS 함수 업그레이드: SWITCH·XLOOKUP·LET·LAMBDA 선택법

IFS 함수 업그레이드: SWITCH·XLOOKUP·LET·LAMBDA로 “조건 분기”를 유지보수 가능하게

실무에서 IFS를 쓰다 보면 어느 날 갑자기 수식이 “사람이 읽을 수 없는 길이”가 됩니다. 조건이 늘어나고, 규칙이 바뀌고, 같은 로직을 여러 시트에 복사하면서 가독성·유지보수·성능이 동시에 무너져요. 이 글은 IFS 함수 업그레이드를 목표로, 상황별로 더 좋은 선택지(SWITCH, XLOOKUP 조회표, LET, LAMBDA)를 바로 갈아타는 루트로 정리합니다.

Quick Fix: IFS를 “지금 당장” 깔끔하게 업그레이드하는 5분 루트

1) IFS 마지막에 기본값(디폴트)부터 넣기

=IFS(
  [@점수]>=90,"A",
  [@점수]>=80,"B",
  [@점수]>=70,"C",
  TRUE,"D"
)

2) “코드 → 라벨” 매핑이면 SWITCH로 변경

=SWITCH([@채널],
  "W","WEB",
  "S","STORE",
  "A","APP",
  "ETC"
)

3) 규칙이 자주 바뀌면 “조회표(XLOOKUP)”로 테이블화

=XLOOKUP([@채널], 규칙표[코드], 규칙표[라벨], "ETC")

4) LET으로 중간 계산을 “변수”처럼 이름 붙이기

=LET(
  amt, [@금액],
  vip, [@고객]="VIP",
  IFS(vip, "우선",
      amt>=200000, "우선",
      TRUE, "일반")
)

5) 같은 로직을 여러 곳에서 쓰면 LAMBDA로 “내 함수” 만들기

배송비, 수수료, 등급 산정 같은 로직은 파일 여기저기 복사됩니다. LAMBDA로 사용자 함수를 만들어두면 복붙을 끝낼 수 있어요.

IFS의 한계가 터지는 순간 3가지 (가독성·유지보수·성능)

  • 가독성 붕괴: 조건이 늘수록 검증이 어려워짐
  • 유지보수 붕괴: 규칙이 바뀔 때마다 수식 수정
  • 성능 붕괴: 조건마다 무거운 계산을 반복

업그레이드 1 — 값 매핑은 SWITCH가 더 짧다

채널코드(W/S/A…), 상태코드(100/200/300…)처럼 “정확히 일치 매핑”이면 SWITCH가 더 짧고 기본값도 넣기 쉬워요.

예시: 채널 코드 라벨링

=SWITCH([@채널],
  "W","WEB",
  "S","STORE",
  "A","APP",
  "C","CS",
  "ETC"
)

업그레이드 2 — 규칙이 자주 바뀌면 XLOOKUP “조회표”로 바꿔라

정책이 바뀌는 게 정상이라면, 수식에 규칙을 박지 말고 표(테이블)에 규칙을 저장하고 XLOOKUP으로 불러오세요.

업그레이드 3 — LET로 수식을 분해하면 읽기/속도가 같이 좋아진다

=LET(
  customer, [@고객],
  amt, [@금액],
  note, [@메모],
  isVIP, customer="VIP",
  isHigh, amt>=200000,
  isUrgent, ISNUMBER(SEARCH("urgent", note)),
  IF(isVIP+isHigh+isUrgent>0, "우선", "일반")
)

업그레이드 4 — LAMBDA로 “내 함수”를 만들면 복붙 지옥이 끝난다

  1. 수식 탭 → 이름 관리자
  2. 새로 만들기
  3. 이름: SHIP_FEE
  4. 참조 대상(Refers to): 아래 수식 붙여넣기
=LAMBDA(region, amount,
  LET(
    r, region,
    a, amount,
    IF(r="국내",
      IF(a>=50000, 0, 3000),
      IF(a>=200000, 0, 7000)
    )
  )
)

등록 후 사용:

=SHIP_FEE([@구분], [@금액])

실무 예제: 등급·채널·배송비·프로모션을 한 파일에서 통일하는 설계

아래 샘플 데이터를 그대로 만들면, 업그레이드 루트를 한 번에 재현할 수 있어요. 엑셀에서 입력 후 Ctrl + T로 표로 바꾸세요(표 이름: Orders).

주문ID구분고객금액점수채널메모
O-001국내일반4500092W
O-002해외VIP2000081Aurgent
O-003국내VIP12000076S
O-004국내일반3500065W
O-005해외일반22000088A
O-006국내VIP5100095Wurgent
O-007국내일반800055S
O-008해외VIP9900073W
O-009국내일반15000084A
O-010국내VIP3000060S

Troubleshooting

증상원인해결
IFS가 가끔 빈칸/에러디폴트(TRUE)가 없음마지막에 TRUE,"기본값" 추가
조건이 많아 수정이 무서움규칙이 수식에 박힘규칙을 표로 분리하고 XLOOKUP
수식이 길고 느림중복 계산LET로 중간값 캐시
시트마다 로직이 다름복붙 분기LAMBDA로 단일 함수화
코드 라벨링 수식이 김정확히 일치 매핑을 IFS로 처리SWITCH로 변경

관련 글 (ExcelJump 내부링크)

외부 출처(공식 문서)

Leave a Reply

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