엑셀 INDEX·MATCH 사용법 — 따라 하면서 배우는 5단계 실습
최종 업데이트 2026-07-20
VLOOKUP은 기준 값이 반드시 '범위의 가장 왼쪽 열'에 있어야만 동작합니다. 기준이 오른쪽에 있거나 표 구조가 자주 바뀌는 현장에서는 이 제약이 발목을 잡습니다. INDEX/MATCH는 이 제약 없이 어느 방향으로든 값을 찾아옵니다. 아래 표를 그대로 옆에 두고 5단계로 직접 따라 해 보겠습니다.
| A열(사번) | B열(부서) | C열(이름) | D열(직급) |
|---|---|---|---|
| A102 | 영업1팀 | 김민수 | 대리 |
| A103 | 총무팀 | 이서연 | 과장 |
| A104 | 영업2팀 | 박지훈 | 사원 |
이 표에서는 이름(C열)이 기준이 되어야 하는데, 이름이 사번(A열)보다 오른쪽에 있습니다. '이름으로 사번을 찾기'는 VLOOKUP으로는 불가능한 전형적인 상황입니다. 그대로 따라오시면 됩니다.
실습 1단계 — MATCH로 '위치'부터 구하기
F2 셀에 '이서연'을 입력하고, G2에 다음을 입력해 보세요.
=MATCH(F2, C2:C4, 0)
결과는 2가 나옵니다. C2:C4 범위 안에서 '이서연'이 2번째 위치에 있다는 뜻입니다. MATCH는 값 자체가 아니라 '몇 번째인지'만 알려주는 함수라는 점이 핵심입니다.
실습 2단계 — INDEX로 그 위치의 값 가져오기
이제 H2에 사번(A열)에서 2번째 위치의 값을 가져오도록 써보겠습니다.
=INDEX(A2:A4, 2)
결과는 'A103'입니다. INDEX(범위, 위치)는 범위 안에서 몇 번째 값인지를 그대로 꺼내오는 함수입니다. 아직 2를 직접 입력했지만, 다음 단계에서 이 2 자리에 MATCH를 끼워 넣습니다.
실습 3단계 — 두 함수를 하나로 합치기
=INDEX(A2:A4, MATCH(F2, C2:C4, 0))
F2가 '이서연'이면 결과는 'A103'입니다. MATCH가 찾은 위치(2)를 INDEX가 그대로 받아 A열의 2번째 값을 반환한 것입니다. VLOOKUP으로는 절대 안 되는 '오른쪽 → 왼쪽' 조회가 완성되었습니다.
실습 4단계 — 다른 열도 함께 가져오기
부서와 직급도 같은 방식으로 가져올 수 있습니다. INDEX의 첫 번째 범위만 바꾸면 됩니다.
부서: =INDEX(B2:B4, MATCH(F2, C2:C4, 0)) 직급: =INDEX(D2:D4, MATCH(F2, C2:C4, 0))
실습 5단계 — 행과 열을 동시에 지정하는 2차원 검색
표가 가로·세로 모두 기준값을 가진 매트릭스 구조(예: 세로축=부서, 가로축=월, 안쪽 값=매출)라면 INDEX에 행 번호와 열 번호를 동시에 넣어 2차원으로 검색할 수 있습니다.
=INDEX(데이터범위, MATCH(부서명, 부서열, 0), MATCH(월, 월행, 0))
행 위치는 부서명을 세로축에서 MATCH로 찾고, 열 위치는 월을 가로축에서 MATCH로 찾아 INDEX에 두 개를 동시에 넘깁니다. VLOOKUP·XLOOKUP은 이런 교차표 검색을 한 번에 처리하기 어렵습니다.
오류 처리와 주의사항
| 오류 | 원인 | 해결 |
|---|---|---|
| #N/A | MATCH가 찾을값을 못 찾음 | IFERROR(INDEX(...), "없음")으로 감싸기 |
| #REF! | INDEX 범위와 MATCH 범위의 행 수가 다름 | 두 범위의 시작·끝 행을 동일하게 맞춤 |
| 엉뚱한 값 | MATCH 마지막 인수를 0이 아닌 1로 둠 | 정확히 일치할 때는 반드시 0으로 지정 |
MATCH의 마지막 인수는 실무에서 거의 항상 0(정확히 일치)을 씁니다. 1이나 -1은 데이터가 오름차순·내림차순으로 완벽히 정렬돼 있을 때만 의도대로 동작하므로 일반 데이터에는 권장하지 않습니다.
와일드카드로 부분 일치 검색하기
정확한 값이 아니라 '이름에 특정 글자가 포함된 행'을 찾고 싶을 때는 MATCH에 와일드카드(*, ?)를 쓸 수 있습니다. 단, 이 방식은 MATCH의 마지막 인수가 0일 때만 동작합니다.
=INDEX(A2:A4, MATCH("*민수*", C2:C4, 0))C열 이름 중 '민수'라는 글자가 포함된 첫 번째 행을 찾아 그 위치의 사번을 반환합니다. * 는 글자 수 제한 없는 임의 문자, ? 는 정확히 한 글자를 의미합니다. 여러 행이 조건에 맞더라도 MATCH는 항상 '가장 먼저 발견된 행 하나'만 반환한다는 점을 기억해야 합니다.
INDEX/MATCH vs XLOOKUP, 어느 쪽을 배워야 할까
| 상황 | 추천 |
|---|---|
| 회사·거래처가 구버전 엑셀(2019 이하)을 사용 중 | INDEX/MATCH (모든 버전 호환) |
| Microsoft 365·구글시트만 쓰는 환경 | XLOOKUP (더 짧고 오류 처리도 간편) |
| 2차원(행·열 교차) 검색이 필요 | INDEX/MATCH (행·열 위치를 각각 지정 가능) |
| 여러 열을 한 번에 반환해야 함 | XLOOKUP (반환범위를 여러 열로 지정 가능) |
결론적으로 두 방식은 대체 관계라기보다 상호 보완 관계에 가깝습니다. 구버전 호환이 필요 없는 환경이라면 XLOOKUP이 더 간결하지만, INDEX/MATCH의 '위치를 구하고 그 위치의 값을 가져온다'는 원리를 이해해두면 2차원 검색이나 복잡한 배열 수식을 짤 때 훨씬 응용력이 높아집니다.
이 5단계, AI에게 데이터만 알려주면 수식으로 바로 →