엑셀의 CHOOSE 함수는 나열된 값 목록에서 원하는 위치의 값을 선택할 수 있는 함수입니다.
CHOOSE 함수는 표현식이 숫자로 된 값만 가능하고 기능이 제한적입니다. 엑셀 2019 버전부터 사용할 수 있는 SWITCH 함수는 숫자 뿐만 아니라 문자로도 비교가 가능하고, 여러 개의 값과 비교하여 일치하는 하나의 값을 구해주며 CHOOSE 함수를 대체할 수 있습니다.
구문(Syntax)
=CHOOSE(index_num, value1, [value2], …)
나열된 값 목록에서 원하는 위치의 값을 반환한다.
인수 :
- index_num : 값을 선택할 위치 번호
- value1 : index_num이 1일 때 선택할 값
- value2 : index_num이 2일때 선택할 값…
사용 예
1) 영어 월 이름 가져오기
각 월에 해당하는 영어 이름을 가져오려면 아래 그림과 같이 [C5] 셀에 다음 수식을 입력합니다.
=CHOOSE(B5,"January","February","March","April","May","June","July","August","September","October","November","December")
- 첫번째 인수 [B5]에는 값을 선택할 위치번호 1이 입력되어 있으므로 첫 번째 입력되어 있는 'January'를 가져온다. 만약 [B5] 셀에 2가 입력되어 있다면 값 목록에서 두 번째를 가져오므로 "February"를 가져온다.
- 두번째 인수 부터는 첫번째 인수 값에 따라서 선택되며 최대 254개까지 지정할 수 있다.
아래 그림과 같이 1월뿐만 아니라 2월부터 12월까지 숫자값을 입력하고 [C5]셀의 수식을 복사해서 나머지 셀에 붙여넣으면 각 월에 해당하는 영어이름을 가져옵니다.
2) IF함수 대신 CHOOSE함수 사용하기
엑셀에서 IF 함수는 여러모로 쓸모가 많지만 IF를 중첩해서 사용하면 알아보기 힘들어 지고 나중에 수정하기도 힘들어 집니다.
아래의 예와 같이 아마추어 마라톤 행사에 참가자들이 선택하는 항목에 따라서 참가자별 금액합계를 구할때는 IF보다는 CHOOSE함수를 이용하면 간단하게 처리할 수 있습니다.
아마추어 마라톤 행사 주최측에서 참가자별 선택항목에 따라 납부해야 할 금액을 엑셀로 정리해야 하는 경우를 가정해 보겠습니다.
- 마라톤 참가자들은 기본 참가비 50,000원은 반드시 선택해야 하고 나머지 티셔츠나 운동화는 원하면 추가할 수 있다.
- 티셔츠와 운동화는 원하면 추가할 수 있으므로 참가자는 총 4가지 유형중에서 하나를 선택할 수 있다.
- 참가자들은 홈페이지를 통해서 4가지 참가신청유형 중에서 각자 원하는 원하는 것을 선택 후 마라톤 참가신청을 하고 마라톤행사 주최측에서는 유형별로 금액 집계를 한다.
먼저 IF함수를 이용해서 각 참가자별로 납부해야 할 금액을 구해보겠습니다. 다음과 같이 복잡하게 IF를 무려 네번이나 중첩해서 써야 합니다.
=IF(I22=1,$C$22,IF(I22=2,$C$22+$C$23,IF(I22=3,$C$22+$C$24,IF(I22=4,$C$22+$C$23+$C$24,0))))
- 만약 참가신청 유형이 1이면 기본 참가비만 내면 되므로
참가비 50,000원을 [C22] 셀에서 가져오고 - 만약 참가신청 유형이 2이면 참가비에 더해 티셔츠 금액을 내야 하므로 C22+C23로 계산하고...
만약 참가신청 유형이 4가지 아니라 5가지, 6가지, 7가지로 늘어난다면 수식은 점점 길어지고 알아보기 힘들게 됩니다.
위의 예를 CHOOSE 함수를 이용하여 간단히 해결해 보겠습니다.
=SUM(CHOOSE(I33,$C$33,$C$33:$C$34,($C$33,$C$35),$C$33:$C$35))
- 첫번째 인수 [I33]는 위치를 찾기 위한 값이다. [I33] 셀에 2가 입력되어 있으므로 신청유형이 2인 참가비+티셔츠 금액을 가져와야 한다.
- 두번째 인수 [$C$33]는 첫번째 인수가 1일때 선택될 값이다.
- 세번째 인수는 [$C$33:$C$34]인데 값이 아니라 범위이다. 범위도 인수로 사용할 수 있다. 범위가 선택되므로 SUM함수를 이용해서 CHOOSE함수가 반환한 범위를 더하면 최종적으로 범위값이 더해진다. [$C$33:$C$34]는 참가비와 티셔츠금액이 있는 범위이므로 참가신청 유형 2을 선택하면 CHOOSE함수가 80,000원을 구해준다.
- 네번째, 다섯번째 인수도 세번째 인수와 마찬가지 방식으로 사용된다.
[찾기 및 참조영역 함수 목록 ]
- EXPAND 함수 – 범위 확장하기
- TOCOL 함수 – 범위를 하나의 열로 만들기
- TOROW 함수 – 범위를 하나의 행으로 만들기
- WRAPCOLS 함수 – 열 단위로 범위 채우기
- WRAPROWS 함수 – 행 단위로 범위 채우기
- 여러 열에서 중복 제거하기
- 판매실적 합치고 열 순서 바꾸기
- IMAGE 함수 – 셀에 이미지 삽입하기
- GROUPBY 함수 - 집계, 정렬, 필터링
- GROUPBY 함수로 한 번에 월별 합계 구하기
- PIVOTBY 함수 – 행과 열로 집계, 정렬, 필터링
- DROP 함수 – 범위 제외하고 가져오기
- TAKE 함수 – 범위 가져오기
- CHOOSEROWS 함수 – 범위에서 행 가져오기
- CHOOSECOLS 함수 – 범위에서 열 가져오기
- HSTACK 함수 – 배열을 수평으로 합치기
- VSTACK 함수 – 배열을 수직으로 합치기
- 찾기 및 참조영역 함수 알아보기
- 행과 열 조건을 만족하는 값 찾기
- 엑셀에서 대소문자 구분해서 찾기
- VLOOKUP 함수 - 범위에서 값 찾기
- OFFSET 함수로 월별 누계 구하기
- 엑셀에서 연속되지 않은 구간의 값 찾기
- UNIQUE 함수 - 중복 제거하기
- FORMULATEXT 함수 - 수식을 텍스트로 표시
- XMATCH 함수 사용법
- FILTER 함수 - 원하는 조건으로 필터링하기
- SORTBY 함수 - 범위의 값을 기준으로 데이터 정렬하기
- SORT 함수 - 데이터 정렬하기
- XLOOKUP 함수 - 표에서 값찾기(VLOOKUP 단점 해결)
- HLOOKUP 함수 - 표를 수평으로 따라가면서 값찾기
- HYPERLINK 함수 - 하이퍼링크 만들기
- ROWS 함수 - 행의 개수 구하기
- COLUMNS 함수 - 열의 개수 구하기
- AREAS 함수 - 참조영역내의 영역의 개수 구하기
- ADDRESS 함수 - 행,열 번호로 셀주소 표시하기
- TRANSPOSE 함수 - 행과 열을 바꾸기
- INDIRECT 함수 – 문자열을 참조로 바꾸기
- LOOKUP 함수 - 범위에서 값 찾기
- OFFSET 함수 - 행과 열 이동 후 참조구하기
- COLUMN 함수 - 열 번호 구하기
- ROW 함수 - 행 번호 구하기
- CHOOSE 함수 - 값목록에서 원하는 값 선택하기
- MATCH 함수 - 범위에서 값의 위치 찾기
- INDEX 함수 - 범위에서 행과 열을 이용하여 값 찾기
- VLOOKUP 함수 - 표에서 값 찾기(간단 버전)
- VLOOKUP으로 안될때 INDEX, MATCH 함수 사용하기
- INDEX, MATCH 함수를 이용한 다중조건으로 값찾기