실무에서 정말로 많이 사용하는 함수가 VLOOKUP 함수입니다.
그런데 VLOOKUP 함수의 구조적 한계가 있습니다. 바로 배열의 '첫 번째' 열에서 값을 검색하여 지정한 열의 같은 행에 있는 값을 가져온다는 점입니다. 즉 검색하고자 하는 값이 첫 번째 열에 없을 경우에는 원하는 값을 가져올 수 없습니다.
예를 들어 위와 같은 상황이 대표적인 예입니다. H2셀에 이름을 입력하면 I2셀부터 K2셀에 자동으로 부서, 직명, 생년월일을 가져올 수 있도록 함수 수식을 입력하고자 합니다.
생년월일의 경우에는 원본 데이터의 위치가 이름보다 오른쪽에 위치해 있기 때문에 VLOOKUP 함수를 사용하여 값을 가져오는데 아무런 문제가 없습니다.
그런데 문제는 부서와 직명입니다. VLOOKUP 함수가 첫 번째 열에서 값을 검색하고 그 값을 찾은 다음 같은 행에 있는 데이터를 가져오는 함수인데, 찾을 값인 성명보다 왼쪽에 있는 부서와 직명은 일반적인 VLOOKUP 함수로는 가져올 수 없습니다.
이럴 때의 문제를 해결할 수 있는 방법이 바로 CHOOSE 함수를 사용하여 원본 데이터의 배열을 새로 만드는 것입니다.
I2셀에 '=VLOOKUP(H2,CHOOSE({1,2,3},D2:D13,B2:B13,C2:C13),2,0)'을 입력합니다.
수식이 복잡해보일 수 있지만 VLOOKUP 함수의 두 번째 인수를 'CHOOSE({1,2,3},D2:D13,B2:B13,C2:C13)'로 입력한 것이므로 이 두 번째 인수의 구조만 이해하시면 됩니다.
VLOOKUP 함수의 두 번째 인수는 찾을 값(성명)이 첫 번째 열에 위치한 배열을 입력하는 인수입니다. 만약 성명이 B열, 부서가 C열, 직명이 D열에 위치해 있다면 B2:D13으로 입력하면 됩니다.
그런데 문제는 찾으려는 값인 '성명'이 첫 번째 열에 있지 않다는 점입니다. 그래서 CHOOSE 함수를 통해 배열의 위치를 새롭게 설정하는 것입니다. 즉 'CHOOSE({1,2,3},D2:D13,B2:B13,C2:C13)'의 의미는 첫 번째 열을 'D2:D13'로 설정하고 두 번째 열을 'B2:B13'으로 설정하고 세 번째 열을 'C2:C13'으로 설정한다는 뜻입니다.
이렇게 배열을 새롭게 설정하고 VLOOKUP 함수의 세 번째 인수를 '2'로 입력을 하면 새롭게 설정한 배열의 두 번째 열에 있는 값을 가져오므로 B2:B13에 있는 값을 가져오는 것입니다.
J2셀에는 I2셀에 입력한 수식에서 세 번째 인수만 '3'으로 바꿔줍니다.
새롭게 설정한 배열에서 직명은 세 번째 열에 위치하므로 VLOOKUP 함수의 세 번째 인수를 '3'으로 입력하면 직명에 해당하는 값을 가져올 수 있습니다.
이렇게 수식을 입력하면 H2셀의 성명을 바꿨을 때 해당 값을 가져오게 됩니다.
'업무 지식 > 엑셀 함수' 카테고리의 다른 글
[엑셀] 셀 안에 포함되어 있는 특정 단어의 개수 구하는 방법 (0) | 2024.07.15 |
---|---|
[엑셀] LEN, SUBSTITUTE 함수를 사용하여 셀의 단어 개수 구하는 방법 (0) | 2024.07.05 |
[엑셀] CHOOSE, WEEKDAY 함수로 요일 표시하는 방법 (0) | 2023.08.01 |
[엑셀] CHOOSE 함수로 목록에서 값을 골라 나타내는 방법 (0) | 2023.07.30 |
[엑셀] 이름 중 일부를 별표(*)로 표시하는 방법 (0) | 2023.07.25 |
댓글