본문 바로가기

엑셀

엑셀 SWITCH CHOOSE 함수 사용법 - 다중 조건 분기

반응형

IF 함수를 여러 번 중첩하면 수식이 길어지고 읽기 어려워요.
SWITCH와 CHOOSE는 값에 따라 여러 결과 중 하나를 반환하는 함수로, 중첩 IF를 깔끔하게 대체할 수 있습니다.

 

이 글에서는 SWITCH와 CHOOSE의 문법, 차이점, 실무 예제를 다룹니다.

SWITCH 함수 - 값 매칭으로 결과 반환

=SWITCH(대상값, 비교값1, 결과1, 비교값2, 결과2, ..., [기본값])

 

사용 가능 버전: Excel 2019, Excel 365

 

대상값을 비교값1, 비교값2, ... 순서대로 비교해서 일치하는 비교값의 결과를 반환해요.
모두 일치하지 않으면 기본값을 반환합니다.

 

예제 1 - 등급 변환

  A B
1 등급코드 등급명
2 A ?
3 B ?
4 C ?

 

B2에 입력:

=SWITCH(A2, "A","우수", "B","보통", "C","미흡", "미분류")

 

IF로 작성하면:

=IF(A2="A","우수",IF(A2="B","보통",IF(A2="C","미흡","미분류")))

 

SWITCH가 훨씬 읽기 쉬워요. 비교값-결과 쌍이 최대 126개까지 가능합니다.

예제 2 - 부서코드를 부서명으로 변환

=SWITCH(A2,
  10, "영업팀",
  20, "개발팀",
  30, "기획팀",
  40, "인사팀",
  "기타부서")

예제 3 - 월을 분기로 변환

=SWITCH(TRUE,
  MONTH(A2)<=3, "Q1",
  MONTH(A2)<=6, "Q2",
  MONTH(A2)<=9, "Q3",
  MONTH(A2)<=12, "Q4")

 

첫 인수에 TRUE를 넣으면 비교값 자리에 조건식을 사용할 수 있어요.
IFS 함수와 비슷한 동작이지만, 기본값을 마지막에 넣을 수 있다는 차이가 있습니다.

CHOOSE 함수 - 순서 번호로 결과 반환

=CHOOSE(인덱스, 결과1, 결과2, 결과3, ...)

 

사용 가능 버전: 모든 엑셀 버전

 

인덱스가 1이면 결과1, 2이면 결과2, 3이면 결과3을 반환해요.
인덱스는 1~254 범위의 정수여야 합니다.

 

예제 1 - 요일 번호를 한글 요일로 변환

WEEKDAY 함수는 요일을 숫자(1=일~7=토)로 반환해요.
CHOOSE로 한글 요일명으로 바꿀 수 있습니다.

=CHOOSE(WEEKDAY(A2), "일","월","화","수","목","금","토")

 

TEXT(A2,"AAAA")로도 같은 결과를 얻을 수 있지만, "일요일" 대신 "일"처럼 글자 수를 조절하려면 CHOOSE가 유용해요.

예제 2 - 분기 번호로 시작월 구하기

=CHOOSE(B2, "1월", "4월", "7월", "10월")

B2가 1이면 "1월", 2이면 "4월", 3이면 "7월", 4이면 "10월"을 반환해요.

예제 3 - CHOOSE로 VLOOKUP 범위 동적 지정

CHOOSE를 VLOOKUP의 참조 범위로 활용하면 가상의 배열을 만들 수 있어요.

=VLOOKUP(A2, CHOOSE({1,2}, D2:D10, E2:E10), 2, 0)

D열에서 A2를 찾아 E열의 값을 반환해요.
열이 떨어져 있어서 일반 VLOOKUP으로 지정하기 어려운 경우에 유용합니다.

SWITCH vs CHOOSE 비교

항목 SWITCH CHOOSE
매칭 방식 값을 비교해서 매칭 순서 번호(1,2,3...)로 선택
사용 가능 버전 2019, 365 모든 버전
기본값 마지막 인수로 지정 가능 없음 (#VALUE! 오류)
적합한 상황 코드→이름 변환, 문자열 매칭 연속 번호 기반 변환
최대 쌍 수 126쌍 254개

 

SWITCH는 값으로 찾고, CHOOSE는 번호로 찾는다고 기억하면 돼요.

IFS와의 비교

2편에서 다룬 IFS 함수도 다중 조건 분기 함수예요.

함수 조건 방식 기본값
IF 중첩 IF(조건,값,IF(조건,값,...)) Else 부분
IFS 조건1,결과1,조건2,결과2,... TRUE,기본값 으로 처리
SWITCH 값 매칭 (=일치 비교) 마지막 인수

 

범위 조건(>=300)은 IFS나 IF가 적합하고, 정확한 값 매칭(코드 변환)은 SWITCH가 적합해요.

자주 하는 실수 / 주의사항

1. SWITCH에서 기본값을 빠뜨리면 #N/A 오류

일치하는 비교값이 없고 기본값도 없으면 #N/A가 나요.
기본값을 항상 넣어두세요.

2. CHOOSE의 인덱스가 0이거나 범위를 벗어나면 #VALUE!

CHOOSE의 인덱스는 1부터 시작해요.
0이나 음수, 또는 결과 수를 초과하는 값이 오면 오류가 발생합니다.

3. SWITCH는 Excel 2016에서 사용 불가

SWITCH는 2019/365 전용이에요. 2016 이하에서는 중첩 IF나 CHOOSE를 사용해야 합니다.

관련 함수 안내

2편의 IF/IFS 함수와 비교해서 상황에 맞는 함수를 선택하세요.
1편의 VLOOKUP이나 5편의 XLOOKUP도 코드→이름 변환에 사용할 수 있지만, 별도 참조 테이블이 필요해요. SWITCH는 참조 테이블 없이 수식 안에서 직접 매핑할 수 있다는 장점이 있습니다.

 

다음 글에서는 LET 함수와 LAMBDA 함수를 다룰 예정이에요.
수식 안에서 변수를 선언하고 재사용하는 방법입니다.

반응형