Menu

엑셀 INDEX MATCH 함수: 왼쪽 조회, 양방향 조회

=INDEX(C2:C6,MATCH(F2,A2:A6,0))은 A열에서 F2가 있는 행을 찾아 C열의 같은 행 값을 반환합니다. 왼쪽 열을 가져올 수 있고, 양방향 조회가 되며, 모든 엑셀 버전에서 동작합니다.

이 페이지의 모든 시트는 실제로 동작합니다. 숫자나 수식을 바꾸면 다시 계산됩니다.

=INDEX(C2:C6,MATCH(F2,A2:A6,0))은 A2:A6에서 F2가 있는 행을 찾아 C2:C6의 같은 행 값을 반환합니다. MATCH가 위치를 찾고, INDEX가 그 위치의 값을 가져옵니다. 모든 엑셀 버전에서 동작하며, 왼쪽 열도 가져올 수 있습니다.

상품 가격 조회
G2
ABCDEFG
1ProductCategoryPriceCodeLook forPrice
2AppleFruit$1.20P-101Pear$1.50
3PearFruit$1.50P-102
4CarrotVegetable$0.80P-205
5BreadBakery$2.40P-310
6MilkDairy$1.10P-412
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

F2를 Milk로 바꾸면 G2가 $1.10을 반환합니다. C2:C6을 B2:B6으로 바꾸면 대신 분류를 반환합니다.

INDEX와 MATCH가 함께 동작하는 방식

이 수식은 한 셀 안에 들어 있는 두 단계입니다. 여기서는 각 부분이 무엇을 반환하는지 볼 수 있도록 두 단계를 다른 셀에 나눴습니다.

셀마다 한 단계씩
G3
ABCDEFG
1ProductCategoryPriceCodeLook forBread
2AppleFruit$1.20P-101Position4
3PearFruit$1.50P-102Price$2.40
4CarrotVegetable$0.80P-205
5BreadBakery$2.40P-310
6MilkDairy$1.10P-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열을 반환할 수 있습니다.

코드로 상품명 찾기
G2
ABCDEFG
1ProductCategoryPriceCodeCodeProduct
2AppleFruit$1.20P-101P-310Bread
3PearFruit$1.50P-102
4CarrotVegetable$0.80P-205
5BreadBakery$2.40P-310
6MilkDairy$1.10P-412
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

P-310은 Bread를 반환합니다. F2에 P-205를 입력하면 Carrot이 나옵니다. VLOOKUP이라면 먼저 Code 열을 표의 맨 앞으로 옮겨야 합니다.

양방향 조회: MATCH 두 개를 쓰는 INDEX

INDEX는 행 번호와 열 번호를 받습니다. 표 전체를 주고, MATCH 하나가 행을, 다른 하나가 열을 찾게 하세요.

지역별, 월별 매출
B8
ABCD
1RegionJanFebMar
2North4,2003,9004,800
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
6RegionEast
7MonthMar
8Sales5,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 부분은 단독으로도 유용합니다. 조건 두 개를 한 번에 쓰는 조회는 여러 조건으로 조회하기를 보세요.

연습: 왼쪽 열 조회

재고 내보내기
G2
ABCDEFG
1CodePriceStockProductLook forPrice
2P-101$1.2040AppleMilk
3P-102$1.5025Pear
4P-205$0.8060Carrot
5P-310$2.4015Bread
6P-412$1.1030Milk
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: 상품명은 마지막 열에 있습니다. G2에서 INDEX와 MATCH로 F2에 있는 상품의 가격을 반환하세요.

연습: 양방향 조회

시험 점수
B9
ABCD
1StudentMathScienceArt
2Ana788592
3Ben647188
4Cara958973
5Dev826779
6
7StudentCara
8SubjectScience
9Score
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: 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 열이 만나는 값을 반환합니다.

Coddy 프로그래밍 언어 일러스트

Coddy로 코딩 배우기

시작하기