=INDEX(C2:C6,MATCH(F2,A2:A6,0))은 A2:A6에서 F2가 있는 행을 찾아 C2:C6의 같은 행 값을 반환합니다. MATCH가 위치를 찾고, INDEX가 그 위치의 값을 가져옵니다. 모든 엑셀 버전에서 동작하며, 왼쪽 열도 가져올 수 있습니다.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Code | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | P-101 | Pear | $1.50 | |
| 3 | Pear | Fruit | $1.50 | P-102 | |||
| 4 | Carrot | Vegetable | $0.80 | P-205 | |||
| 5 | Bread | Bakery | $2.40 | P-310 | |||
| 6 | Milk | Dairy | $1.10 | P-412 |
F2를 Milk로 바꾸면 G2가 $1.10을 반환합니다. C2:C6을 B2:B6으로 바꾸면 대신 분류를 반환합니다.
INDEX와 MATCH가 함께 동작하는 방식
이 수식은 한 셀 안에 들어 있는 두 단계입니다. 여기서는 각 부분이 무엇을 반환하는지 볼 수 있도록 두 단계를 다른 셀에 나눴습니다.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Code | Look for | Bread | |
| 2 | Apple | Fruit | $1.20 | P-101 | Position | 4 | |
| 3 | Pear | Fruit | $1.50 | P-102 | Price | $2.40 | |
| 4 | Carrot | Vegetable | $0.80 | P-205 | |||
| 5 | Bread | Bakery | $2.40 | P-310 | |||
| 6 | Milk | Dairy | $1.10 | P-412 |
Bread는 A2:A6의 네 번째 항목이므로 MATCH(G1,A2:A6,0)은 4를 반환합니다. INDEX(C2:C6,4)는 C2:C6의 네 번째 항목인 $2.40을 반환합니다. G2 자리에 MATCH를 넣어 INDEX 안에 두면 한 셀짜리 수식이 됩니다. 이것이 동작하려면 규칙 두 가지를 지켜야 합니다:
- 두 범위는 같은 행에서 시작하고 높이가 같아야 합니다.
MATCH(...,A2:A6,0)은 2행부터 세므로 INDEX는C1:C6(바로 위 행을 반환함)이 아니라C2:C6을 읽어야 합니다. - MATCH는 0으로 끝내세요. 0이 없으면 MATCH는 A열이 정렬되어 있다고 가정하는 유사 일치를 하며, 이름 목록에서는 다른 행의 위치를 반환할 수 있습니다. MATCH의 세 가지 일치 유형은 MATCH 페이지에서 다룹니다.
값이 목록에 없으면 MATCH가 #N/A를 반환하고 수식 전체도 #N/A가 됩니다. =IFNA(INDEX(C2:C6,MATCH(F2,A2:A6,0)),"Not found")는 대신 텍스트를 보여 줍니다.
왼쪽 열 조회
VLOOKUP은 검색하는 열의 오른쪽 열만 반환합니다. INDEX와 MATCH는 순서를 신경 쓰지 않습니다. D열을 검색하고 A열을 반환할 수 있습니다.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Code | Code | Product | |
| 2 | Apple | Fruit | $1.20 | P-101 | P-310 | Bread | |
| 3 | Pear | Fruit | $1.50 | P-102 | |||
| 4 | Carrot | Vegetable | $0.80 | P-205 | |||
| 5 | Bread | Bakery | $2.40 | P-310 | |||
| 6 | Milk | Dairy | $1.10 | P-412 |
P-310은 Bread를 반환합니다. F2에 P-205를 입력하면 Carrot이 나옵니다. VLOOKUP이라면 먼저 Code 열을 표의 맨 앞으로 옮겨야 합니다.
양방향 조회: MATCH 두 개를 쓰는 INDEX
INDEX는 행 번호와 열 번호를 받습니다. 표 전체를 주고, MATCH 하나가 행을, 다른 하나가 열을 찾게 하세요.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Region | Jan | Feb | Mar |
| 2 | North | 4,200 | 3,900 | 4,800 |
| 3 | South | 3,100 | 3,600 | 3,300 |
| 4 | East | 5,200 | 4,700 | 5,600 |
| 5 | West | 2,800 | 3,000 | 3,400 |
| 6 | Region | East | ||
| 7 | Month | Mar | ||
| 8 | Sales | 5,600 |
East는 A2:A5의 3행이고 Mar는 B1:D1의 3열이므로, INDEX는 B2:D5의 3행 3열인 5,600을 반환합니다. 행용 MATCH는 첫 열을 아래로, 열용 MATCH는 머리글 행을 가로로 검색하며, 두 범위 모두 표 B2:D5와 위치가 맞습니다.
INDEX MATCH가 VLOOKUP보다 나은 이유
=VLOOKUP(F2, A2:D6, 3, FALSE)
=INDEX(C2:C6, MATCH(F2, A2:A6, 0))
둘 다 가격을 반환합니다. 차이는 시트가 바뀔 때 드러납니다:
- 열 삽입. Category와 Price 사이에 열을 삽입하면 VLOOKUP은 여전히 3번 열을 요청하는데, 그 열은 이제 새로 생긴 빈 열입니다. INDEX 버전에서는 엑셀이
C2:C6을D2:D6으로 바꿔 계속 동작합니다. - 왼쪽 조회. 위에서 보았듯 VLOOKUP은 못 하고 INDEX MATCH는 할 수 있습니다.
Excel 2021과 Microsoft 365에서는 XLOOKUP이 더 간단한 인수로 함수 하나에서 둘 다 해 줍니다. Excel 2019 이하에서 열어야 하는 파일에는 여전히 INDEX MATCH가 적합하며, INDEX 부분은 단독으로도 유용합니다. 조건 두 개를 한 번에 쓰는 조회는 여러 조건으로 조회하기를 보세요.
연습: 왼쪽 열 조회
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Code | Price | Stock | Product | Look for | Price | |
| 2 | P-101 | $1.20 | 40 | Apple | Milk | ||
| 3 | P-102 | $1.50 | 25 | Pear | |||
| 4 | P-205 | $0.80 | 60 | Carrot | |||
| 5 | P-310 | $2.40 | 15 | Bread | |||
| 6 | P-412 | $1.10 | 30 | Milk |
직접 해 보세요: 상품명은 마지막 열에 있습니다. G2에서 INDEX와 MATCH로 F2에 있는 상품의 가격을 반환하세요.
연습: 양방향 조회
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Math | Science | Art |
| 2 | Ana | 78 | 85 | 92 |
| 3 | Ben | 64 | 71 | 88 |
| 4 | Cara | 95 | 89 | 73 |
| 5 | Dev | 82 | 67 | 79 |
| 6 | ||||
| 7 | Student | Cara | ||
| 8 | Subject | Science | ||
| 9 | Score |
직접 해 보세요: B9에서 B7 학생의 B8 과목 점수를 반환하세요.
자주 묻는 질문
INDEX MATCH는 어떻게 동작하나요?
MATCH가 열에서 값의 위치를 찾고, INDEX가 다른 열의 그 위치에 있는 값을 반환합니다. =INDEX(C2:C6,MATCH("Pear",A2:A6,0))에서 Pear는 A2:A6의 두 번째 항목이므로 MATCH가 2를 반환하고, INDEX가 C2:C6의 두 번째 항목을 반환합니다.
VLOOKUP 대신 INDEX MATCH를 쓰는 이유는 무엇인가요?
검색하는 열보다 왼쪽에 있는 열을 반환할 수 있고, 표 안에 열을 삽입해도 망가지지 않습니다(어긋날 열 번호가 없음). Excel 2021과 Microsoft 365에서는 XLOOKUP이 함수 하나로 같은 장점을 줍니다.
MATCH의 0은 무슨 뜻인가요?
정확히 일치를 요청합니다. 0이 없으면 MATCH는 match_type 1, 즉 열이 오름차순으로 정렬되어 있다고 가정하는 유사 일치를 쓰며, 정렬되지 않은 목록에서는 다른 행의 위치를 반환할 수 있습니다.
INDEX MATCH로 양방향 조회는 어떻게 하나요?
INDEX에 표 전체와 MATCH 두 개, 즉 행용 하나와 열용 하나를 줍니다. =INDEX(B2:D5,MATCH("South",A2:A5,0),MATCH("Feb",B1:D1,0))은 South 행과 Feb 열이 만나는 값을 반환합니다.