Today's Topic
vlookup 함수 + match 함수

vlookup 함수 이야기를 또 해볼까 합니다. mach함수와의 조합을 통한 vlookup 함수 자동화의 마지막 단계에 대한 이야기입니다. 굳이 마지막이라고 쓰는 이유는 경험상 이 정도 쓰면 정말 충분하기 때문입니다. 그럼, 대체 뭐길래 이렇게 얘기하나 살펴볼까요?

지난 번 예제를 조금 변행해서 시작해 보겠습니다. 가격이 하나 더 늘어서 최소가격과 최대가격 두 가지가 존재하고, 이 두 가지 가격을 모두 vlookup으로 가져오는 예제입니다. 

이때 D3에 vlookup(C3,$G$4:$J$6,3,Falase)가 들어가 있는데, Ctrl+C - Ctrl+V로 E3에 복사하게 되면 원하는 값이 나오지 않습니다. 왜냐하면 1) vlookup(C3 ...) 가 vlookup(D4 ...)로 자동으로 변경되기 때문이고, 2) 찾을 영역에서 원하는 값이 있는 위치를 4로 수정해주어야 하기 때문입니다. E3를 보면 vlookup(C3, ... , 4, False)로 바뀌어져 있는데 일일이 바꾸어주어야 하는 불편함이 있습니다. 

이걸 자동화 해보는 것, 즉 Ctrl+C - Ctrl+V로 통하게 함수를 수정해보는 것입니다. 첫번째로 C3를 $C4로 수정하면 됩니다. (F4를 누르면 되는 것 알고 계시죠?)

그럼, 찾을 영역에서 원하는 값이 위치한 순서를 어떻게 자동화할 것이냐 하는 문제가 남는데 그 해답은 바로 match라는 함수에 있습니다. 

match함수는? 원하는 값이 찾을 영역에서 몇 번째 위치하는 지를 돌려줍니다. vlookup과 상당히 비슷하죠? 다만, vlookup은 그 자리에 있는 값을, match는 위치/순서를 숫자로 돌려줍니다.

MATCH(lookup_value, lookup_array, [match_type])

  • lookup_value: 원하는 값/찾는 값
  • lookup_array: 찾을 영역 
  • [match_type]: 같은 값을 찾는 0으로 세팅하는 것을 추천

그럼 vlookup + match의 결과를 볼까요? 

vlookup에서 위치를 정하는 곳에 match함수가 들어가 있는 것을 볼 수 있습니다. match함수가 '위치/순서'를 return하는 함수기 때문에 딱 맞는 것이죠. vlookup의 찾을 영역의 제목에 해당하는 곳에서 "최소가격"이 몇 번째냐를 찾고 있는 것이죠. 

이해를 돕기 위해 "최소가격"이라고 key-in을 한 것인데, 이를 한 단계 더 자동화 해볼까요?

최소가격을 D2셀로 바꾼 뒤에 F4를 눌러 D$2로 바꾸었습니다. 하나하나 바꾸다 보니 함수가 매우 복잡해 보이긴 하지만 조금만 연습해 보시면 패턴이 익으실 것입니다. 

이렇게 바꾸어 두면 D3에 있는 값을 어떻게 Copy해도 다 원하는 값을 불러오게 되어 있습니다. D2, D3에 있는 값만 적절하게 바꾸어만 주면 찾아오는 값들도 바뀌고 아주 편리하게 쓰실 수 있습니다. 

130112_Sample01.xlsx

AND