엑셀 INDEX MATCH 함수 사용법: VLOOKUP 이 못 하는 왼쪽 값 찾기
INDEX MATCH는 INDEX 함수와 MATCH 함수를 함께 써서 표에서 원하는 값을 찾아오는 방법입니다. VLOOKUP 은 찾을 값이 표의 맨 왼쪽에 있어야만 하지만, INDEX MATCH 는 왼쪽·오른쪽 상관없이 찾을 수 있고 열을 끼워 넣어도 결과가 깨지지 않습니다.
두 함수가 각각 무엇을 하는지부터, 실제로 조합하는 방법과 행·열 두 조건 찾기, 오류 해결까지 예제로 정리했습니다.
두 함수가 하는 일
| 함수 | 형식 | 하는 일 |
|---|---|---|
| MATCH | =MATCH(찾을 값, 범위, 0) | 찾을 값이 범위에서 몇 번째인지 알려 줌 |
| INDEX | =INDEX(범위, 번호) | 범위에서 그 번째 칸의 값을 꺼냄 |
| INDEX MATCH | =INDEX(가져올 범위, MATCH(찾을 값, 찾을 범위, 0)) | 찾아서 몇 번째인지 구한 뒤 그 자리 값을 꺼냄 |
MATCH 마지막 자리의 0은 「정확히 같은 값」이라는 뜻입니다. 빼먹으면 엉뚱한 값이 나오니 항상 0을 넣으세요.
1. 기본: 코드로 상품명 찾기
- 찾을 범위(코드 열)와 가져올 범위(상품명 열)를 정합니다. 두 범위는 시작 행과 끝 행이 같아야 합니다.
- =INDEX(A2:A6,MATCH(E2,C2:C6,0)) 을 입력합니다.
- 아래로 복사할 거라면 범위에 $를 붙여 $A$2:$A$6, $C$2:$C$6 으로 고정합니다.

2. 행과 열 두 조건으로 찾기
지점별·월별 표에서 「판교의 2월」처럼 가로·세로가 만나는 값을 찾을 때는 INDEX 에 번호를 두 개 넣습니다. → =INDEX(표, MATCH(행 조건, 행 머리글, 0), MATCH(열 조건, 열 머리글, 0))

VLOOKUP 과 비교
- 왼쪽 찾기: VLOOKUP 은 불가, INDEX MATCH 는 가능
- 열 추가: VLOOKUP 은 열 번호(2, 3…)를 직접 써서 열을 끼우면 결과가 틀어지지만, INDEX MATCH 는 범위를 직접 가리켜 그대로 맞습니다.
- 엑셀 365·2021: XLOOKUP 이 있다면 =XLOOKUP(찾을 값, 찾을 범위, 가져올 범위) 한 줄로 같은 일을 합니다. 회사 PC가 옛 버전이 섞여 있으면 INDEX MATCH 가 가장 안전합니다.
#N/A 가 나올 때 확인할 것
- MATCH 의 0을 뺐음: 정확히 찾기가 아니라 근사치로 찾아 엉뚱한 값이나 #N/A 가 납니다.
- 숫자와 글자 형식이 다름: 코드가 한쪽은 숫자 101, 한쪽은 텍스트 '101' 이면 같은 값으로 보지 않습니다.
- 앞뒤 공백: TRIM 함수로 정리하거나 찾기·바꾸기로 공백을 지웁니다.
- 범위 크기가 다름: INDEX 범위와 MATCH 범위의 행 수가 다르면 한 칸씩 밀린 값이 나옵니다.
자주 묻는 질문
Q. 못 찾을 때 빈칸으로 두려면요?
A. 전체를 IFERROR 로 감쌉니다. → =IFERROR(INDEX(…,MATCH(…)),"")
Q. 조건이 두 개(이름+날짜)인 행을 찾으려면요?
A. 두 열을 이어 붙인 도우미 열(=A2&B2)을 만들고 MATCH 로 이어 붙인 값을 찾는 방법이 가장 쉽습니다.
실무 예제: 직원 번호로 부서 찾기
인사 명단이 「이름 · 부서 · 사번」 순서로 되어 있고 다른 시트에는 사번만 있다고 해 봅시다. VLOOKUP 은 사번이 맨 왼쪽이 아니라서 못 쓰지만, =INDEX(인사!$B:$B,MATCH(A2,인사!$C:$C,0)) 하나로 부서를 가져옵니다.
열 전체(B:B, C:C)를 범위로 잡으면 명단에 사람이 늘어나도 수식을 고칠 필요가 없습니다. 같은 수식에서 $B:$B 만 다른 열로 바꾸면 이름·입사일 등 다른 정보도 그대로 가져올 수 있어, 명단 하나로 여러 표를 채울 때 편합니다.
정리
- =INDEX(가져올 범위, MATCH(찾을 값, 찾을 범위, 0))
- 왼쪽 찾기·열 추가에 강하고, 행·열 두 조건도 가능
- #N/A 는 0 누락·형식·공백·범위 크기부터 확인
댓글
댓글 쓰기