엑셀 MATCH
범위에서 값을 찾아 몇 번째 위치인지 번호로 반환합니다. INDEX와 짝꿍이면 VLOOKUP의 정통 대체
MATCH 수식 구조
찾을값 (lookup_value)
검색할 값. 텍스트·숫자·셀 참조 모두 가능.
범위 (lookup_array)
한 행 또는 한 열의 1차원 범위. VLOOKUP과 달리 어느 위치의 열이든 가능.
일치유형 (match_type) — 선택
0 = 정확 일치 (기본 권장), 1 = ≤ (범위 오름차순), -1 = ≥ (범위 내림차순).
직접 체험해보세요
찾을 값을 고르고 "실행"을 누르면 위에서 아래로 스캔하다가 일치하는 셀의 위치 번호를 반환합니다
| A | C | ||
|---|---|---|---|
| 1 | 서울 | ||
| 2 | 부산 | ||
| 3 | 대구 | ||
| 4 | 인천 | ||
| 5 | 광주 |
일치유형 (match_type) 비교
슬라이더로 찾을 값을 바꾸면 0·1·-1 세 모드의 결과가 어떻게 달라지는지 확인할 수 있습니다
범위: [60, 70, 80, 90, 100] (오름차순)
=MATCH(85, A1:A5, 0)0 = 정확 일치 — 같은 값만 찾음→ #N/A
=MATCH(85, A1:A5, 1)1 = ≤ 일치 — 검색값 이하 중 가장 큰 값 (범위 오름차순)→ 3
=MATCH(85, A1:A5, -1)-1 = ≥ 일치 — 검색값 이상 중 가장 작은 값 (범위 내림차순 필요) — 현재 범위는 오름차순이라 실제로는 #N/A 또는 오작동
실전 활용 예제
=INDEX(B2:B6, MATCH("이영희", A2:A6, 0))INDEX + MATCH 조합. MATCH가 이영희의 행 번호를 찾고, INDEX가 그 위치의 B열 값을 가져옵니다. VLOOKUP의 표준 대체.
=MATCH(MAX(B2:B10), B2:B10, 0)범위에서 최댓값의 위치를 반환합니다. MAX·MIN과 조합하면 1등의 행번호를 즉시 알 수 있습니다.
=IFERROR(MATCH(A1, B:B, 0), "없음")찾지 못하면 #N/A를 반환하는데, IFERROR로 감싸 사용자 친화적인 메시지로 바꿀 수 있습니다.
=MATCH(75, {60;70;80;90;100}, 1)match_type 1은 검색값 이하 중 가장 큰 값의 위치. 등급표·세율 구간 등 구간 매칭에 사용. 범위는 오름차순이어야 함.
다른 엑셀 함수도 알아보세요
INDEX + MATCH — VLOOKUP을 대체하는 콤보
▼
MATCH는 위치 번호만 반환하는데, 그 자체로는 큰 쓸모가 없습니다. INDEX와 조합해야 진가가 드러납니다.
기본 패턴
=INDEX(반환범위, MATCH(찾을값, 검색범위, 0))MATCH가 "몇 번째 행"인지 알려주면 INDEX가 그 위치의 값을 꺼냅니다.
VLOOKUP 대비 장점
- 왼쪽 조회 가능 — 검색 열이 반환 열의 오른쪽에 있어도 OK
- 열 추가·삭제에 안전 — 열번호 하드코딩 X
- 가로·세로 모두 가능 — MATCH가 행/열 어느 쪽이든 위치 찾음
match_type 세 가지 모드
▼
0 — 정확 일치 (가장 많이 사용)
검색값과 완전히 같은 값만 찾음. 정렬 필요 없음. 못 찾으면 #N/A. 와일드카드(*, ?) 사용 가능.
1 — ≤ 일치 (기본값, 오름차순 필수)
검색값 이하 중 가장 큰 값의 위치. 범위가 오름차순으로 정렬되어 있어야 함. 등급·세율 구간 매칭에 적합.
-1 — ≥ 일치 (내림차순 필수)
검색값 이상 중 가장 작은 값의 위치. 범위가 내림차순일 때 사용. 실무에서는 거의 안 씀.
실무 추천: 거의 모든 경우 0을 쓰는 것이 안전합니다. 1·-1은 정렬을 항상 유지해야 하고 실수하기 쉽습니다.
와일드카드 검색 — *, ?
▼
match_type이 0일 때만 와일드카드를 쓸 수 있습니다.
패턴
*— 임의 개수의 문자 (예: "김*"은 김으로 시작)?— 1글자 (예: "김?"은 김 + 1글자)~*,~?— 실제 *나 ? 문자를 검색할 때 ~로 이스케이프
=MATCH("김*", A:A, 0) → "김"으로 시작하는 첫 번째 셀 위치#N/A 오류 — 못 찾았을 때
▼
MATCH가 일치하는 값을 찾지 못하면 #N/A를 반환합니다. 흔한 원인:
- 검색값에 보이지 않는 공백이나 줄바꿈 → TRIM·CLEAN으로 정리
- 숫자가 텍스트로 저장되어 있음 → VALUE로 변환하거나 셀 서식 통일
- match_type 1·-1을 썼는데 범위 정렬이 안 맞음
해결 — IFERROR로 감싸기
=IFERROR(MATCH(A1, B:B, 0), "없음")자주 묻는 질문 (FAQ)
▼
Q. MATCH와 VLOOKUP 중 뭐가 더 좋나요?
MATCH 단독은 위치만 반환해 VLOOKUP과 직접 비교는 어렵습니다. INDEX와 짝지으면 VLOOKUP의 한계(왼쪽 조회 불가, 열번호 하드코딩 등)를 모두 극복합니다.
Q. 대소문자를 구분하나요?
아니요. MATCH는 대소문자를 구분하지 않습니다. 구분이 필요하면 =MATCH(TRUE, EXACT(A1, B:B), 0) 배열 수식 패턴을 사용하세요.
Q. 2차원 범위에도 쓸 수 있나요?
아니요. MATCH는 1차원 범위(한 행 또는 한 열)만 받습니다. 2차원이 필요하면 INDEX의 행/열 번호 자리에 MATCH 두 개를 각각 넣으세요.
Q. XLOOKUP·XMATCH가 있으면 MATCH는 안 써도 되나요?
Excel 365·2021 이상이면 XLOOKUP이 INDEX+MATCH를 대체할 수 있고, XMATCH가 MATCH의 상위호환입니다. 호환성이 필요하면 여전히 MATCH 사용.
Q. 구글 스프레드시트에서도 동일한가요?
네. MATCH는 같은 문법으로 동작합니다. INDEX와의 조합도 동일.