엑셀

엑셀 VLOOKUP vs INDEX+MATCH 함수 비교

엑셀과 PPT 2025. 5. 21. 08:46
반응형

엑셀에서 데이터를 찾아오는 대표적인 함수는 VLOOKUP과 INDEX+MATCH입니다. 

두 함수 모두 표 형태의 데이터를 참조하여 원하는 값을 찾아주는 데 유용하지만, 기능상 차이와 활용도 면에서는 큰 차이가 있습니다. 두 함수의 특징을 비교하고, 실제 사용 예시와 주의할 점, 추천 활용 팁까지 정리해 드리겠습니다.

VLOOKUP 함수란?

VLOOKUP(Vertical Lookup)은 세로 방향으로 데이터를 검색하여 값을 반환하는 함수입니다. 

함수 구조는 =VLOOKUP(찾을값, 범위, 열번호, [정확도])

 

예: =VLOOKUP("홍길동", A2:C100, 3, FALSE)
→ A2:C100 범위에서 첫 번째 열에서 "홍길동"을 찾고, 같은 행의 세 번째 열 값을 반환합니다.

장점: 간단하고 직관적인 구문
단점: 검색 열은 반드시 첫 번째 열에 위치해야 하며, 열 번호로 참조하기 때문에 삽입/삭제에 취약합니다.

INDEX + MATCH 함수란?

INDEX 함수는 특정 위치의 값을 반환하고, MATCH 함수는 해당 값의 위치를 반환하는 함수입니다.

두 함수를 결합하면 다양한 방향의 참조가 가능합니다.

=INDEX(반환할범위, MATCH(찾을값, 기준열, 0))

 

예: =INDEX(C2:C100, MATCH("홍길동", A2:A100, 0))
→ A열에서 "홍길동"의 행 번호를 찾고, C열에서 동일한 행의 값을 반환합니다.

장점: 좌우 구분 없이 양방향 참조 가능, 열 삽입/삭제에도 안전
단점: 구문이 비교적 복잡하여 초보자에게는 어려울 수 있음

 

주의할 점

  • VLOOKUP은 왼쪽 열만 검색 가능
    오른쪽 열에서 왼쪽으로 값을 참조할 수 없어 구조적인 제약이 큽니다.

  • INDEX+MATCH는 정확도 인수 필요 없음
    MATCH 함수에서 0을 넣어야 정확히 일치하는 값을 찾습니다.

  • VLOOKUP은 열 번호 변경에 민감
    열이 삽입되면 열번호를 수동으로 수정해야 합니다.

  • 배열 수식에서 INDEX+MATCH가 더 유연
    다차원 배열에서 활용이 가능하고, 조건부 참조에도 유리합니다.

 

추천 활용 팁

  • 동적 데이터 구조에는 INDEX+MATCH 추천
    열 추가/삭제가 잦은 데이터 시트라면 INDEX+MATCH가 훨씬 안정적입니다.

  • 검색 기준 열이 중간에 있는 경우
    예: C열에서 A열의 값을 찾고 싶을 때는 VLOOKUP은 불가, INDEX+MATCH만 가능

  • XLOOKUP 사용 전 과도기 대안
    최신 엑셀의 XLOOKUP이 없을 경우 INDEX+MATCH 조합은 매우 유사한 유연함을 제공

  • 대량 데이터에서 성능 비교
    INDEX+MATCH가 VLOOKUP보다 속도 면에서 유리한 경우가 많습니다 (특히 수천 개 이상일 때)

마무리: 어떤 함수가 더 나을까?

  • 간단한 참조: VLOOKUP
  • 정확한 제어와 안정성: INDEX+MATCH

    특히 복잡한 시트 구성이나 자동화된 보고서를 다루는 경우에는 INDEX+MATCH의 활용도가 훨씬 높습니다. 둘 다 익혀두되, 상황에 맞게 선택하여 사용하는 것이 중요합니다.

 

VLOOKUP, INDEX+MATCH, 다중조건 INDEX+MATCH, XLOOKUP 비교

사용 예시 : 사원명부에서 사원의 이름으로 부서와 입사일을 찾는 경우

이름 부서 입사일 사원ID 급여 직급
홍길동 인사팀 2020-03-01 1001 3200000 대리
김철수 영업팀 2019-08-15 1002 2800000 사원
이영희 개발팀 2021-05-10 1003 4000000 과장

 

VLOOKUP 예시:
=VLOOKUP("홍길동", A2:C4, 2, FALSE) → "인사팀" 반환
=VLOOKUP("홍길동", A2:C4, 3, FALSE) → "2020-03-01" 반환

INDEX+MATCH 예시:
=INDEX(B2:B4, MATCH("홍길동", A2:A4, 0)) → "인사팀"
=INDEX(C2:C4, MATCH("홍길동", A2:A4, 0)) → "2020-03-01"


다중조건 INDEX+MATCH 예시:
=INDEX(F2:F4, MATCH(1, (A2:A4="김철수")*(B2:B4="영업팀"), 0)) → "사원"


XLOOKUP 예시:

=XLOOKUP("이영희", A2:A4, B2:B4, "찾을 수 없음") → "개발팀"