본문 바로가기

EXCEL/함수

[엑셀] MATCH 함수

MATCH 함수는 찾기 함수에서 약방에 감초라고 할 정도로 자주 사용되며 MATCH 함수만 사용하기 보다는 OFFSET 함수, VLOOKUP 함수, INDEX 함수 등과 함께 사용됩니다.

사용자가 원하는 D/B에서 그 위치를 정확하게 찾아 주어 사람이 일일이 데이터의 위치를 세는 일이 없어집니다.

다만, 찾고자 하는 값이 몇 개의 범주로 나누어져 정확한 값을 일치시키기 힘든 경우는 테이블을 오르차순이나 내림차순으로 정렬하여야지 정확한 결과를 얻을 수 있습니다.



 

 MATCH 함수


배열에서 지정된 순서상의 지정된 값에 일치하는 항목의 상대 위치 값 반환


수식 = MATCH(lookup_value, lookup_array, [match_type])


☞  MATCH 함수의 인수

1. lookup_value : lookup_array에서 찾으려는 값(숫자, 텍스트, 논리값 등의 값이거나 숫자, 텍스트 또는 논리값에 대한 셀 참조)

2. lookup_array : 검색할 셀 범위

3. match_type : 숫자 -1, 0 또는 1. lookup_value를 찾는 방법을 지정하는 숫자, 생략은 1


match_type

결과

정  렬

1(또는 생략)

lookup_value 보다 작거나 같은 최대값의 위치

오름차순

0

lookup_value  같은 첫번째 위치

무관

-1

lookup_value 보다 크거나 같은 최소값의 위치

내림차순


☞ 기타

1. 대/소문자를 구분하지 않음

2. 일치하는 문자를 찾지 못하면 #N/A 오류 값이 반환

3. lookup_value 인수에 와일드카드 문자인 물음표(?)와 별표(*) 사용 가능

4. 물음표(?)나 별표(*)를 포함한 lookup_value를 찾으려면 와일드카드 앞에 물결표(~) 입력


※ 와일드 카드

? : 한 문자에 해당

* : 임의의 문자열에 해당

~ : 와일드카드(*, ?)가 문자로 인식 되도록 함



 

 MATCH 함수의 적용


▼ 숫자(오름차순)



match_type을 1이나 -1을 사용하려면 lookup_array가 오름차순이나 내림차순으로 정렬이 되어야 정확한 결과값을 얻을 수 있습니다.


☞ 수식설명

1, 4, 5, 6번 : lookup_value의 값이 오름차순 될때 lookup_array 보다 작은 값의 위치

2번 : match_type이 0이라서 lookup_array의 정렬과 무관하지만 정확히 일치하는 값이 없어 #N/A 오류 발생

3번 : match_type이 -1은  lookup_array가 내림차순 정렬이 되어야 하는데 오름차순 정렬로 되어  #N/A 오류 발생



▼ 숫자(내림차순)



☞ 수식설명

1, 4, 5번 : lookup_value의 값이 내림차순 될때 lookup_array 보다 큰 값의 위치

2번 : match_type이 0이라서 lookup_array의 정렬과 무관하지만 정확히 일치하는 값이 없어 #N/A 오류 발생

3번 : match_type이 1은  lookup_array가 오름차순 정렬이 되어야 하는데 내림차순 정렬로 되어  #N/A 오류 발생

6번 : lookup_value의 값이 내림차순 될때 lookup_array 보다 큰 값의 위치, 큰 값이 없어 #N/A 오류 발생



▼ 텍스트(오름차순)



☞ 수식설명

1, 4, 5, 6번 : lookup_value의 값이 오름차순 될때 lookup_array 보다 작은 값의 위치

2번 : match_type이 0이라서 lookup_array의 정렬과 무관하지만 정확히 일치하는 값이 없어 #N/A 오류 발생

3번 : match_type이 -1은  lookup_array가 내림차순 정렬이 되어야 하는데 오름차순 정렬로 되어  #N/A 오류 발생



▼ 텍스트(와일드카드 사용)



☞ 수식설명(match_type이 0으로 정렬과 무관)

1번 : 간짜* 은 간짜로 시작해서 뒤에 문자열이 나오는 첫번째 위치

2번 : 간짜? 은 간짜로 시작해서 뒤에 1글자만 나오는 첫번째 위치

3번 : *짜장 은 마지막이 짜장으로 끝나고 앞에 문자열이 나오는 첫번째 위치

4번 : ?짜장 은 마지막에 짜장으로 끝나고 앞에 1글자만 나오는 첫번재 위치

5번 : *짬뽕? 은 앞에는 문자열 뒤에는 짬뽕, 그리고 1글자로 끝나는 문자의 첫번째 위치

6번 : 탕수로 시작하고 문자열이 들어가며 짜장으로 끝나는 첫번째 위치 



▼ 텍스트(와일드카드 포함)



☞ 수식설명(lookup_array에 와일드 카드가 포함)

1번 : lookup_value가 복사지 * 10B로 정확하게 일치되는 것은 5번 이지만 * 를 와일드 카드로 인식하여 첫번째 복사지 * C 10의 위치를 반환

2번 : 1번과 같은 경우 *를 와일드 카드가 아닌 문자로 인식되게 하려면 와일드카드(*, ?)앞에 ~(물결)을 사용

3~6번 : 위 와 동일


※ 와일드카드(*, ?)를 문자로 인식하는 방법은 ~ 을 와일드카드 앞에 붙이면 됩니다.


▼ lookup_array에 배열 입력


수식 = MATCH(5,{2,3,5,7,9},0) = 3


☞ 수식설명

직접 입력한 배열 {2, 3 , 5, 7, 9}과 lookup_value  = 5가 일치하는 값의 위치 3을 반환



 

 관련글 보기


 INDEX + MATCH 함수