엑셀 INDEX/MATCH 함수
excel-indexmatch• MATCH로 위치를 찾고 INDEX로 값을 가져오는 과정을 애니메이션으로 보여줘요. • VLOOKUP과 달리 찾는 열의 왼쪽 값도 가져올 수 있어요.
① 찾을 제품코드
i제품코드를 고르고 ‘조회 실행’을 눌러보세요.
MATCH 검색 중 (B열)위치 발견INDEX 반환
=INDEX($A$2:$A$8, MATCH("A104", $B$2:$B$8, 0))
💡 제품코드 칸만 바꾸면 제품명이 자동으로 바뀌어요. VLOOKUP과 달리 찾는 열의 왼쪽 값도 가져와요.
제품명—
INDEX/MATCH는 이렇게 읽어요
MATCH로 값의 위치(N)를 찾고, INDEX로 그 위치의 값을 가져와요. VLOOKUP과 달리 왼쪽 열도 가져올 수 있어요.
MATCHMATCH(코드, B열, 0) — 제품코드 열에서 찾을 값의 위치(행 번호)를 구해요. 마지막 0은 정확히 일치.
INDEXINDEX(A열, 위치) — MATCH가 구한 위치로 제품명 열의 그 값을 반환해요.
?왜 INDEX/MATCH? — VLOOKUP은 맨 왼쪽 열에서만 찾지만, INDEX/MATCH는 찾는 열과 가져올 열을 자유롭게 정해요(왼쪽도 가능).
IFERROR로 감싸면, 없는 코드는 #N/A 대신 ‘코드 없음’으로 표시돼요.
VLOOKUP 대신 INDEX/MATCH를 쓰는 이유
INDEX/MATCH는 VLOOKUP과 결과가 같지만 쓸 수 있는 상황이 더 넓어요. MATCH가 값의 위치(몇 번째 행인지)를 구하고 INDEX가 그 위치의 값을 가져오는 2단 구조라, 찾는 열과 가져올 열을 자유롭게 정할 수 있어요.
그래서 가져올 값이 찾는 값보다 왼쪽에 있어도 돼요. VLOOKUP은 구조상 이게 안 돼서 열 순서를 바꾸거나 보조 열을 만들어야 하는데, INDEX/MATCH는 그럴 필요가 없어요.
표를 오래 쓸수록 차이가 더 커져요. VLOOKUP은 몇 번째 열인지를 숫자로 적기 때문에 중간에 열을 하나 추가하면 다른 값을 가져오지만, INDEX/MATCH는 열 자체를 가리키니 그대로 동작해요. 처음엔 조금 길어 보여도 나중에 손이 덜 갑니다.