본문 바로가기
로그박스 로그박스

엑셀 INDEX MATCH 함수 사용법 및 VLOOKUP보다 좋은 이유

읽는 시간 약 8분

엑셀 데이터 다루기 능력을 한 단계 높여주는 핵심 도구

직장인이라면 누구나 하루에도 몇 번씩 엑셀을 마주하게 됩니다. 수많은 데이터 속에서 필요한 정보를 찾아내는 일은 피할 수 없는 숙제와도 같습니다. 이럴 때 가장 먼저 떠올리는 기능이 바로 VLOOKUP 함수입니다. 입사 초기부터 귀에 못이 박히도록 듣는 VLOOKUP은 사용법이 비교적 간단하여 많은 사랑을 받고 있습니다.

하지만 다루는 데이터가 방대해지고 시트가 복잡해지기 시작하면 VLOOKUP만으로는 한계에 부딪히게 됩니다. 열을 삽입하거나 삭제할 때마다 데이터가 엉망이 되거나 원하는 값을 찾지 못해 당황했던 경험이 한 번쯤은 있으실 겁니다. 이러한 답답함을 단번에 해결해 주는 구원투수가 바로 INDEX와 MATCH 함수의 조합입니다.

엑셀 VLOOKUP 함수가 가진 한계와 답답함

우리가 익히 알고 있는 VLOOKUP은 왼쪽에서 오른쪽으로만 데이터를 찾을 수 있다는 치명적인 구조적 약점을 가지고 있습니다. 예를 들어 사원번호를 기준으로 이름을 찾을 수는 있어도, 이름을 기준으로 사원번호를 찾는 것은 VLOOKUP 단독으로는 불가능합니다. 이를 해결하려면 원본 데이터의 열 순서를 억지로 바꾸거나 불필요한 열을 다시 만들어야 하는 번거로움이 생깁니다.

더 큰 문제는 유지보수의 취약성입니다. VLOOKUP 함수의 세 번째 인수로 입력하는 열 번호는 숫자로 지정됩니다. 이는 나중에 사용자가 데이터 중간에 새로운 열을 삽입하거나 삭제할 경우, 함수가 참조하는 열 번호가 틀어지면서 엉뚱한 값을 불러오게 만드는 주원인이 됩니다. 매번 시트가 바뀔 때마다 수식을 수정해야 한다면 업무 효율성은 크게 떨어질 수밖에 없습니다.

INDEX와 MATCH 함수가 무엇인지 이해하기

INDEX 함수와 MATCH 함수는 각각의 개별 함수이지만 함께 사용될 때 비로소 진가가 발휘됩니다. 두 함수의 개념을 먼저 명확히 이해하는 것이 중요합니다.

  • INDEX 함수: 특정 행과 열 번호가 만나는 위치의 값을 가져옵니다. “행과 열 번호가 교차하는 곳에 무엇이 있니?”라고 묻는 것과 같습니다.
  • MATCH 함수: 특정 값이 지정된 범위 안에서 몇 번째에 위치하는지 그 상대적인 순서(위치)를 찾아냅니다. “이 값이 몇 번째 칸에 있니?”라고 묻는 것과 같습니다.

이 두 함수를 결합하면 매칭 함수가 위치를 찾아내고, 인덱스 함수가 그 위치의 값을 정확하게 뽑아내는 완벽한 협업 체계가 구축됩니다.

VLOOKUP보다 INDEX와 MATCH 조합이 강력한 이유

실무에서 전문가들이 입을 모아 VLOOKUP 대신 INDEX와 MATCH를 권장하는 데에는 분명한 이유가 있습니다. 업무 속도를 높이고 실수를 방지해 주는 강력한 장점들이 존재합니다.

방향성에 구애받지 않는 자유로운 탐색

VLOOKUP은 반드시 기준 열이 가장 왼쪽에 있어야 하지만, INDEX와 MATCH 조합은 기준 열이 오른쪽에 있든 왼쪽에 있든 아무런 상관이 없습니다. 데이터의 구조를 내 입맛에 맞게 바꿀 필요 없이 원본 그대로 활용할 수 있어 매우 유연합니다.

열 삽입과 삭제에 흔들리지 않는 안전성

MATCH 함수는 고정된 숫자가 아니라 특정 항목의 이름을 기준으로 위치를 파악합니다. 따라서 데이터 사이에 새로운 열이 추가되거나 기존 열이 삭제되더라도 함수가 스스로 위치를 재계산하므로 수식이 깨질 염려가 전혀 없습니다.

대규모 데이터셋에서의 뛰어난 성능

VLOOKUP은 전체 테이블 범위를 지정하여 연산하기 때문에 데이터 양이 많아질수록 엑셀 속도가 현저히 느려집니다. 반면 INDEX와 MATCH는 필요한 열만 따로 지정해서 검색할 수 있으므로 파일 용량을 가볍게 유지하고 연산 속도를 대폭 향상시킬 수 있습니다.

실전에서 바로 쓰는 INDEX와 MATCH 함수 사용법

백문이 불여일견입니다. 실제로 어떻게 수식을 작성하는지 구체적인 공식을 살펴보겠습니다. 기본적인 결합 형태는 다음과 같습니다.

=INDEX(가져올값이있는범위, MATCH(찾을값, 찾을범위, 0))

여기서 맨 뒤에 붙는 숫자 ‘0’은 정확히 일치하는 값을 찾으라는 의미이므로 반드시 적어주어야 합니다. 사원 명부에서 특정 직원의 부서를 찾는 상황을 가정해 보겠습니다. 직원의 이름이 B열에 있고, 부서 명이 D열에 있다고 할 때, VLOOKUP으로는 부서가 이름보다 왼쪽에 있지 않아 곤란할 수 있습니다.

하지만 INDEX와 MATCH를 사용하면 다음과 같이 간단하게 해결할 수 있습니다.

=INDEX(D2:D100, MATCH("홍길동", B2:B100, 0))

이 수식의 의미는 다음과 같습니다. 먼저 MATCH 함수가 B2부터 B100 범위에서 ‘홍길동’이라는 이름이 몇 번째 행에 있는지 찾습니다. 만약 5번째에 있다면, INDEX 함수는 D2부터 D100 범위에서 5번째에 해당하는 부서명을 정확하게 가져오게 됩니다.

두 개 이상의 조건을 동시에 만족하는 값 찾기

VLOOKUP의 또 다른 한계는 단일 조건만 검색할 수 있다는 점입니다. 예를 들어 ‘김철수’이면서 동시에 ‘영업부’인 사람의 실적을 찾고 싶다면 VLOOKUP은 매우 복잡한 우회로를 거쳐야 합니다.

반면 INDEX와 MATCH 조합을 이용하면 다중 조건 검색도 아주 쉽게 구현할 수 있습니다. 배열 수식의 형태로 다음과 같이 작성합니다.

=INDEX(가져올범위, MATCH(1, (조건범위1=조건값1) * (조건범위2=조건값2), 0))

이 방식을 사용하면 이름을 동명이인으로 구분해야 하거나, 날짜와 부서 등 여러 가지 기준을 동시에 충족하는 데이터를 정확하게 추출할 수 있어 실무 활용도가 극대화됩니다.

엑셀 작업 시 흔히 저지르는 실수와 해결책

새로운 함수를 익히는 과정에서 누구나 몇 번의 시행착오를 겪기 마련입니다. 자주 발생하는 문제들을 미리 파악해두면 시간을 크게 아낄 수 있습니다.

참조 범위의 크기가 일치하지 않을 때

INDEX 범위와 MATCH의 검색 범위 크기가 서로 다르면 엑셀은 `#REF!` 오류를 발생시킵니다. 데이터 행 개수가 100개라면 두 범위 모두 동일하게 100행 단위로 잡아주는 것이 안전합니다.

공백이나 숨겨진 텍스트로 인한 일치 실패

데이터를 외부에서 복사해 오는 경우 값 뒤에 보이지 않는 공백이 포함되어 있는 경우가 많습니다. MATCH 함수는 정확히 일치하는 값만 찾기 때문에 공백 하나만 달라도 값을 찾지 못합니다. 이럴 때는 TRIM 함수를 함께 사용하여 불필요한 공백을 제거해 주어야 합니다.

업무 능력을 높이는 스마트한 데이터 관리 습관

복잡한 엑셀 함수를 능숙하게 다루는 것은 단순히 야근을 줄이는 것 이상의 의미를 가집니다. 데이터의 신뢰성을 높이고 분석 과정에서의 휴먼 에러를 원천적으로 차단할 수 있습니다.

처음에는 VLOOKUP에 비해 수식이 길고 복잡해 보여 거부감이 들 수 있지만, 딱 일주일만 반복해서 사용해 보면 그 편리함에서 헤어나오기 어렵습니다. 열 삽입에 굴하지 않고, 방향에 구애받지 않으며, 다중 조건까지 완벽하게 소화해 내는 INDEX와 MATCH 함수야말로 진정한 엑셀 고수가 되기 위한 필수 관문입니다.

오늘 다루어본 내용을 바탕으로 당장 내일 출근해서 다루는 복잡한 시트에 적용해 보시기 바랍니다. 데이터가 스스로 정렬되고 원하는 값이 한 번에 튀어나오는 쾌감을 경험하실 수 있을 것입니다.

osh254016
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.