엑셀 CHOOSE·SWITCH 함수 — 번호나 값에 따라 결과 골라오기

최종 업데이트 2026-08-17

CHOOSE와 SWITCH는 둘 다 '여러 후보 값 중 하나를 골라 보여주는' 함수지만 고르는 기준이 다릅니다. CHOOSE는 숫자 순번(1번째, 2번째…)으로 고르고, SWITCH는 특정 값과 정확히 일치하는 항목을 찾아 고릅니다. 중첩 IF를 대체할 수 있어 수식을 훨씬 깔끔하게 만들어 줍니다.

CHOOSE 함수 — 순번으로 값 고르기

=CHOOSE(순번, 값1, 값2, 값3, ...)

순번에 1이 들어오면 값1을, 2가 들어오면 값2를 반환합니다. 분기 번호나 등급 번호처럼 '1, 2, 3'으로 이미 숫자화된 데이터를 사람이 읽기 좋은 텍스트로 바꿀 때 유용합니다.

예를 들어 A열에 분기 번호(1~4)가 있고, 이를 '1분기'~'4분기'라는 텍스트로 바꾸고 싶다면 다음과 같이 씁니다.

=CHOOSE(A2, "1분기", "2분기", "3분기", "4분기")

요일 번호(WEEKDAY 결과 등)를 요일명으로 바꾸거나, 설문 응답의 척도 번호(1~5)를 '매우불만족~매우만족'으로 바꿀 때도 같은 방식을 씁니다. CHOOSE는 순번이 범위를 벗어나면(예: 0이나 5) #VALUE! 오류를 냅니다.

SWITCH 함수 — 값이 일치하는 결과 고르기

=SWITCH(비교할값, 조건값1, 결과1, 조건값2, 결과2, ..., 기본값)

SWITCH는 순번이 아니라 실제 값(텍스트·숫자)이 일치하는지를 비교합니다. 중첩 IF로 '등급 코드에 따라 등급명 표시'를 만들면 IF가 여러 겹 쌓여 읽기 어렵지만, SWITCH는 한눈에 매핑 관계를 볼 수 있습니다.

=SWITCH(B2, "A", "우수", "B", "보통", "C", "미흡", "등급없음")

B2가 'A'면 '우수', 'B'면 '보통', 'C'면 '미흡'을 반환하고, 이 중 어떤 것도 아니면 마지막에 지정한 기본값 '등급없음'이 나옵니다. 마지막 인수를 생략하면 일치하는 값이 없을 때 #N/A 오류가 나므로, 실무에서는 기본값을 꼭 넣는 것을 권장합니다.

CHOOSE vs SWITCH vs 중첩 IF, 언제 무엇을 쓸까

  • 숫자 순번(1,2,3…)으로 값을 매핑한다 → CHOOSE
  • 특정 텍스트·코드 값과 정확히 일치하는 결과를 매핑한다 → SWITCH
  • 부등호(이상·이하·초과) 조건으로 구간을 나눠야 한다 → IF 중첩 또는 IFS
  • SWITCH·IFS는 엑셀 2019 이상, Microsoft 365, 구글시트에서 지원되며 구버전(2016 이하)에서는 지원되지 않습니다.

실무 응용 — 요일별 근무수당 배율 적용

WEEKDAY 함수로 요일 번호를 구한 뒤 CHOOSE로 요일별 수당 배율을 바로 적용할 수 있습니다. 예를 들어 평일은 1배, 토요일은 1.5배, 일요일은 2배를 적용한다면 다음처럼 작성합니다.

=CHOOSE(WEEKDAY(A2), 2, 1, 1, 1, 1, 1, 1.5)

WEEKDAY 기본값은 일요일이 1, 토요일이 7이므로 CHOOSE의 순서도 일요일부터 토요일 순으로 맞춰야 합니다. 순서를 헷갈리면 배율이 엉뚱하게 적용되니 반드시 WEEKDAY 결과값 순서와 CHOOSE 값 순서를 맞춰야 합니다.

자주 나는 오류와 주의사항

  • #VALUE! (CHOOSE): 순번이 정수가 아니거나 값 개수(최대 254개)를 초과하면 발생합니다.
  • #N/A (SWITCH): 일치하는 조건값이 없고 기본값도 지정하지 않았을 때 발생합니다. 항상 마지막 인수로 기본값을 넣으세요.
  • SWITCH는 대소문자를 구분하지 않지만, 앞뒤 공백은 다른 값으로 인식합니다. TRIM으로 공백을 정리한 뒤 비교하는 것이 안전합니다.
  • 구글시트 구버전이나 엑셀 2016 이하에서는 SWITCH 함수 자체가 없으므로 중첩 IFS나 VLOOKUP 매핑표로 대체해야 합니다.
💡

매핑해야 할 항목이 10개를 넘어가면 CHOOSE·SWITCH로 나열하기보다, 별도의 매핑표를 만들고 VLOOKUP·XLOOKUP으로 참조하는 편이 유지보수에 더 유리합니다.

IFS 함수와의 관계 — 구간 조건이면 IFS

CHOOSE·SWITCH는 둘 다 '정해진 값'을 기준으로 결과를 고르는 함수라, 점수 구간처럼 부등호가 필요한 조건에는 맞지 않습니다. 이런 경우에는 중첩 IF를 대체하는 IFS 함수를 씁니다.

=IFS(B2>=90, "A", B2>=80, "B", B2>=70, "C", TRUE, "F")

IFS는 조건을 위에서부터 순서대로 검사해 처음으로 참이 되는 조건의 결과를 반환합니다. 마지막에 TRUE를 조건으로 넣어두면 앞의 모든 조건에 해당하지 않을 때의 기본값(여기서는 'F') 역할을 합니다. 조건 순서를 뒤바꾸면(예: 낮은 점수 조건을 먼저 씀) 의도와 다른 결과가 나오므로 반드시 큰 값·작은 값 순서를 지켜야 합니다.

세 함수 선택 기준 요약표

상황적합한 함수이유
1,2,3 같은 순번으로 값을 고름CHOOSE순번을 그대로 인수 위치로 사용
코드·이름 등 정확히 일치하는 값 매핑SWITCH값 목록과 결과를 나란히 나열해 가독성이 좋음
이상·이하·초과 등 구간 조건IFS조건마다 부등호 비교가 가능
구버전(2016 이하) 호환 필요중첩 IFSWITCH·IFS 모두 미지원
⚠️

SWITCH·IFS는 엑셀 2016 이하나 매우 오래된 구글시트에서는 함수 자체가 없어 #NAME? 오류가 납니다. 거래처나 협업 상대가 구버전을 쓸 가능성이 있다면 중첩 IF로 대체하거나, 최소 지원 버전을 문서 상단에 메모해 두는 것이 안전합니다.

조건 매핑 수식, AI에게 설명하고 바로 받기 →

함께 보면 좋은 글