
MATCH 함수 완벽 가이드 — 정확/근사/와일드카드·INDEX 결합
MATCH 함수는 지정 범위에서 찾는 값의 상대적 위치(인덱스)를 반환합니다. 값 자체가 아니라 위치가 필요할 때 쓰며, 보통 INDEX와 결합해 원하는 값을 가져옵니다. (공식 정의)
Quick Fix (2분): 정확일치로 위치 바로 찾기
- 목록 범위 선택: 예)
A2:A8 - 찾는 값: 예)
E2(고객명) - 공식(정확일치):
=MATCH(E2, $A$2:$A$8, 0) - INDEX 결합(값 반환):
=INDEX($B$2:$B$8, MATCH(E2, $A$2:$A$8, 0))
개념·문법 총정리
=MATCH(lookup_value, lookup_array, [match_type])
- lookup_value: 찾을 값(숫자/텍스트/날짜)
- lookup_array: 검색 범위(행 또는 열)
- match_type:
0=정확,1=다음 큰 값(오름차순 전제),-1=다음 작은 값(내림차순 전제)
match_type 3가지 — 선택 가이드
- 0(정확): 정렬 불필요, 와일드카드 가능(*, ?, ~)
- 1(근사-다음 큰 값): 오름차순 정렬 필수
- -1(근사-다음 작은 값): 내림차순 정렬 필수
와일드카드 사용(0 모드에서만)
*: 0개 이상 임의 문자열,?: 임의 1자,~: 특수문자 이스케이프- 예)
=MATCH("Kim*", $A$2:$A$100, 0)— “Kim”으로 시작하는 첫 위치
실무 예제 6종(재현 가능)
1) 이름 위치 찾기(정확)
| Name | Dept |
|---|---|
| J.Kim | Sales |
| A.Lee | HR |
| M.Park | Finance |
| S.Choi | Sales |
=MATCH("M.Park", $A$2:$A$5, 0) → 3 반환.
2) 가격 구간 찾기(근사·오름차순)
구매 수량 기준 할인가 테이블(오름차순): 1, 10, 50, 100…
=MATCH(H2, $B$2:$B$10, 1)
H2의 수량에 대해 “같거나 다음으로 큰 값 바로 전 구간”의 위치를 반환 → INDEX로 단가 반환.
3) 와일드카드 부분 일치
=MATCH("*-KR", $D$2:$D$50, 0)
“-KR”로 끝나는 SKU의 첫 위치.
4) INDEX+MATCH로 값 반환(왼쪽/오른쪽 무관)
=INDEX($C$2:$C$100, MATCH(H4, $A$2:$A$100, 0))
키가 왼쪽/오른쪽 어디에 있어도 문제 없음(반환 범위와 검색 범위를 분리).
5) 2축 조회(행·열 교차)
=INDEX($C$5:$G$12, MATCH(H6, $B$5:$B$12, 0), MATCH(H7, $C$4:$G$4, 0))
행 키(H6)와 열 키(H7)를 각각 MATCH로 찾아 교차 위치의 값을 반환.
6) “마지막 값” 인덱스 찾기(중복키)
=MAX(IF($A$2:$A$100=H8, ROW($A$2:$A$100)-ROW($A$2)+1))
배열 수식(동적 배열 환경은 Enter로 가능). 마지막 매칭의 위치를 INDEX에 연결해 사용.
트러블슈팅 (증상 | 원인 | 해결)
| 증상 | 원인 | 해결 |
|---|---|---|
| #N/A | 값 부재/오타, 숫자↔텍스트 형식 불일치 | 형식 통일(숫자는 숫자), TRIM/CLEAN, 필요 시 VALUE/TEXT 사용 |
| 오답(근사) | 정렬 전제 위반(오름/내림 불일치) | match_type=1(오름), -1(내림) 규칙을 지키고 목록을 정렬 |
| 의도와 다른 위치 | 와일드카드/대소문자 혼동 | 0 모드에서만 와일드카드, MATCH는 대소문자 구분 안 함 |
| INDEX와 조합 시 오류 | 반환 범위 높이/너비 불일치 | INDEX 반환 범위와 MATCH 검색 범위의 길이 일치 확인 |
MATCH vs XMATCH & XLOOKUP
- MATCH: 위치만 반환. 근사일치 시 정렬 전제(오름=1, 내림=-1), 와일드카드는 0 모드에서 지원.
- XMATCH: 기본 정확, 역방향(-1)과 이진탐색(±2) 제공 → 대용량/중복 처리 유리.
- XLOOKUP: 값 자체를 반환하며, search_mode로 역방향/이진탐색을 직접 제어.
체크리스트(실수 방지)
- 정확일치(0)에는 정렬이 불필요, 근사(±1)에는 정렬이 필수.
- 와일드카드는 0 모드에서만 작동(*, ?, ~).
- INDEX와 결합 시 검색 범위 길이 = 반환 범위 길이.
- 중복키는 “마지막” 필요 시 보조식 또는 XMATCH(
search_mode=-1) 고려.
관련 글
공식 정의·주의: Microsoft Support(MATCH/XLOOKUP/XMATCH). 실무 레시피: Exceljet.