티스토리 뷰

저번시간에 vlookup 함수에 대해서 포스팅을 했었는데 이 vlookup를 사용하다보면 직면할수밖에 없는 문제점이 하나 있습니다. 
hlookup도 마찬가지...
 

 

 

그림에서 보시다시피 이 lookup함수들은 기준점을 잡고 한방향으로밖에 못간다는 문제점이 있거든요.
vlookup는 기준점으로 왼쪽에 있는 데이터를 참조하지 못하고, hlookup는 위쪽에 있는 데이터를 참조하지 못합니다.
혹시라도 기준점에서 순번을 내는 칸에 '-1'같은 숫자를 대입해도 적용되지 않거든요.
 

 

 

위의 예제는 생일을 기준으로 직원의 이름을 찾고하 하는건데 이런 문제는 vlookup를 이용해 풀수가 없다는 얘기입니다...
그럴때 사용하는 함수가 바로 Index와 Match입니다.
그럼 먼저 이 함수들에 대해서 간단하게 설명 드리고 어떻게 적용을 하는지 알아볼게요.
 

=INDEX(참조범위, 행, 열)

 

 

index 함수는 범위를 배열로 지정해서 행, 열을 적으면 그 위치에 있는 값을 출력하게 해주는 함수입니다.
위의 식을 살펴보면
    
    =INDEX(B2:D6, 2, 3)

이라고 나와있는데 이 의미는 뭐냐면 B2:D6에 해당하는 셀에서 2번째줄, 3번째 칸에 있는 값을 출력하겠다는 의미지요.
여기서 알수 있는 사실은 그럼 내가 찾고자하는 위치에 있는 값을 숫자형태로 찾을수만 있다면 배열 안에 있는 모든값을 다 찾아낼수 있다는 말이 되는데 적다보니 말이 좀 어렵네요...ㅠㅠ
일단 Match 함수를 알고 같이 설명을 드리는게 편할듯 합니다.
참고로 위에 있는그대로 수식을 작성하면 이상한 숫자가 나올수도 있는데 그럴땐 셀서식을 날짜형태로 바꿔주시면 됩니다.
 

=Match(찾을값, 참조범위)

 

 

Match는 연속된 행이나 열에서 찾을값이 몇번째에 있는지 알려주는 함수입니다.
이건 컴활시험같은데서 잘 못본거 같은데 저는 실무에서 종종 써본 기억이 있네요. Index함수와 같이 이런경우에...ㅎㅎㅎ
참고로 함수의 참조범위는 행이든 열이든 한줄로만 범위를 선택해야 합니다.
그중에 찾을값이 몇번째에 있는지 알려주는게 이 함수의 역할이라 한번에 여러줄이 겹치는 칸을 선택하게 되면 수식에러 납니다.
그리고 하다가 정신줄을 놨는지 결과값이 없네요... 결과는 네번째줄이니 숫자 4가 나옵니다.
그럼 다음은 Index와 Match를 응용해서 문제를 해결해보도록 할게요.
 

 

 

식이 좀 복잡해졌지만 하나씩 풀어보도록할게요.

    =INDEX(B2:D6, MATCH(B9, D2:D6), 1)

Index는 B2:D6 범위에 있는 셀중에서 MATCH(B9, D2:D6)번째 행에 있는 1번째 값을 출력하길 원하고 있습니다.
그럼 MATCH(B9, D2:D6)가 몇이 나오는지 풀어보면 알수 있어요.
B9는 생일 1993-09-16이고 D2:D6 범위에서 4번째에 위치해 있습니다.
그래서 답은 4가 되고 결과적으로 수식은

    =INDEX(B2:D6, 4, 1)

이 되는거죠.
그렇게 되면 1993-09-16 생일인 사람의 이름인 이테너가 출력되게 됩니다.

 


 

이 index와 match에 대해서 잘 몰랐을때는 위에 그림과 같이 기준값 오른쪽에 셀을 하나 더 추가시켜서 수식입력줄처럼 값을 가져온 뒤에 lookup함수를 많이 썼었거든요.
근데 쓰다보니 이게 할짓이 못됩디다...
참고로 우리나라 문서특성상 hlookup을 사용할때 이런문제점이 생길일은 거의 없었네요!!

아무튼 이번에는 vlookup의 문제점을 보완하는 함수에 대해서 알아봤는데 도움이 되셨으면 좋겠습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함