본문 바로가기
업무 지식/엑셀 함수

[엑셀] VLOOKUP 함수 사용 시 찾을 값이 첫 번째 열에 없을 때 해결하는 방법(CHOOSE 함수 활용)

by 김억지 2023. 8. 3.

실무에서 정말로 많이 사용하는 함수가 VLOOKUP 함수입니다. 

 

[엑셀] 실무에서 많이 쓰이는 VLOOKUP 함수의 사용 방법

실무에서 정말로 많이 쓰이는 함수가 바로 VLOOKUP 함수입니다. VLOOKUP 함수는 표의 첫 열에서 값을 찾은 후, 해당 값의 같은 행에 있는 n번째 값을 가져오는 함수입니다. 함수의 구조는 아래와 같습

pddwork.tistory.com

 

그런데 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셀의 성명을 바꿨을 때 해당 값을 가져오게 됩니다.

댓글