엑셀

엑셀에서 VLOOKUP 함수 오류 수정하기(2)

하늘불빛 2020. 6. 26. 22:06

엑셀에서 자주 사용하게 되는 vlookup 함수를 사용하다 보면, 가끔씩 이상하게 오류가 생길 때가 있다.

엑셀에서 VLOOKUP 함수 사용하기

 

엑셀에서 VLOOKUP 함수 사용하기

엑셀에서 사용하는 많은 함수 중에서 또 하나 가장 많이 활용되는 함수가 VLOOKUP 함수인 듯하다. 처음에는 생소하고, 어떻게 사용해야 하는지 몰라서 걱정했지만, 사용법을 알고나니 그렇게 어렵

2-step-up.tistory.com

 

원인은 오타와 함께 여러가지 이유가 될 수 있지만, 우선 찾으려는 값(lookup_value)이 찾을 공간(table_array)의 첫 번째 열의 값이 아니기 때문이다.

(아래의 글을 참고할 수 있다.)

 

- 엑셀에서 VLOOKUP 함수 오류 수정하기(1)

 

엑셀에서 VLOOKUP 함수 오류 수정하기(1)

엑셀에서 자주 사용하게 되는 vlookup 함수를 사용하다 보면, 가끔씩 이상하게 오류가 생길때가 있다. - 엑셀에서 VLOOKUP 함수 사용하기 엑셀에서 VLOOKUP 함수 사용하기 엑셀에서 사용하는 많은 함수

2-step-up.tistory.com

 

두 번째로 자주 오류가 나는 원인은 조금 생뚱맞지만, 찾으려는 값이 없기 때문이다.

 

하지만 vlookup 함수의 좋은 점은 꼭 정확한 값이 아니어도 찾을 수 있다는 점이다.

 


2. lookup_value 혹은 range_lookup 에 따른 오류

 

엑셀의 vlookup에서 값을 입력하는 방법은 아래와 같다.

VLOOKUP 수식

=VLOOKUP(찾으려는 항목(무엇을 찾는가), 찾을 공간(어디에서 찾는가), 가져올 값(찾을 공간의 몇번째 열), 일치 정도(정확하게 일치해야 하나 or 유사하게 일치해야 하나))

 

위에서와 같이 각 값이 들어가는 항목들의 실제 이름은 아래와 같다.

 


=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

 

즉, 각 항목의 이름은 아래와 같다.

 

찾으려는 항목(무엇을 찾는가)  :  lookup_value

찾을 공간(어디에서 찾는가)  :  table_array 

가져올 값(찾을 공간의 몇번째 열)  :  col_index_num, 

일치 정도(정확하게 일치해야 하나 or 유사하게 일치해야 하나)  :  [range_lookup]

 

이 중에서, 오류가 나는 두 번째 이유는

(1)정확한 값을 찾을 때 lookup_value가 없거나, 

(2)비슷한 값을 찾더라도 lookup_value가 작을 때는오류가 나게 된다.

 


일단 (1)정확한 값을 찾을 때 lookup_value가 없는 경우는, 

range_lookup 값이 FALSE(정확하게 일치하는 값)으로 설정하였을 때,

해당하는 값이 존재하지 않을 때이다.

 

이럴 때에는 정확하게 일치하는 lookup_value를 작성하거나, 데이터를 수정하는 수 밖에 없다. 

 


두 번째로, (2)비슷한 값을 찾더라도 lookup_value가 작을 때 나는 오류는 아래와 같다.

 

 

예를 들어, 아래의 붉은색 영역과 같은 데이터를 바탕으로, vlookup함수를 작성할 때, 

정확한 lookup_value 값을 모르는 상황에서,

lookup_value값을 10으로 설정하고,

range_lookup 값을 TRUE(비슷하게 일치하는 값)으로 설정하였을 때, 

아래와 같이 작성할 수 있다.

 

그런데, 엔터를 치고 결과를 보면, 아래와 같이 오류가 난다.

그 이유는 lookup_value(찾으려는 값)값이 table_array(찾을 공간)에 있는 값보다 작기 때문이다.

 

 

예를 들어, 

lookup_value값을 50으로 설정하고,

range_lookup 값을 TRUE(비슷하게 일치하는 값)으로 설정하였을 때, 

아래와 같이 작성할 수 있다.

그리고 나면, 가장 근접한 비슷한 값인 '선희'의 'H' 값이 나타난다.

 

그럼 찾고자 하는 값이 어느 한 쪽에 비슷할 때는 어떻게 될까?

 

lookup_value값을 32으로 설정하고,

range_lookup 값을 TRUE(비슷하게 일치하는 값)으로 설정하였을 때, 

아래와 같이 작성할 수 있다.

 

 

결과 값은 입력한 32보다 작은 30값을 찾아서 해당 [반 배정] 값을 출력해준다.

 

lookup_value값을 36으로 설정해도,

 

역시나 결과 값은 입력한 32보다 작은 30값을 찾아서 해당 [반 배정] 값을 출력해준다.

 

그럼 lookup_value값을 정확하게 40으로 설정하면,

 

당연히 40값을 찾아서 [반 배정] 값을 출력해준다.