index match 함수 | MATCH로 위치 찾고 INDEX로 값 꺼내는 법
index match 함수는 MATCH로 값의 위치를 찾고, INDEX로 그 위치의 값을 꺼내는 조합이에요.
조회 열이 반환 열보다 오른쪽에 있어도 쓸 수 있어서, 왼쪽 열 조회가 막히는 vlookup 함수의 대안으로 많이 씁니다.
| 구분 | 내용 |
|---|---|
| 기본 수식 | =INDEX(반환범위, MATCH(조회값, 조회범위, 0)) |
| MATCH 역할 | 조회 범위 안에서 일치 항목의 상대 위치를 반환 |
| INDEX 역할 | 범위에서 지정한 행·열 위치의 값을 반환 |
| 마지막 인수 0 | 정확히 일치하는 값만 찾기 |
| 못 찾으면 | #N/A 오류 |
확인일 2026-11-06 · 근거: Microsoft 지원 INDEX 함수·MATCH 함수·표 또는 셀 범위에서 데이터 찾기 안내 · 정정 요청
index match 함수, 위치 찾는 MATCH와 값 꺼내는 INDEX의 짝이에요
두 함수는 각자 하는 일이 달라요.
MATCH는 셀 범위에서 찾는 항목의 상대 위치를 알려 주고, INDEX는 범위에서 그 위치의 값을 돌려줍니다.
도서관에서 책 번호를 먼저 알아내고(MATCH), 그 번호의 서가에서 책을 꺼내 오는(INDEX) 두 단계라고 생각하면 쉬워요. 번호만 알면 책이 어느 서가에 있든 꺼낼 수 있어요.
INDEX의 기본 구문은 INDEX(array, row_num, [column_num])이고, MATCH의 기본 구문은 MATCH(lookup_value, lookup_array, [match_type])입니다.
MATCH의 조회 값과 조회 범위는 꼭 있어야 하고, 마지막 match_type은 생략할 수 있어요.
indexmatch로 붙여 검색하는 분도 많은데 같은 조합이에요. 엑셀 함수 전반이 낯설다면 엑셀 함수 정리부터 훑어보면 흐름이 잡힙니다.
index match 함수 사용법, 수식은 이렇게 겹쳐요
MATCH로 찾은 행 위치를 INDEX의 행 번호 자리에 넣으면 끝이에요.
대표 형태는 =INDEX(표, MATCH(조회값, 조회범위, 0), 열번호)입니다.
조회값 정하기찾고 싶은 값이 들어 있는 셀을 정해요. 예를 들면 E2에 적어 둔 이름이에요.
MATCH로 위치 구하기MATCH(E2,A2:A5,0)처럼 조회 범위에서 정확히 같은 값의 위치를 구해요.
INDEX에 위치 넣기INDEX(C2:C5, 위치)로 반환 범위에서 같은 순서의 값을 꺼내요.
하나로 합치기=INDEX(C2:C5,MATCH(E2,A2:A5,0))으로 완성해요.
조회 범위와 반환 범위는 행 방향과 길이를 맞춰야 해요. A2:A5를 조회했다면 반환도 C2:C5처럼 같은 행 구간으로 잡습니다.
예시 1 · 이름으로 나이를 찾는 민지 씨 (가정)A2:A5에 민지, 준호, 서연, 도윤이 있고 C2:C5에 나이 28, 34, 41, 25가 있다고 가정해요. E2에 서연을 적으면 MATCH가 3을 돌려주고, INDEX가 C열 세 번째 값인 41을 꺼내요.
결과는 41입니다.
match 함수 사용법, 마지막 인수 0·1·-1을 구분해요
MATCH만 따로 써도 위치를 알 수 있어요.
A1:A3이 5, 25, 38일 때 =MATCH(25,A1:A3,0)은 2를 돌려줍니다.
0 · 정확히 일치MATCH(값,범위,0)같은 값만 찾아요. 찾는 값이 없으면 #N/A가 나와요
1 · 작거나 같은 값MATCH(값,범위,1)정확한 값이 없으면 바로 아래 값의 위치를 찾아요. 범위는 오름차순이어야 해요
-1 · 크거나 같은 값MATCH(값,범위,-1)조회 값 이상인 값의 위치를 찾아요. 범위는 내림차순이어야 해요
예시 2 · 기준 점수 구간을 찾는 경우 (가정)B2:B5가 25, 38, 40, 41이라고 가정해요. =MATCH(39,B2:B5,1)은 39가 정확히 없으니 다음으로 낮은 38의 위치인 2를 돌려줍니다.
같은 범위에서 =MATCH(41,B2:B5,0)은 41의 위치인 4예요.
MATCH는 텍스트를 찾을 때 대문자와 소문자를 구분하지 않아요.
마지막 인수가 0이고 조회 값이 텍스트라면 물음표와 별표 와일드카드도 쓸 수 있습니다.
조건에 맞는 칸을 세거나 더하는 일이 목적이라면 countif 함수 사용법이나 sumif 함수가 더 간단해요.
index match 왼쪽 값 찾기, VLOOKUP이 못 하는 방향이에요
VLOOKUP은 조회 값이 반환 열의 왼쪽에 있어야 해요.
index match 함수는 조회 범위와 반환 범위를 따로 지정해서 이 방향 제한이 없습니다.
VLOOKUP은 표의 맨 왼쪽 열에서만 이름표를 찾는 안내원이고, index match는 어느 열에서든 이름표를 찾아 다른 열의 값을 가져오는 안내원이에요.
예시 3 · 도시로 청구 번호를 찾는 경우 (가정)청구 번호가 A2:A33, 도시가 B2:B33에 있다고 가정해요. 도시가 청구 번호보다 오른쪽에 있어서 VLOOKUP으로는 막히지만, =INDEX(A2:A33,MATCH("서울특별시",B2:B33,0))이면 서울특별시 행의 청구 번호를 꺼낼 수 있어요.
VLOOKUP 쪽 설명은 vlookup 함수에서 이어서 볼 수 있습니다.
표 전체를 범위로 잡고 열 번호를 쓰는 방식도 있어요. =INDEX(A2:C5,MATCH(E2,A2:A5,0),3)은 E2의 이름을 A열에서 정확히 찾아 같은 행 C열의 값을 반환합니다.
index match 2차원 조회, MATCH를 두 번 써요
행과 열을 둘 다 조건으로 찾을 때는 MATCH를 두 개 넣어요.
기본 모양은 INDEX(표, MATCH(행값, 행범위, 0), MATCH(열값, 열범위, 0))입니다.
표 범위 잡기값만 있는 칸을 표로 잡아요. 예를 들면 B2:D4예요.
행 머리글로 행 위치 찾기A2:A4에서 찾을 항목을 MATCH로 찾아요.
열 머리글로 열 위치 찾기B1:D1에서 찾을 항목을 MATCH로 찾아요.
INDEX에 둘 다 넣기=INDEX(B2:D4,MATCH(F1,A2:A4,0),MATCH(F2,B1:D1,0))으로 두 위치가 만나는 칸의 값을 꺼내요.
행 MATCH와 열 MATCH 모두 마지막 인수를 0으로 두세요. 하나라도 빠지면 엉뚱한 칸이 나올 수 있어요.
계산 결과를 더하거나 곱해 쓰려면 엑셀 곱하기 함수나 엑셀IF함수와 이어서 쓰면 편해요.
index match #N/A 해결, 숨은 공백과 형식부터 확인해요
찾는 값이 조회 범위에 없으면 #N/A가 나와요.
값이 눈으로는 같아 보이는데도 #N/A라면 숨은 공백, 예기치 않은 문자, 숫자가 텍스트로 저장된 형식 차이를 의심해 보세요.
공백·문자 정리TRIM이나 CLEAN 함수로 숨은 공백과 예기치 않은 문자를 정리해요.
셀 형식 맞추기조회 값과 조회 범위가 모두 숫자이거나 모두 텍스트이도록 맞춰요.
마지막 인수와 정렬 확인1 또는 생략이면 오름차순, -1이면 내림차순이어야 해요.
표시만 바꾸기=IFERROR(INDEX(C2:C5,MATCH(E2,A2:A5,0)),"없음")으로 #N/A를 다른 글자로 바꿔요.
IFERROR는 오류 원인을 고치는 게 아니라 보이는 표시만 바꿔요. 먼저 원래 수식이 맞는지 확인한 뒤 감싸세요.
예시 4 · 서연을 찾았는데 #N/A가 나온 민지 씨 (가정)E2에 "서연 "처럼 뒤에 공백이 들어가 있었어요. MATCH 안의 조회 값을 TRIM(E2)로 바꾸니 3이 나왔고, INDEX가 41을 꺼냈어요.
눈에 안 보이는 공백도 #N/A의 원인이 될 수 있어요. TRIM이나 CLEAN으로 정리하면 됩니다.
index match 함수 버전, 구형 Excel에서는 배열 확정이 필요할 수 있어요
INDEX와 MATCH 함수 문서는 Microsoft 365용 Excel, Excel 2024, 2021, 2019, 2016에 적용돼요.
배열을 사용하는 INDEX MATCH는 구형 Excel에서 Ctrl+Shift+Enter로 배열 수식을 확정해야 할 수 있습니다.
Microsoft 365에서는 수식을 입력하고 Enter만 눌러도 동적 배열 수식으로 확인돼요.
모든 방향에서 작동하고 기본으로 정확히 일치하는 XLOOKUP과 XMATCH도 대안입니다. 자세한 설명은 xlookup 함수에서 볼 수 있어요.
자주 묻는 질문
- index match 함수는 VLOOKUP과 무엇이 다른가요?
- VLOOKUP은 조회 값이 반환 열의 왼쪽에 있어야 하지만, index match 함수는 조회 열과 반환 열의 위치에 제한이 없어요. 반환 열이 조회 열보다 왼쪽에 있어도 찾을 수 있습니다.
- MATCH 마지막 인수 0, 1, -1은 어떻게 달라요?
- 0은 정확히 같은 값만 찾아요. 1은 조회 값보다 작거나 같은 값 중 가장 가까운 위치를 찾고 조회 범위가 오름차순이어야 합니다. -1은 크거나 같은 값을 찾고 내림차순이어야 해요.
- index match 함수에서 #N/A가 나오는 이유는 무엇인가요?
- 조회 범위에 찾는 값이 없으면 #N/A가 나와요. 값 뒤의 숨은 공백이나 예기치 않은 문자, 숫자가 텍스트로 저장된 형식 차이가 원인이 될 수 있어요. TRIM이나 CLEAN으로 정리해 보세요.
- #N/A 대신 다른 글자를 보이게 할 수 있나요?
- IFERROR 안에 INDEX MATCH를 넣으면 돼요. 예를 들어 =IFERROR(INDEX(C2:C5,MATCH(E2,A2:A5,0)),"없음")처럼 쓰면 못 찾을 때 없음이 표시됩니다.
- index match 함수 대신 XLOOKUP을 써도 되나요?
- 써도 돼요. XLOOKUP과 XMATCH는 모든 방향에서 작동하고 기본으로 정확히 일치하는 값을 찾는 새 함수예요. 쓰는 Excel 버전에서 지원하는지만 확인하세요.
엑셀 함수 이어서 익히기
조회 수식이 익숙해졌다면 차트와 매크로로 넘어가 보세요.
찾은 값을 그래프로 그리거나 반복 작업을 자동으로 돌릴 수 있습니다.