#1. 엑셀 INDEX MATCH 함수 사용법|VLOOKUP과 차이점, 왼쪽 값 찾기까지

엑셀에서 사번을 입력하면 직원 이름이 자동으로 표시되거나, 상품코드를 입력하면 가격이 나타나도록 만들고 싶을 때가 있습니다.

이런 작업에는 VLOOKUP 함수를 많이 사용합니다. 그런데 찾으려는 데이터의 위치에 따라 VLOOKUP으로는 수식을 작성하기 불편한 경우도 있습니다.

예를 들어 직원 이름으로 사번을 찾아야 하는데, 사번이 이름보다 왼쪽 열에 있다면 어떻게 해야 할까요?

이럴 때 알아두면 좋은 방법이 INDEX와 MATCH 함수를 함께 사용하는 것입니다.

함수가 두 개라 처음에는 복잡해 보일 수 있지만, 각각의 역할은 단순합니다.

  • MATCH: 찾으려는 값이 범위에서 몇 번째에 있는지 확인합니다.

  • INDEX: 지정한 위치에 있는 값을 가져옵니다.

쉽게 말하면 MATCH가 위치를 찾고, INDEX가 그 위치의 데이터를 가져오는 방식입니다.

이번에는 두 함수를 각각 사용해본 다음 하나의 수식으로 연결해보겠습니다. 마지막에는 VLOOKUP과 어떤 차이가 있는지도 비교하겠습니다.


1. 예제 데이터 준비하기

날짜 사번 이름 부서 지역 매출
2026-09-01 1001 김민수 영업팀 서울 1,200,000
2026-09-01 1002 박서연 개발팀 경기 800,000
2026-09-02 1003 이준호 영업팀 부산 950,000
2026-09-02 1004 최지우 마케팅팀 서울 700,000
2026-09-03 1005 정현우 영업팀 서울 1,500,000
2026-09-03 1006 한소희 영업팀 경기 1,100,000
2026-09-04 1007 오민재 개발팀 서울 600,000
2026-09-04 1008 윤서진 마케팅팀 부산 900,000

데이터는 A1 범위에 입력합니다. 첫 번째 행에는 항목 이름이 있고, 실제 데이터는 2행부터 9행까지 들어 있습니다.

이제 오른쪽 H열과 I열에 조회 영역을 만들어보겠습니다.

셀 입력 내용
H1 조회 사번
I1 직원 이름
H2 1003
I2 수식을 입력할 셀

목표는 H2에 사번 1003을 입력하면 I2에 '이준호'가 표시되도록 만드는 것입니다.

엑셀 INDEX MATCH 실습에 사용하는 매출 데이터와 사번 1003을 입력한 조회 영역


2. MATCH 함수로 사번의 위치 찾기

먼저 MATCH 함수부터 사용해보겠습니다.

MATCH는 지정한 범위에서 찾으려는 값이 몇 번째에 있는지 알려주는 함수입니다.


빈 셀에 다음 수식을 입력합니다.

=MATCH(H2,B2:B9,0)


결과는 3입니다.


왜 3이 나왔을까요?

B2 범위에 있는 사번을 위에서부터 살펴보면 다음과 같습니다.

범위 안의 위치 사번
1번째 1001
2번째 1002
3번째 1003
4번째 1004

H2에 입력된 1003은 사번 목록에서 세 번째에 있습니다.

따라서 MATCH 함수가 3을 반환한 것입니다.


여기서 중요한 점이 하나 있습니다.

MATCH가 반환하는 숫자는 엑셀 시트의 행 번호가 아니라 지정한 검색 범위 안에서의 상대적인 위치입니다.

1003이 실제로 입력된 셀은 B4이지만, B2부터 검색했기 때문에 결과가 3으로 나옵니다.


MATCH 함수의 기본 구조

=MATCH(찾을값,찾을범위,일치방법)

이번 예제를 나누어 살펴보겠습니다.

  • H2: 찾을 값입니다. 현재 1003이 입력되어 있습니다.

  • B2:B9: 찾을 값이 들어 있는 사번 목록입니다.

  • 0: 정확하게 일치하는 값을 찾으라는 의미입니다.

사번이나 상품코드처럼 특정 값을 정확하게 검색할 때는 마지막 인수에 0을 넣는 것이 좋습니다.

MATCH 함수에서 이 값을 생략하면 기본적으로 근사 일치 방식이 적용되므로 예상과 다른 결과가 나올 수 있습니다.

엑셀 MATCH 함수로 사번 1003을 B2:B9 범위에서 검색하여 세 번째 위치를 찾는 예제


3. INDEX 함수로 직원 이름 가져오기

이번에는 INDEX 함수를 알아보겠습니다.


INDEX는 지정한 범위에서 원하는 위치에 있는 데이터를 가져오는 함수입니다.

앞에서 MATCH 함수로 사번 1003이 세 번째에 있다는 것을 확인했습니다.


그렇다면 이름 목록에서 세 번째 값을 가져오면 되겠죠?

다음 수식을 입력해보겠습니다.

=INDEX(C2:C9,3)


결과는 이준호입니다.


C2 범위에는 직원 이름이 순서대로 들어 있습니다.

범위 안의 위치 이름
1번째 김민수
2번째 박서연
3번째 이준호
4번째 최지우

수식에 3을 입력했기 때문에 세 번째 이름인 이준호를 가져온 것입니다.


INDEX 함수의 기본 구조

이번처럼 한 열로 이루어진 범위를 조회할 때는 다음 형태를 사용합니다.

=INDEX(결과범위,행위치)

  • C2:C9: 값을 가져올 범위입니다.

  • 3: 지정한 범위에서 몇 번째 값을 가져올지 나타냅니다.

즉, C2에서 세 번째에 있는 값을 가져오라는 의미입니다.


지금까지의 예제를 정리하면 MATCH는 위치를 숫자로 알려주고, INDEX는 그 숫자에 해당하는 데이터를 가져옵니다.


이제 두 함수를 연결해보겠습니다.

엑셀 INDEX 함수로 C2:C9 이름 목록의 세 번째 값 이준호를 가져오는 실습


4. INDEX와 MATCH를 하나의 수식으로 연결하기

이번 글에서 가장 중요한 부분입니다.

앞에서 사용했던 MATCH 수식을 다시 보겠습니다.

=MATCH(H2,B2:B9,0)

이 수식의 결과는 3이었습니다.


그리고 INDEX 함수에서는 다음 수식을 사용했습니다.

=INDEX(C2:C9,3)

여기서 INDEX의 3을 직접 입력하는 대신, MATCH 함수가 찾은 위치를 넣으면 어떻게 될까요?


다음 수식이 완성됩니다.

=INDEX(C2:C9,MATCH(H2,B2:B9,0))


I2에 이 수식을 입력해보세요.

결과는 이준호입니다.


수식이 길어서 어렵게 느껴진다면 안쪽부터 읽어보면 됩니다.

먼저 MATCH가 실행됩니다.

MATCH(H2,B2:B9,0)


H2에 입력된 1003을 B2 범위에서 찾습니다.


1003은 세 번째에 있으므로 MATCH의 결과는 3입니다.


그러면 INDEX 함수는 다음과 같은 형태로 계산됩니다.

=INDEX(C2:C9,3)


이름 목록에서 세 번째 값을 가져오므로 이준호가 표시됩니다.


이렇게 두 함수를 함께 사용하면 사번이 바뀌어도 수식을 다시 작성할 필요가 없습니다.


예를 들어 H2의 값을 1003에서 1007로 변경하면 I2에는 오민재가 표시됩니다.

MATCH로 위치를 찾고, INDEX로 결과를 가져온다.

이 순서만 이해하면 INDEX MATCH 수식의 기본 원리를 익힌 것입니다.

엑셀 INDEX MATCH 결합 수식으로 사번 1003에 해당하는 직원 이름 이준호를 조회하는 방법


5. INDEX MATCH로 왼쪽에 있는 값 찾기

INDEX MATCH를 알아두면 좋은 이유 중 하나는 결과 열의 위치를 자유롭게 지정할 수 있다는 점입니다.

지금까지는 사번으로 이름을 찾았습니다.

이번에는 반대로 직원 이름을 입력해서 사번을 찾아보겠습니다.

기존 조회 영역을 다음처럼 변경합니다.

셀 입력 내용
H1 조회 이름
I1 사번
H2 박서연
I2 결과 수식

I2에 다음 수식을 입력합니다.

=INDEX(B2:B9,MATCH(H2,C2:C9,0))


결과는 1002입니다.


수식을 두 부분으로 나누어 살펴보겠습니다.

먼저 MATCH가 C2의 이름 목록에서 박서연을 찾습니다.

MATCH(H2,C2:C9,0)


박서연은 두 번째에 있으므로 결과는 2입니다.


그다음 INDEX가 B2의 사번 목록에서 두 번째 값을 가져옵니다.

INDEX(B2:B9,2)


따라서 1002가 표시됩니다.


여기서 주목할 부분은 사번이 이름보다 왼쪽에 있다는 점입니다.


일반적인 VLOOKUP은 지정한 표 범위의 첫 번째 열에서 값을 검색하고 오른쪽 열의 결과를 가져옵니다. 따라서 이번처럼 이름으로 왼쪽에 있는 사번을 찾으려면 구조상 제약이 있습니다.


반면 INDEX MATCH는 찾을 범위와 결과 범위를 각각 지정하기 때문에 왼쪽과 오른쪽을 구분하지 않고 사용할 수 있습니다.

엑셀 INDEX MATCH 함수로 직원 이름 박서연을 검색하여 왼쪽 열의 사번 1002를 찾는 예제


6. VLOOKUP과 INDEX MATCH 비교하기

그렇다면 어떤 함수를 사용하는 것이 좋을까요?

사번으로 직원 이름을 찾는 예제를 기준으로 비교해보겠습니다.


VLOOKUP 수식

=VLOOKUP(H2,B2:C9,2,FALSE)


INDEX MATCH 수식

=INDEX(C2:C9,MATCH(H2,B2:B9,0))


위 두 수식은 H2에 사번이 입력된 경우 같은 직원 이름을 반환합니다.

다만 데이터를 찾는 방식에는 차이가 있습니다.

비교 항목 VLOOKUP INDEX MATCH
검색 방법 표 범위와 열 번호 지정 검색 범위와 결과 범위 지정
왼쪽 값 조회 일반적인 방식으로는 어려움 가능
결과 열 지정 열 번호 사용 직접 범위 지정
열 삽입 시 열 번호에 따라 수정이 필요할 수 있음 범위 참조가 조정되면 비교적 유연함
처음 배우기 비교적 쉬움 함수 두 개를 이해해야 함

단순한 표에서 값을 찾는다면 VLOOKUP도 충분히 편리합니다.

반면 왼쪽에 있는 값을 조회하거나, 검색 범위와 결과 범위를 따로 관리하고 싶을 때는 INDEX MATCH가 유용합니다.

참고로 최신 Excel에서는 XLOOKUP이라는 함수도 사용할 수 있습니다. XLOOKUP은 왼쪽 조회도 지원하고 수식 구조도 간단한 편입니다.

다만 모든 Excel 버전에서 XLOOKUP을 사용할 수 있는 것은 아니므로, INDEX MATCH를 알아두면 기존 파일을 다룰 때도 도움이 됩니다.

엑셀 VLOOKUP과 INDEX MATCH 함수의 검색 방식, 왼쪽 조회, 결과 열 지정 차이 비교


7. INDEX MATCH 사용 시 자주 하는 실수

기본 원리는 어렵지 않지만, 수식을 직접 작성하다 보면 몇 가지 부분에서 실수하기 쉽습니다.

① 검색 범위와 결과 범위가 서로 다른 경우

예를 들어 다음 수식을 보겠습니다.

=INDEX(C2:C9,MATCH(H2,B2:B8,0))

INDEX는 C2를 사용하고 MATCH는 B2을 검색합니다.

두 범위가 반드시 같은 크기여야 함수가 실행되는 것은 아닙니다. 하지만 이번처럼 같은 행의 데이터를 연결해서 가져오려면 범위의 시작 위치와 데이터 구조를 맞추는 것이 안전합니다.

한쪽 범위를 빠뜨리면 일부 데이터가 검색되지 않거나 잘못된 결과를 가져올 수 있습니다.


② MATCH의 마지막 0을 빠뜨린 경우

다음 수식은 정확히 일치하는 값을 검색합니다.

=MATCH(H2,B2:B9,0)

반면 마지막 0을 생략하면 기본적으로 근사 일치 검색이 적용됩니다.

검색 범위가 적절하게 정렬되어 있지 않다면 잘못된 결과가 나올 수 있으므로, 사번처럼 정확히 일치하는 값을 찾을 때는 0을 넣어주세요.


③ 검색 범위와 결과 범위를 반대로 선택한 경우

사번을 입력해서 이름을 가져오려면 MATCH는 사번이 있는 B열을 검색하고 INDEX는 이름이 있는 C열에서 결과를 가져와야 합니다.

=INDEX(C2:C9,MATCH(H2,B2:B9,0))

헷갈릴 때는 다음 두 가지를 먼저 확인해보세요.

  • MATCH에서는 어떤 값을 어디에서 찾을까?

  • INDEX에서는 어떤 결과를 어디에서 가져올까?


④ 찾는 값이 없는 경우

H2에 데이터에 없는 사번 9999를 입력하면 다음 수식은 #N/A 오류를 반환합니다.

=INDEX(C2:C9,MATCH(H2,B2:B9,0))

찾는 값이 없을 때 안내 문구를 표시하려면 IFERROR 함수를 함께 사용할 수 있습니다.

=IFERROR(INDEX(C2:C9,MATCH(H2,B2:B9,0)),"해당 사번 없음")

이렇게 하면 일치하는 사번을 찾지 못했을 때 오류 대신 '해당 사번 없음'이 표시됩니다.

다만 IFERROR는 범위 설정이나 수식 자체의 오류도 함께 가릴 수 있으므로, 먼저 기본 수식이 정상적으로 작동하는지 확인한 뒤 사용하는 것이 좋습니다.

엑셀 INDEX MATCH 수식의 범위 설정 실수, MATCH 정확히 일치 옵션과 IFERROR 오류 처리 예제


8. 오늘 사용한 수식 정리

INDEX MATCH의 기본 형태는 다음과 같습니다.

=INDEX(결과범위,MATCH(찾을값,찾을범위,0))


이번 예제에서 사번을 기준으로 직원 이름을 찾는 수식은 다음과 같습니다.

=INDEX(C2:C9,MATCH(H2,B2:B9,0))


반대로 직원 이름을 기준으로 사번을 찾는 수식은 다음과 같습니다.

=INDEX(B2:B9,MATCH(H2,C2:C9,0))


처음부터 전체 수식을 외우려고 하지 않아도 됩니다.

MATCH가 위치를 찾는 함수이고 INDEX가 그 위치의 값을 가져오는 함수라는 점을 이해하면, 실제 데이터를 사용할 때도 수식을 훨씬 쉽게 작성할 수 있습니다.


자주 묻는 질문 (FAQ)

Q. VLOOKUP과 INDEX MATCH 중 어떤 함수를 사용하는 것이 좋나요?

단순한 조회에는 VLOOKUP도 충분합니다. 다만 왼쪽에 있는 값을 찾아야 하거나 검색 범위와 결과 범위를 따로 지정해야 한다면 INDEX MATCH가 더 적합할 수 있습니다.


Q. MATCH 함수에서 마지막 0은 무슨 뜻인가요?

찾는 값과 정확하게 일치하는 항목을 검색하라는 의미입니다. 사번이나 상품코드를 검색할 때 자주 사용합니다.


Q. INDEX 함수만 따로 사용할 수 있나요?

네. =INDEX(C2:C9,3)처럼 특정 범위에서 세 번째 값을 가져올 수 있습니다.


Q. MATCH 함수만 따로 사용할 수도 있나요?

네. =MATCH(1003,B2:B9,0)을 사용하면 1003이 해당 범위에서 몇 번째에 있는지 확인할 수 있습니다.


Q. XLOOKUP이 있다면 INDEX MATCH를 배울 필요가 없나요?

XLOOKUP은 일반적인 데이터 조회에 편리한 함수입니다. 하지만 INDEX MATCH는 이전 버전 Excel 파일을 다루거나, 검색 위치와 결과 범위를 조합하는 원리를 이해할 때 여전히 유용합니다.

댓글