Today's Agenda

VLOOKUP함수 사용시 유의점 세 가지


vlookup은 실무적으로 참 많이 사용하게 되는 함수입니다. 그래서 이 함수가 없었으면 얼마나 힘들었을까 생각이 들만큼 유용한 함수이기도 하지만, 가끔은 원하는 대로 동작하지 않거나 잘못 된 값을 return하는 바람에 고생도 참 많이 시키는 함수입니다. 


저도 설 연휴 전날 업무 중에 vlookup함수가 제 마음처럼 동작해주지 않아 마음고생을 한참 한 후에야 고칠 수 있었습니다. 물론 vlookup함수를 쓸 때 제가 뭔가를 잘 못 적었기 때문이지만, 막상 그 상황에서는 뭐가 잘 못 되었는지 잘 보이지가 않더라구요. 그래서 vlookup함수를 사용할 때 자주하게 되는 실수 세 가지를 말씀드리고자 합니다. (어쩌면 제가 자주하는 실수일수도 있겠네요.;;;) 여러분들도 vlookup함수가 원하는 대로 동작하지 않을 때 혹 이것 때문은 아닌가 떠올려 보시면 좋을 것 같습니다. 


1. vlookup의 찾은 영역을 고정시키지 않는 실수

아래 예제의 D3셀을 보시면, vlookup함수를 사용해서 F4:I6영역에서 최소가격을 찾아오고 있습니다. 그랜저의 최소가격인 2,700만원을 return하고 있으므로 잘 동작하는 것 처럼 보입니다. 


그러나, D3셀에 있는 내용을 D4~D7셀까지 복사하게 되면 아래와 같이 #N/A라는 값이 return되게 됩니다. D4~D7셀로 함수가 복사되며, 찾을 영역도 함께 변경되고 있기 때문인데요. 즉, D3셀은 F4:I6에서 원하는 값을 찾고 있는데 반해, D3셀보다 두 칸 아래인 D5셀은 F4:I6영역보다 두 줄 아래인 F6:I8영영역에서 값을 찾고 있게 되는 것입니다. (아래 그림에서 노란색 Highlight부분 참조)


2. 찾을 영역의 기준열에 중복값이 존재하는 경우

이것은 어떻게 보면 실수라기 보다는 데이타 관리 자체의 문제인데요. 아래 F4셀과 F6셀을 보시면 각각 '그랜저', '그랜저' 똑같은 데이타가 존재합니다. Note를 통해 F4셀의 그랜저는 구형 가격으로 구매할 수 없다는 것을 Noting해주고 있지만, vlookup함수는 이를 알아서 적용해주지는 못 합니다. F6에 있는 그랜저가 구매가능한 것이고, 그러므로 3,000만원을 return해야하지만 D3셀에서는 2,700만원을 return하고 있습니다. 


위의 예제에서는 한 눈에 알아챌 수 있지만, 목록이 길어질 경우에는 중복값이 존재하는 지 모른 채 vlookup함수를 사용하게 되는 경우가 많습니다. 이럴 경우 항상 첫번째로 만나는 값을 기준으로 vlookup함수가 동작하기 때문에, 예상했던 것과 다른 값을 return하게 됩니다. 그러므로, 중복 값이 있는 지 확인하는 절차를 잊지 말아 주시기 바랍니다. 


3. 영역을 너무 적게 지정하는 경우

혹시 아래 예제의 D3셀의 내용 =VLOOKUP(C3, $F$4:$G$7, 3, FALSE)를 보고 무엇이 잘 못 되었는지 아실 수 있는 분이 계신가요?


이 케이스가 바로 제가 설 연휴 전날에 고생하던 케이스인데요. 어떻게 보면 매우 단순한 실수이긴 하지만, 어느 정도 VLOOKUP함수에 자신감이 붙고 키보드로 함수를 입력해갈 때 쯤 종종 하게 되는 것 같습니다. 


최소가격은 H열에 존재하므로, VLOOKUP함수에서 최소한 F열에서 H열이상까지 범위로 잡아줬어야 하지만 위의 예제에서는 F4:G7로 G열까지만 잡아주고 있기 때문에 값을 찾을 수 없어 #REF!라는 에러를 RETURN하고 있는 것입니다. 함수 내부적으로도 좌우로 두열 밖에 지정해놓지 않고 3칸을 움직이라고 하고 있는 것이지요. 


알고 나면 어이없는 넌센스 퀴즈도 풀기전에는 난감하듯이 위의 예제도 진짜 단순하지만 막상 만나게 되면 고생하는 경우가 종종 있습니다.


세 가지의 자주하는 실수 유형을 나열해 드렸는데요. 이런 게 있구나 기억하고 계시다가 #N/A, #REF!를 만났을 때 혹시 위에서 언급한 1번, 3번 케이스는 아닌 지 확인해보시면 좋을 것 같고, 2번 케이스의 경우에는 에러가 발생하지는 않기 때문에 찾을 영역을 선정하실 때 혹 중복값이 있는 것은 아닌지 유의하시는 것이 좋겠습니다. 


130211_Sample01.xlsx



AND