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 함수를 다룰 예정이에요.
수식 안에서 변수를 선언하고 재사용하는 방법입니다.
'엑셀' 카테고리의 다른 글
| 엑셀 SEQUENCE RANDARRAY 사용법 - 배열 생성과 함수 조합 패턴 (1) | 2026.03.02 |
|---|---|
| 엑셀 LET LAMBDA 함수 사용법 - 수식 안에서 변수 선언하기 (0) | 2026.03.02 |
| 엑셀 파워쿼리 기초 - 데이터 정제 자동화 입문 (0) | 2026.02.27 |
| 엑셀 단축키 빠른 실행 도구 모음 정리 - 작업 속도 올리기 (0) | 2026.02.27 |
| 엑셀 공동 작업 변경 내용 추적 - 여러 사람이 함께 편집하기 (0) | 2026.02.26 |