INDEX-MATCH vs VLOOKUP

위대한 논쟁: INDEX-MATCH vs. VLOOKUP

VLOOKUP은 엑셀에서 가장 유명한 조회 함수이고, INDEX-MATCH는 더 강력하고 더 유연한 경쟁자입니다. 이 논쟁은 10년 이상 엑셀 포럼에서 치열하게 이어져 왔으며, 그럴 만한 이유가 있습니다: 올바른 조회 방법 선택은 스프레드시트의 신뢰성, 유연성 및 성능에 직접적인 영향을 미칩니다.

스포일러: Excel 2021 또는 365를 사용 중이라면 XLOOKUP이 두 방법을 대부분 대체합니다. 하지만 수백만 명의 사용자가 여전히 구버전을 사용하고 있으며, INDEX-MATCH에서 배우는 원리는 모든 엑셀 함수에 적용됩니다. XLOOKUP 사용자조차 기본 메커니즘을 이해하면 도움이 됩니다.

Side-by-side comparison diagram: Left side shows VLOOKUP with its left-to-right limitation (search column must be leftmost), right side shows INDEX-MATCH with bidirectional flexibility. Visual arrows illustrate how VLOOKUP uses a table array with col_index_num while INDEX-MATCH uses separate lookup_range and return_range for independent column selection.
그림 1 — VLOOKUP(왼쪽)과 INDEX-MATCH(오른쪽) 아키텍처 비교. VLOOKUP은 검색 열과 반환 열을 하나의 범위로 묶지만, INDEX-MATCH는 독립적으로 유지하여 유연성의 원천이 됩니다

단계별 가이드: VLOOKUP을 INDEX-MATCH로 변환하기

시나리오: D열에 제품 ID가 있고 A열에 가격이 있는 제품 테이블이 있습니다. 조회 열이 반환 열의 오른쪽에 있기 때문에 VLOOKUP이 실패합니다. INDEX-MATCH가 필요합니다.

1단계 — INDEX-MATCH 구조 이해하기

  1. 수식 구조: =INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
  2. INDEX(range, row_number) — 특정 행 위치에서 범위의 값을 반환합니다.
  3. MATCH(value, range, 0) — 범위에서 값의 위치를 찾습니다. 0은 "정확히 일치"를 의미합니다.
  4. 함께 사용 시: MATCH가 행 번호를 찾고, INDEX가 반환 열의 해당 행에서 값을 반환합니다.

2단계 — 수식을 단계별로 작성하기

  1. 빈 셀에서 MATCH만 먼저 테스트하여 작동을 확인하세요: =MATCH(A2, D:D, 0). A2의 제품 ID가 D열에서 발견된 행 번호를 반환해야 합니다.
  2. 이제 INDEX로 감싸서 가격을 가져옵니다: =INDEX(A:A, MATCH(A2, D:D, 0)). MATCH가 찾은 행에서 A열의 가격을 반환합니다.
  3. 실제 사용 시 범위를 고정하세요: =INDEX($A$2:$A$1000, MATCH(A2, $D$2:$D$1000, 0)). 느린 계산을 즐기지 않는 한 전체 열 범위(A:A)를 사용하지 마세요.

3단계 — #N/A 오류를 우아하게 처리하기

  1. 전체 수식을 IFERROR로 감싸세요: =IFERROR(INDEX($A$2:$A$1000, MATCH(A2, $D$2:$D$1000, 0)), "찾을 수 없음").
  2. 이제 제품 ID가 조회 테이블에 없으면 보기 흉한 오류 대신 "찾을 수 없음"이 표시됩니다.
  3. 대시보드의 경우 더 깔끔한 모양을 위해 "찾을 수 없음" 대신 ""(빈 문자열)을 사용하세요.

VLOOKUP이 유리한 경우

  1. 단순함과 가독성. 하나의 VLOOKUP 수식은 INDEX-MATCH 조합보다 읽고 가르치기 쉽습니다. 조회 열이 왼쪽에 있는 간단한 조회의 경우 VLOOKUP이 작성하기 빠르고 동료들이 이해하기 쉽습니다.
  2. 빠른 임시 조회. 일회성 조회가 필요하고 데이터가 이미 조회 열이 먼저 오도록 구성된 경우, VLOOKUP이 가장 저항이 적은 경로입니다. 입력하고 넘어가세요.
  3. 근사 일치 시나리오. 숫자 구간(세금 구간, 수수료 대역, 등급 척도)의 경우, 네 번째 인수로 TRUE를 사용하는 VLOOKUP이 직관적이고 잘 문서화되어 있습니다.

INDEX-MATCH가 유리한 경우

  1. 조회 열이 반환 열의 오른쪽에 있는 경우. VLOOKUP은 왼쪽에서 오른쪽으로만 검색합니다. INDEX-MATCH는 열 순서에 구애받지 않습니다.
  2. 열 삽입 또는 삭제 시. VLOOKUP의 col_index_num은 하드코딩되어 있습니다. 열을 삽입하면 오른쪽 열을 참조하는 모든 VLOOKUP이 깨집니다. INDEX-MATCH는 실제 열 참조를 사용하여 올바르게 조정됩니다.
  3. 대규모 데이터셋에서의 성능. INDEX-MATCH는 전체 테이블 배열을 스캔하는 대신 단일 열로 조회를 제한할 수 있어 더 빠를 수 있습니다. 50,000행 이상에서 차이가 눈에 띄게 나타납니다.
  4. 양방향(매트릭스) 조회. INDEX-MATCH-MATCH는 기본 기능입니다: =INDEX(data_range, MATCH(row_value, row_headers, 0), MATCH(col_value, col_headers, 0)).
Excel worksheet demonstrating INDEX-MATCH-MATCH two-way lookup. A table of sales by region (rows) and quarter (columns). User enters 'East' in cell H1 and 'Q3' in H2. Formula =INDEX(B2:E5, MATCH(H1, A2:A5, 0), MATCH(H2, B1:E1, 0)) returns the intersection value. The formula bar shows the active formula with color-coded ranges matching the spreadsheet.
그림 2 — 양방향 검색을 위한 INDEX-MATCH-MATCH. 하나의 수식이 행과 열을 모두 일치시켜 모든 지역과 분기의 교차점을 찾습니다

흔한 실수

  1. VLOOKUP이 왼쪽을 조회할 수 없다는 것을 잊음. 이것이 가장 큰 좌절 요인입니다. VLOOKUP을 작동시키기 위해 열을 재배열하고 있다면 잘못된 싸움을 하고 있는 것입니다 — INDEX-MATCH로 전환하세요.
  2. VLOOKUP이 실수로 근사 일치를 사용. 네 번째 인수는 생략 시 기본값이 TRUE입니다. FALSE를 추가하는 것을 잊으면 올바르게 보이지만 미묘하게 잘못된 "충분히 가까운" 결과가 생성됩니다. 항상 FALSE를 명시적으로 작성하세요.
  3. INDEX-MATCH에서 MATCH 범위를 고정하지 않음. =INDEX(D:D, MATCH(A2, B:B, 0))은 취약합니다. 범위를 고정하세요: =INDEX($D$2:$D$100, MATCH(A2, $B$2:$B$100, 0)).
  4. INDEX-MATCH가 항상 더 빠르다고 가정. 작은 데이터셋(1,000행 미만)에서는 성능 차이가 무시할 만합니다. 단순함이 미미한 속도 향상보다 나은 경우가 많습니다.

고급 팁

Download Practice Template
이 기사에 대해 질문이 있거나 오류를 발견하셨나요?