ExcelMATCH위치 번호

엑셀 MATCH

범위에서 값을 찾아 몇 번째 위치인지 번호로 반환합니다. INDEX와 짝꿍이면 VLOOKUP의 정통 대체

MATCH 수식 구조

=MATCH(찾을값, 범위, 일치유형)

찾을값 (lookup_value)

검색할 값. 텍스트·숫자·셀 참조 모두 가능.

범위 (lookup_array)

한 행 또는 한 열의 1차원 범위. VLOOKUP과 달리 어느 위치의 열이든 가능.

일치유형 (match_type) — 선택

0 = 정확 일치 (기본 권장), 1 = ≤ (범위 오름차순), -1 = ≥ (범위 내림차순).

반환값은 위치 번호이지 값이 아닙니다. 값을 꺼내려면 INDEX와 조합하세요.

직접 체험해보세요

찾을 값을 고르고 "실행"을 누르면 위에서 아래로 스캔하다가 일치하는 셀의 위치 번호를 반환합니다

C2=MATCH("대구", A1:A5, 0)
AC
1서울
2부산
3대구
4인천
5광주
▲ "실행" 버튼을 눌러 MATCH 동작을 확인하세요

일치유형 (match_type) 비교

슬라이더로 찾을 값을 바꾸면 0·1·-1 세 모드의 결과가 어떻게 달라지는지 확인할 수 있습니다

범위: [60, 70, 80, 90, 100] (오름차순)

85
=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등의 행번호를 즉시 알 수 있습니다.

예시: 매출 최고 행 위치순위 1의 행 번호
=IFERROR(MATCH(A1, B:B, 0), "없음")

찾지 못하면 #N/A를 반환하는데, IFERROR로 감싸 사용자 친화적인 메시지로 바꿀 수 있습니다.

예시: 없는 값을 검색했을 때"없음"
=MATCH(75, {60;70;80;90;100}, 1)

match_type 1은 검색값 이하 중 가장 큰 값의 위치. 등급표·세율 구간 등 구간 매칭에 사용. 범위는 오름차순이어야 함.

예시: 75에 해당하는 구간2 (70의 위치)
더 알아보기

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와의 조합도 동일.