반응형

MATCH 함수는 99.9% 확률로 INDEX 함수와 함께 사용되며, 컴활 1급 실기 시험에 무조건 출제되는 함수 중 하나이다. 처음 공부할 땐 이것만큼 어려운게 없지만, 계속해서 반복하고 공부하다보면 익숙해지기도 하고 엑셀 파일을 만들 때 유용한 함수 중 하나이므로 어렵다고 포기하지 않았으면 한다.


MATCH 함수는 어떤 배열(범위)에서 내가 찾고자 하는 값의 위치를 찾아내는 함수이다. 이 때, 범위는 하나의 행 또는 하나의 열만 사용해야 한다. 동시에 행/열 두 가지의 위치를 나타낼 수 없기 때문이다. MATCH 함수를 IND EX 함수와 함께 사용하면 INDEX 함수에 들어갈 행/열 번호에 MATCH 함수를 이용해 어떤 조건을 만족하는 값의 행/열 번호를 사용할 수 있다. MATCH 함수만으로도 할 이야기가 많으니, INDEX 함수와 함께 사용하는 것은 따로 짧게 작성할 예정이다.

MATCH 함수는 MATCH(lookup_value, lookup_array, [match_type])으로 구성되어 있다.

lookup_value는 내가 찾고자 하는 값

lookup_array는 내가 찾고자 하는 값의 범위

match_type는 조건

을 의미한다.

이 중에 match_type이 어떤건지 가장 이해하기 어렵다. match_type은 1, 0, -1 중 하나를 선택하는데, 기본값으로 0이 선택되어 있다.

Match_type이 1이면 lookup_array의 값들 중 lookup_value보다 작거나 같은 값 중 가장 큰 값의 위치를 반환한다. 이 때 lookup_array는 오름차순으로 정렬되어야만 한다. 오름차순으로 정렬되어 있지 않을 경우 오류가 발생한다.

Match_type이 0이면 lookup_array의 값들 중 lookup_value와 정확히 같은 값의 위치를 반환한다. lookup_arr ay가 정렬될 필요는 없으며, 정확히 같은 값이 없을 경우 오류가 발생한다.

Match_type이 -1이면 lookup_array의 값들 중 lookup_value보다 크거나 같은 값 중 가장 작은 값의 위치를 반환한다. 이 때 lookup_array는 내림차순으로 정렬되어야만 한다. 내림차순으로 정렬되어 있지 않을 경우 오류가 발생한다.

MATCH 함수 예시

Match 함수의 예시를 정리해봤는데, 이번에도 예시가 8개나 되기 때문에 이 중 2개(갑의 점수 중 국어 점수의 열 위치, 수학 점수가 가장 높은 학생의 행 위치)만 설명하려고 한다.

갑의 점수 중 국어 점수의 열 위치를 알고자 할 때에는 우선 lookup_array가 갑의 점수, lookup_value가 갑의 국어 점수임을 알아야 한다. 따라서 lookup_array는 "B2:F2" 가 되고, lookup_value는 "B2" 가 된다. 갑의 국어 점수 자체를 알고 싶은 것이므로 match_type에 0을 입력해야 한다. 그러므로 함수는 =MATCH(B2, B2:F2, 0)이 된다.

수학 점수가 가장 높은 학생의 행 위치를 알고자 할 때에는 lookup_array가 수학 점수, lookup_value가 가장 높은 수학 점수가 된다. 따라서 lookup_array는 "C2:C5" 가 되고, lookup_value는 최댓값을 나타내는 MAX 함수를 사용해 "MAX(C2:C5)" 가 된다. Lookup_value에 수학 점수의 최댓값을 입력했으므로 match_type은 0이 되고, 함수는 =MATCHH( MAX(C2:C5), C2:C5, 0)이 된다.

MATCH 함수 중 match_type 예시

Match_type이 0인 경우는 위에 설명이 되었기 때문에 생략하고, 1과 -1일 때만 살펴볼 것이다. 앞서 말했듯 matc h_type에 입력하는 값이 1일 땐 array를 오름차순, -1일 땐 array를 내림차순으로 정렬해야만 한다. 나는 국어를 오름차순, 수학을 내림차순으로 정렬한 뒤 함수를 사용했다.

국어 점수가 95점 이하인 학생의 열 위치를 알아보기 위해 우선 국어 점수의 값을 오름차순으로 정렬해야 한다. 그 다음 95점보다 작은 값을 찾아야 하므로 lookup_value에 95를 입력한 뒤 lookup_array는 국어 점수인 "B2:B5" 가 된다. 따라서 =MATCH(95, B2:B5, 1)이 된다. 이 때 함수의 출력값이 왜 3이냐면, 95보다 작거나 같은 값 중 가장 큰 값인 90점이 출력되기 때문이다.

이어서 수학 점수 중 90점 이상인 학생의 열 위치를 알아보려면 수학 점수를 내림차순으로 정렬해야 한다. 위와 동일하게 lookup_value에 90를 입력하고, lookup_array에는 수학 점수 범위 "E2:E5" 를 입력한다. lookup_value보다 크거나 같은 값을 찾아야 하므로 match_type엔 -1을 입력하면 된다. 따라서 =MATCH(90, E2:E5, -1)이 된다. 이 때 90보다 크거나 같은 값 중 가장 작은 값인 95가 출력되어 2가 나오게 된다.


MATCH 함수만으로도 꽤 많은 이야기를 하게 되었다. MATCH 함수는 대부분 정확히 일치하는 값만을 찾기 때문에 match_type에 대해서는 깊게 파고들 필요는 없지만 언제나 그렇듯 알아두면 무조건 좋다. 중요한 것은 look up_array에 하나의 행 또는 열만 입력되어야 한다는 것, match_type으로 1 또는 -1을 사용하기 위해서는 표를 정렬해야 한다는 것이다. INDEX 함수와 마찬가지로 어려운만큼 많이 중요하므로 꼭 많은 연습과 반복을 통해 완벽히 숙지하길 바란다.

+ Recent posts