본문 바로가기
업무 지식/엑셀 함수

[엑셀] INDEX/MATCH 함수로 표에서 원하는 위치의 값 가져오는 방법

by 김억지 2023. 6. 5.

INDEX 함수와 MATCH 함수는 따로 사용되기도 하지만 실무를 함에 있어 대부분의 상황에서 함께 쓰이게 됩니다. VLOOKUP 함수만큼이나 자주 사용됨은 물론이고 다양하게 응용하여 사용할 수 있으므로 꼭 익혀야 할 함수라고 할 수 있습니다. 먼저 INDEX 함수와 MATCH 함수의 구조를 알아보겠습니다.

 

=INDEX(Array, Row_num, Column_num)

 

첫 번째 인수 'Array'는 가져올 값이 있는 표(배열)입니다.

 

두 번째 인수 'Row_num'은 첫 번째 인수로 지정한 'Array'에서 몇 번째 '행'의 값을 가져올지 정하는 인수입니다.

 

세 번째 인수 'Column_num'은 첫 번째 인수로 지정한 'Array'에서 몇 번째 '열'의 값을 가져올지 정하는 인수입니다.

 

예를 들어 K3 셀에 INDEX 함수를 사용하여 인천지점의 5월 계약건수 값을 나타내고자 합니다. 이럴 때는 '=INDEX(A3:G9,4,6)'을 입력하면 됩니다. 

 

첫 번째 인수 'A3:G9'는 가져올 값이 포함되어 있는 표(배열)입니다.

 

두 번째 인수 '4'는 표에서 몇 번째 행의 값을 가져올지 정하는 인수인데 표에서 인천지점의 값은 네 번째 행에 있기 때문에 '4'를 입력합니다.

 

세 번째 인수 '6'은 표에서 몇 번째 열의 값을 가져올지 정하는 인수인데 표에서 5월의 값은 여섯 번째 열에 있기 때문에 '6'을 입력합니다.

 

INDEX 함수는 두 번째나 세 번째 함수를 생략할 수 있는데요. 첫 번째 인수로 지정한 배열의 행과 열이 각각 2개 이상이면 두 번째와 세 번째 인수를 각각 지정해야 하지만 첫 번째 인수로 지정한 배열이 1개의 열이라면 열 번호를 지정하는 세 번째 인수를 생략할 수 있고 첫 번째 인수로 지정한 배열이 1개의 행이라면 행 번호를 지정하는 두 번째 인수를 생략할 수 있습니다.

 

INDEX 함수 자체만으로도 유용한 함수이지만 표에서 값을 가져올 때는 MATCH 함수와 사용하는 경우가 훨씬 많습니다. MATCH 함수는 배열에서 찾으려고 하는 값의 위치를 나타내는 함수인데 구조는 아래와 같습니다.

 

=MATCH(Lookup_value, Lookup_array, Match_type)

 

첫 번째 인수 'Lookup_value'는 두 번째 인수로 지정할 범위에서 찾으려는 값입니다.

 

두 번째 인수 'Lookup_array'는 첫 번째 인수로 지정한 값을 찾을 표(배열)입니다.

 

세 번째 인수 'Match_type'는 값을 찾는 옵션입니다. 1을 입력하면 첫 번째 인수 값보다 작거나 같은 값 중 가장 큰 값을 반환합니다. 0을 입력하면 정확히 일치하는 값을 반환합니다. -1을 입력하면 첫 번째 인수 값보다 크거나 같은 값 중 가장 작은 값을 반환합니다. 세 번째 인수를 1이나 -1로 입력해야 하는 상황도 분명히 있겠지만 정확히 일치하는 값을 찾는 경우가 대부분이므로 세 번째 인수는 0을 입력하거나 생략할 때가 많습니다.

 

예를 들어 표에서 '5월'의 위치를 찾으려면 '=MATCH("5월",A3:G3,0)'을 입력합니다.(세 번째 인수는 생략 가능) 'A3:G3' 범위에서 5월의 위치는 여섯 번째이므로 '6'의 값을 반환합니다.

 

'인천지점'의 위치를 찾으려면 '=MATCH("인천지점",A3:A9,0)'을 입력합니다.(세 번째 인수는 생략 가능) 'A3:A9'의 범위에서 인천지점의 위치는 네 번째이므로 '4'의 값을 반환합니다.

 

INDEX 함수와 MATCH 함수를 결합해서 표에서 원하는 위치의 값 가져오기

이렇게 INDEX 함수와 MATCH 함수 각각의 구조를 이해했다면 두 함수를 결합하여 표에서 원하는 위치의 값을 가져올 수 있습니다. 기본 원리를 간단히 설명하자면 INDEX 함수를 사용하여 표에서 n1번째 행과 n2번째 열의 값을 가져오는 데, INDEX 함수의 두 번째 인수와 세 번째 인수로 들어갈 n1값과 n2값을 MATCH 함수를 통해 값을 입력하면 편리하게 값을 가져올 수 있습니다. 설명이 다소 복잡할 수 있습니다. 예시를 통해서 설명드리겠습니다.

 

인천지점의 5월 계약건수를 나타내기 위해 '=INDEX(A3:G9,MATCH(I3,A3:A9),MATCH(J3,A3:G3))'을 입력합니다.

 

첫 번째 인수 'A3:G9'는 값이 포함되어 있는 표(배열)입니다.

 

두 번째 인수 'MATCH(I3,A3:A9)'는 INDEX 함수의 두 번째 인수인데 첫 번째 인수로 지정한 'A3:G9'에서 몇 번째 행의 값을 가져올지 정하는 인수입니다. 'MATCH(I3,A3:A9)'는 A3:A9의 범위에서 I3셀의 값, 즉 인천지점의 위치를 나타내며 '4'의 값을 반환합니다.

 

세 번째 인수 'MATCH(J3,A3:G3)'은 INDEX 함수의 세 번째 인수인데 첫 번째 인수로 지정한 'A3:G9'에서 몇 번째 열의 값을 가져올지 정하는 인수입니다. 'MATCH(J3,A3:G3)'은 A3:G3의 범위에서 J3셀의 값, 즉 5월의 위치를 나타내며 '6'의 값을 반환합니다.

 

이렇게 수식을 입력하면 I3셀과 J3셀의 값을 바꾸면 자동으로 표에서 원하는 값을 가져올 수 있습니다. INDEX 함수로 표에서 값을 가져오는데 MATCH 함수로 몇 번째 행과 열인지 자동으로 반환하는 것입니다.

 

이렇게 수식을 입력해 놓으면 I3셀과 J3셀의 값을 바꾸면 자동으로 해당되는 값을 가져오게 됩니다.

댓글