엑셀 vlookup 함수를 수우미양가 성적표를 만드는 예제를 통해서 이해해보자. 엑셀 vlookup 함수에 대한 설명은 엑셀에 다음과 같이 나와있다. '배열의 첫 열에서 값을 검색하여, 지정한 열의 같은 행에서 데이터를 돌려줍니다. 기본적으로 오름차순으로 표가 정렬됩니다.' 설명 진짜 불친절하다. 이 설명을 이해하려면 먼저 배열(table_array)에 대해 이해해야 한다.
각 인수들을 한번씩 눈으로 확인해보자.
lookup_value, table_array, col_index_num, [range_lookup]
배열(table_array)이란?
여기서 배열의 일반적인 정의를 논하면 엑셀에서 말하는 배열을 이해하는데 어려움이 있을 수 있다. 간단히 vlookup 함수의 두 번째 인수값인 배열(table_array)은 다음 같은 행태다.
5행 2열의 테이블이 있고, 첫 번째 열은 점수를 나타내고 두 번째 열은 그 점수에 상응하는 수우미양가를 나타낸다. 각 열은 동일한 성질의 것이고 서로 대응되는 관계다. 엑셀 고급필터에서 조건을 외부에 써 놓고 이용하는 방식처럼 vlookup 함수도 위 배열(table array)를 외부에 써놓고 값의 판단(lookup_value가 수우미양가중 어떤 것인지) 비교를 위해 사용된다.
lookup_value?
다음과 같이 점수를 산출해 놓은 표가 있다고 하자. vlookup 함수의 첫번째 인수값인 lookup_value 는 뜻 그대로 검색(비교)의 대상이 되는 값을 말한다. 아래 테이블에서 보면 각 점수들이 lookup_value가 된다.
col_index
엑셀 vlookup함수의 정의를 다시 보면 배열의 첫 번째 열에서 값을 검색하여 지정한 열의의 같은 행에서 값을 돌려준다고 한다.
배열(table_array)에서 첫 번째 열은 0, 60, 70, 80, 90 이다, 이 값은 성적표의 각 점수 lookup_value와 비교가 되는 값이다. 점수와 비교하여 수우미양가중 하나를 돌려준다는 뜻인데, 배열의 1열은 범위가 아닌 그냥 하나의 경계값으로 되어 있다. vlookup 함수의 4번째 인자는 완전히 일치하는 값을 사용할 건지, 아니면 범위가 있는 값을 사용할 건지에 대한 옵션인데, 이에 대한 것은 나중에 설명하겠다. 여기서는 4번째 인자를 쓰지 않으면 디폴트 값으로 범위값을 사용한다는 의미다.
수우미양가
다음은 3가지 인수를 채워 넣어 수우미양가를 매긴 모양이다.
이젠 두 가지 유의 해야 할 부분이 남았다. 첫 째는, 채우기 할 때 상대참조와, 절대 참조에 관한 것이고, 둘 째는 4번째 인자에 대한 부연설명이다.
먼저 4번째 인자에 대한 설명을 하겠다.
[range_lookup]
4번째 인자를 사용하지 않으면 기본 값은 TRUE로 범위 값(유사일치)을 사용한다는 의미다. 범위 값 테이블은 다음과 같이 작성할 수 있다. 기존 테이블에서 열이 추가 되었다. 그리고 두 개의 테이블은 동일한 의미로 범위 값을 갖는다.
왼쪽 테이블을 사용하려면 table_array의 범위를 수정하고 col_index를 3으로 고치면 된다.
FALSE인 경우는 오른쪽 표의 형태로 정확히 lookup_value와 table_array의 첫 번째 열의 값이 일치해야 한다.
채우기를 사용하기 전에 주의!
상대 참조와, 절대 참조에 관한 내용이다.
다음은 그냥 채우기를 한 모양이다.
문제는 외부에 작성된 표가 절대참조가 되야 하기 때문에 발생한다.
채우기를 하기 전!에 다음과 같이 수정한 후 채우기를 하면 된다.
=VLOOKUP(D2,D14:E18,2)
=VLOOKUP(D2,$D$14:$E$18,2)
다음은 추가로 엑셀 소스 파일과 엑셀 if 함수 중첩을 이용하여 수우미양가를 매기는 방법입니다.
2015/07/08 - [엑셀] - 엑셀 if함수 이해와 활용
=IF(D2>=90,"수",IF(D2>=80,"우",IF(D2>=70,"미",IF(D2>=60,"양","가"))))