카테고리 없음

엑셀 조회 및 참조 함수 INDEX, MATCH

IT Office 2025. 6. 24. 12:03
반응형

엑셀 조회 함수의 양대 산맥인 VLOOKUP과 HLOOKUP의 기본을 다졌습니다.

이 함수들은 분명 강력하지만, 특정 한계점도 가지고 있습니다.

예를 들어, VLOOKUP은 항상 찾을_값이 참조_범위의 가장 왼쪽 열에 있어야 하고, 반환할 열_번호를 숫자로 직접 지정해야 하므로 유연성이 떨어지죠. 데이터를 좌우로 검색하거나 동적으로 열을 변경해야 할 때 난감한 상황에 부딪힐 수 있습니다.

바로 이러한 VLOOKUP의 한계를 극복하고, 훨씬 더 유연하고 강력한 데이터 조회 및 매칭을 가능하게 하는 환상의 짝꿍, INDEX와 MATCH 함수 조합에 대해 집중적으로 다룰 예정입니다. 이 조합을 마스터하면 엑셀 데이터 조회 능력은 한 단계 더 업그레이드될 것입니다!

 


왜 INDEX와 MATCH 조합을 마스터해야 할까요?

VLOOKUP이 특정 방향(수직)과 고정된 열 번호에 의존하는 반면, INDEX와 MATCH는 마치 좌표계를 사용하여 원하는 값을 찾아내는 것과 같습니다.

  • MATCH: '이 값이 전체 목록에서 몇 번째에 있어?'라고 질문하며 값의 상대적인 위치(행 또는 열 번호)를 찾아줍니다.
  • INDEX: '이 범위에서 몇 번째 행, 몇 번째 열에 있는 값이 뭐야?'라고 질문하며 해당 위치의 값을 반환합니다.

이 두 함수를 결합하면 VLOOKUP의 제약을 뛰어넘어 어떤 방향으로든 검색이 가능하고, 동적으로 반환할 열/행을 변경할 수 있으며, 더 빠른 처리 속도를 제공하기도 합니다. 또한, 특정 값이 없거나 오류가 발생했을 때 VLOOKUP보다 더 상세한 제어가 가능해집니다.


주요 함수들

다음 함수들을 실무 예제와 함께 자세히 살펴보겠습니다.

  • INDEX: 지정된 범위에서 행과 열 번호에 해당하는 값을 반환
  • MATCH: 지정된 값과 일치하는 항목의 상대적인 위치(순서)를 반환

실무 예제로 배우는 엑셀 함수 마스터하기

각 함수를 단독으로 사용하는 방법부터 시작하여, 실제 비즈니스 시나리오에서 INDEX와 MATCH를 조합하여 데이터 조회 및 매칭을 수행하는 방법을 보여드리겠습니다.

1. MATCH: 값의 상대적인 위치 찾기

MATCH 함수는 지정된 찾을_값이 특정 범위 내에서 몇 번째 위치에 있는지(즉, 순서)를 숫자로 반환합니다. 이 숫자가 바로 INDEX 함수에서 사용할 '행 번호'나 '열 번호'가 됩니다.

  • 기본 형식: =MATCH(찾을_값, 찾을_범위, [일치_유형])
    • 찾을_값: 검색하려는 값 (예: "제품 코드", "부서명").
    • 찾을_범위: 찾을_값을 검색할 단일 행 또는 단일 열 범위.
    • 일치_유형 (선택 사항):
      • 0: 정확히 일치. 가장 널리 사용되며, 찾을_값이 찾을_범위에서 정확히 일치하는 첫 번째 항목의 위치를 반환합니다. (정렬 필요 없음)
      • 1 (또는 생략): 작거나 같음 (근사 일치). 찾을_범위가 오름차순으로 정렬되어 있어야 합니다.
      • -1: 크거나 같음 (근사 일치). 찾을_범위가 내림차순으로 정렬되어 있어야 합니다.

실무 예제 1 (수직 검색): 직원 ID가 A열에 있고, '김철수' 직원의 ID가 이 목록에서 몇 번째 행에 있는지 찾으세요.

직원 ID 이름
EMP001 박영희
EMP002 김철수
EMP003 이민호
EMP004 최민정
 

해결 방법: C2 셀에 다음 수식을 입력합니다. =MATCH("김철수", B2:B5, 0)

결과: 2 (B2:B5 범위에서 '김철수'는 두 번째에 위치)

실무 예제 2 (수평 검색): 월별 데이터 헤더에서 '3월'이 몇 번째 열에 있는지 찾으세요.


1월 2월 3월 4월
매출액 1000 1200 1500 1300
 

해결 방법: A4 셀에 다음 수식을 입력합니다. =MATCH("3월", B1:E1, 0)

결과: 3 (B1:E1 범위에서 '3월'은 세 번째에 위치)

 

최상급 실무 활용: MATCH 함수는 INDEX와 결합될 때 빛을 발하지만, 단독으로도 데이터의 특정 값 위치 파악, 중복 여부 확인(COUNTIF + MATCH), 동적인 범위 설정 등에 활용될 수 있습니다. 중요한 것은 일치_유형을 0(정확히 일치)으로 설정하는 습관을 들이는 것입니다.

 

2. INDEX: 지정된 위치의 값 반환

INDEX 함수는 지정된 범위에서 행 번호와 열 번호(선택 사항)에 해당하는 셀의 값을 반환합니다. 마치 행렬에서 특정 위치의 원소를 찾아내는 것과 같습니다.

  • 기본 형식: =INDEX(배열, 행_번호, [열_번호])
    • 배열: 값을 가져올 데이터가 있는 셀 범위.
    • 행_번호: 배열 내에서 값을 가져올 행의 상대적인 번호.
    • 열_번호 (선택 사항): 배열 내에서 값을 가져올 열의 상대적인 번호. 배열이 단일 열 또는 단일 행일 경우 생략 가능.

실무 예제 1 (단일 열에서 값 가져오기): 직원 이름 목록(B2:B5)에서 세 번째에 있는 이름을 가져오세요.


직원 ID 이름
EMP001 박영희
EMP002 김철수
EMP003 이민호
EMP004 최민정
 

해결 방법: D2 셀에 다음 수식을 입력합니다. =INDEX(B2:B5, 3)

결과: 이민호

실무 예제 2 (두 차원 배열에서 값 가져오기): 월별 매출액 테이블(B2:E2)에서 3월의 매출액을 가져오세요.


1월 2월 3월 4월
매출액 1000 1200 1500 1300
 

해결 방법: A4 셀에 다음 수식을 입력합니다. =INDEX(B2:E2, 1, 3) (단일 행이므로 행 번호는 1, 3월은 세 번째 열)

결과: 1500

 

최상급 실무 활용: INDEX는 MATCH가 찾아준 위치 번호를 받아 실제 값을 추출하는 역할을 합니다. 단독으로는 특정 위치의 값을 가져올 때 사용되지만, MATCH와 함께 사용될 때 진정한 위력을 발휘합니다.

 

3. INDEX + MATCH: VLOOKUP의 한계를 뛰어넘는 조합

INDEX와 MATCH를 결합하면 VLOOKUP의 가장 큰 한계점인 '찾을_값이 항상 가장 왼쪽 열에 있어야 한다'는 제약을 뛰어넘을 수 있습니다. 또한, 반환할 열의 위치를 동적으로 지정할 수 있어 훨씬 유연한 데이터 조회가 가능합니다.

  • 기본 형식: =INDEX(결과_범위, MATCH(찾을_값, 찾을_범위(수직), 0), [MATCH(찾을_열_헤더, 찾을_범위(수평), 0)])
    • 결과_범위: 실제로 값을 가져올 데이터가 있는 전체 범위 (VLOOKUP의 참조_범위와 다름).
    • MATCH(찾을_값, 찾을_범위(수직), 0): 찾을_값이 결과_범위 내에서 몇 번째 '행'에 있는지 찾습니다.
    • MATCH(찾을_열_헤더, 찾을_범위(수평), 0) (선택 사항): 반환할 열의 '헤더'를 기준으로 해당 열이 결과_범위 내에서 몇 번째 '열'에 있는지 찾습니다.

실무 예제 1 (왼쪽 검색): 제품명으로 제품 코드를 찾아야 합니다. VLOOKUP으로는 불가능한 '왼쪽 검색' 상황입니다.


제품명 제품코드 단가
노트북 P001 10,000
태블릿 P002 15,000
스마트폰 P003 8,000
 

예제 목표: '스마트폰'의 제품 코드를 조회하세요.

해결 방법: D2 셀에 다음 수식을 입력합니다. =INDEX(B2:B4, MATCH("스마트폰", A2:A4, 0))

  • INDEX(B2:B4): 제품 코드(결과)가 있는 범위.
  • MATCH("스마트폰", A2:A4, 0): '스마트폰'이 제품명 범위(A2:A4)에서 몇 번째에 있는지 찾아줍니다 (3번째).

결과: P003

실무 예제 2 (다차원 동적 조회): 직원별 월별 판매 실적표에서 특정 직원의 특정 월 판매액을 조회해야 합니다.

이름 1월 2월 3월 4월
김철수 100 120 150 130
이영희 80 90 110 100
박지성 110 130 160 140
 

데이터 조회:

조회 이름 김철수
조회 월 3월
판매액  

 

예제 목표: '김철수'의 '3월' 판매액을 조회하세요.

해결 방법: C5 셀에 다음 수식을 입력합니다. =INDEX(B2:E4, MATCH(C3, A2:A4, 0), MATCH(C4, B1:E1, 0))

  • INDEX(B2:E4): 실제 판매액 데이터가 있는 전체 범위.
  • MATCH(C3, A2:A4, 0): 조회 이름('김철수')이 이름 목록(A2:A4)에서 몇 번째 행에 있는지 찾습니다 (1번째).
  • MATCH(C4, B1:E1, 0): 조회 월('3월')이 월 헤더(B1:E1)에서 몇 번째 열에 있는지 찾습니다 (3번째).

결과: 150

 

최상급 실무 활용: INDEX와 MATCH 조합은 VLOOKUP의 모든 기능을 대체할 수 있으며, 좌/우/양방향 검색, 동적인 열/행 참조, 다중 조건 검색(논리 함수와 결합), 그리고 더 나은 성능을 제공합니다. 이는 복잡한 보고서 자동화, 동적인 대시보드 구축, 그리고 유연한 데이터 매핑에 필수적인 기술입니다.

VLOOKUP과 달리 참조 범위가 비어있는 행/열을 포함해도 성능 저하가 덜하다는 장점도 있습니다.


 

VLOOKUP의 한계를 극복하고 보다 유연하고 강력한 데이터 조회 및 매칭을 가능하게 하는 INDEX와 MATCH 함수 조합을 심층적으로 살펴보았습니다. 이 조합은 엑셀 데이터 관리와 분석의 고급 단계로 나아가기 위한 필수적인 기술입니다.

 

반응형