엑셀 INDEX MATCH 함수|VLOOKUP이 못 하는 걸 하는 조합
INDEX MATCH는 두 함수를 조합해 VLOOKUP의 한계를 넘는 방법입니다. 지금은 XLOOKUP이 같은 일을 더 쉽게 하지만, 구버전 엑셀을 쓰거나 회사 파일을 다뤄야 한다면 알아 둘 가치가 있습니다.
두 함수를 먼저 따로 보기
MATCH — 찾는 값이 몇 번째에 있는지 알려줍니다.
“ =MATCH("서울", B2:B100, 0) “
B열에서 “서울”이 7번째 행에 있으면 7을 돌려줍니다. 마지막 0은 정확히 일치를 뜻하며, VLOOKUP의 FALSE와 같은 역할입니다.
INDEX — 범위에서 몇 번째 값을 꺼냅니다.
“ =INDEX(C2:C100, 7) “
C열의 7번째 값을 가져옵니다.
둘을 합치면
“ =INDEX(C2:C100, MATCH(A2, B2:B100, 0)) “
이것부터 보면 이해가 빠릅니다
“B열에서 A2를 찾아 그 위치의 C열 값을 가져와라”가 됩니다. MATCH가 위치를 찾고, INDEX가 그 위치의 값을 꺼내는 구조입니다.
VLOOKUP과 뭐가 다른가
| 항목 | VLOOKUP | INDEX MATCH |
|---|---|---|
| 찾을 값 위치 | 맨 왼쪽이어야 함 | 어디든 가능 |
| 가져올 열 | 번호로 지정 | 범위로 직접 지정 |
| 열 추가 시 | 번호가 밀려 깨짐 | 안 깨짐 |
| 수식 길이 | 짧음 | 조금 김 |
| 계산 속도 | 느린 편 | 빠른 편 |
왼쪽 값을 가져올 수 있다는 게 가장 큰 차이입니다. 코드가 C열에 있고 이름이 A열에 있어도 문제없습니다.
두 조건으로 찾기
조건 두 개를 & 로 이어 붙이면 됩니다.
“ =INDEX(D2:D100, MATCH(A2&B2, B2:B100&C2:C100, 0)) “
구버전에서는 입력 후 Ctrl + Shift + Enter 를 눌러야 동작합니다. 최신 버전은 그냥 Enter 로 됩니다.
어느 걸 써야 하나
체크리스트
자주 묻는 질문
MATCH의 마지막 0은 뭔가요?
정확히 일치하는 값만 찾으라는 뜻입니다. 생략하면 근사치로 찾아 엉뚱한 결과가 나옵니다.
#N/A가 뜹니다.
MATCH가 값을 못 찾은 경우입니다. 공백이나 서식 불일치를 먼저 확인하세요.
#REF! 가 뜹니다.
INDEX의 범위보다 큰 위치를 요청한 경우입니다. 두 범위의 행 개수가 같은지 확인하세요.
가로 방향으로 찾을 수 있나요?
가능합니다. MATCH의 범위를 행 방향으로 잡고 INDEX도 같은 방향으로 쓰면 됩니다.
VLOOKUP보다 정말 빠른가요?
큰 표에서는 차이가 납니다. 다만 수백 행 수준이면 체감 차이는 거의 없습니다.
다음으로 읽어볼 글
읽던 맥락을 이어서 볼 수 있게 골랐습니다.
엑셀 VLOOKUP 사용법|안 될 때 원인까지 한 번에VLOOKUP을 예제로 익히고, #N/A가 뜨는 원인 다섯 가지와 해결법까지 정리했습니다. 네 번째 인수를 왜 FALSE로 써야 하는지도 함께 설명합니다.이어서 읽기 →엑셀 XLOOKUP 사용법|VLOOKUP과 뭐가 다른지부터XLOOKUP 기본형과 VLOOKUP 대비 장점을 정리했습니다. 못 찾았을 때 처리, 역방향 조회, 지원 버전 확인까지 실무 기준으로 설명합니다.이어서 읽기 →엑셀 SUMIF 함수 사용법|조건 여러 개는 SUMIFS로조건에 맞는 값만 더하는 SUMIF와 조건이 여러 개일 때 쓰는 SUMIFS를 예제로 정리했습니다. 인수 순서가 다른 이유와 날짜 조건 거는 법까지 담았습니다.이어서 읽기 →
