엑셀 INDEX 함수 사용법 및 실전예제 총정리 :: 참조 함수

선택한 범위에서 원하는 위치의 값을 반환하는 INDEX 함수의 사용법과 주의사항을 알아봅니다.

홈페이지 » 엑셀 INDEX 함수 사용법 및 실전예제 :: 참조 함수

엑셀 INDEX 함수 사용법 및 응용공식

요약

엑셀 INDEX 함수는 범위에서 특정 순번에 위치하는 값을 반환하는 함수입니다. (또는 셀 주소를 반환할 수도 있습니다.)

즉, 선택한 범위에서 "가로로 몇번째, 세로로 몇번째에 위치한 값"을 찾아주는 함수입니다.

INDEX함수의 결과값으로 셀 또는 전체행/전체열을 반환 할 수 있습니다. INDEX/MATCH 함수 공식을 응용하면 참조범위 왼쪽으로 조회하기, VLOOKUP 함수로 이미지 출력하기 등 VLOOKUP 함수보다 더욱 다양한 동작을 수행할 수 있습니다. 뿐만아니라 INDEX 동적범위를 활용하여 실시간 자동업데이트 차트도 제작할 수 있습니다.


예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.


사용예제
엑셀 INDEX 함수 사용예제
범위에서 지정한 위치의 값을 반환합니다
관련함수 살펴보기

엑셀 INDEX 함수 상세설명

구문

= INDEX ( 배열/범위, 행번호, [열번호], [배열번호] )

인수
 배열/범위  배열형식의 상수/목록 또는 참조할 셀 범위 (참조형의 경우 여러개의 범위를 지정할 수 있습니다.)
 행번호  반활할 값의 행 번호
 열번호  [선택 인수] 반환할 값의 열 번호
 배열번호  [선택 인수] (여러개 범위를 입력했을 시) 값을 반환할 배열의 번호
호환성
 Windows 버전  모든 버전에서 사용 가능합니다.
 Mac 버전  모든 버전에서 사용 가능합니다.
반환값
  • 배열형 : 참조 범위에서 지정한 행/열번호에 위치한 셀의 값을 반환합니다.
  • 참조형 : 지정한 위치의 셀주소(A1, B3, A1:B2, 등)을 반환합니다.

자주묻는 질문

Q. INDEX / MATCH 함수는 어떻게 사용하나요?

INDEX/MATCH 함수를 이용하면 VLOOKUP 함수를 효율적으로 대체할 수 있을뿐만 아니라, 다중조건 VLOOKUP, VLOOKUP 다중값 찾기 등 다양한 방법으로 응용할 수 있습니다. 간단한 INDEX/MATCH 함수의 기초 사용법을 알아보겠습니다.

= INDEX($A1:$D10, 5, 4)
'// A1:D10의 범위에서 5번째 행과 4번째 행에 위치하는 셀의 값을 출력합니다.
'// 예제 파일의 4번째 열에는 가격에 대한 정보가 들어있습니다.

이제 MATCH 함수를 알아봅니다.

= MATCH("오늘의 커피", $C1:$C10)
'// C1:C10 의 범위에서 "오늘의 커피"가 위치한 번호를 반환합니다.

MATCH 함수의 결과값은 INDEX 함수의 행번호로 입력됩니다. 즉, MATCH 함수에 조건(예: "오늘의 커피")을 입력하면, 해당 조건이 몇번째에 위치하는지 반환하게 되고, 그 값이 INDEX 함수의 행번호로 입력됩니다.

=INDEX($A1:$D10, MATCH("오늘의 커피", $C1:$C10), 4)
'// MATCH 함수를 통해 C1:C10에서 "오늘의 커피"가 위치하는 번호를 받아옵니다.
'// 그 값이 INDEX함수의 행번호로 입력되면서, INDEX 함수에서는 "오늘의 커피"가 있는 행의 가격(4번째 열)을 출력하게 됩니다.

따라서 "오늘의커피" 라는 조건이 바뀌면, INDEX함수에 입력되는 행번호가 같이 변하게 됩니다. 이 원리는 아주 기초적인 내용이며, 이외에도 다양한 INDEX/MATCH 응용공식을 활용할 수 있습니다. 

다른 주의사항

엑셀 INDEX 함수는 MATCH 함수와 함께 VLOOKUP 함수를 대체하는MATCH/INDEX 공식, 또는 INDEX 함수 동적범위를 목적으로 주로 사용됩니다. INDEX 함수에는 배열형/참조형이 있지만, 실무에서는 대부분 '배열형' 형식으로 사용합니다.

INDEX 함수 - 배열형

INDEX ( array, row_num, [column_num] )

배열형으로 INDEX 함수를 사용할 경우, 첫번째 인수인 array 는 '배열' 형식으로 입력됩니다. 즉 범위를 입력하더라도 각 셀의 값이 배열로 반환되어 입력됩니다.

  • 배열에 행이나 열이 하나만 있을 경우 row_num 또는 column_num 을 생략 할 수 있습니다.
  • 만약 배열에 행과 열이 두 개 이상 있을시, row_num 또는 column_num 중 하나만 사용하면 배열의 전체 행이나 전체 열을 반환합니다.
  • row_num와 column_num 인수를 모두 사용하면 각 행과 열이 교차하는 셀의 값을 반환합니다.
  • 선택된 배열에서 벗어나는 row_num와 column_num을 입력할 경우 #REF 오류를 반환합니다.
INDEX 함수 - 참조형

=INDEX( array, row_num, [column_num], [area_num] )

참조형으로 INDEX 함수를 사용할 경우, 첫번째 인수인 array는 '참조범위'로 입력됩니다. 즉 각각의 범위가 셀 주소 형식으로 입력됩니다.

  • 참조형 INDEX 함수에서는 여러개의 범위를 묶어서 입력 가능합니다. 예를 들어 =INDEX((A1:B4, A8:C10),3,4,2)로 입력할 경우 [A1:B4]는 첫번째 범위, [A8:C10]은 두번째 범위로 반환됩니다.
  • row_num와 column_num 인수를 모두 사용하면 각 행과 열이 교차하는 셀의 값을 반환합니다.
  • 선택된 배열에서 벗어나는 row_num와 column_num을 입력할 경우 #REF 오류를 반환합니다.
  • 만약 row_num와 column_num가 생략되면, area_num로 지정된 참조범위의 전체영역이 반환됩니다.
  • 참조형 INDEX 함수의 결과값은 다른 수식의 참조범위로 입력될 수 있습니다. 예를 들어 =SUM(INDEX(A1:B4,0,0)) 의 경우 [A1:B4] 범위의 전체 합계를 구합니다.

[링크] MS OFFICE 공식 홈페이지 INDEX 함수 설명

4.9 15 투표
게시글평점
guest
19 댓글
Inline Feedbacks
모든 댓글 보기
최이나
최이나
2019년 12월 27일 2:47 오전
게시글평점 :
     

깔끔하게 정리해주셔서 감사드려요~~^^* 많은 도움되었습니다.

김홍렬
김홍렬
2020년 2월 5일 5:20 오후
게시글평점 :
     

좋은 정보 감사합니다.

하늬돌이
하늬돌이
2020년 2월 12일 1:47 오전
게시글평점 :
     

좋은 자료 감사해요..

늘만나
늘만나
2020년 3월 1일 3:31 오후
게시글평점 :
     

감사합니다

jwshin
jwshin
2020년 3월 20일 3:23 오후
게시글평점 :
     

좋은 자료 감사드립니다.~~

쌍둥아빠
쌍둥아빠
2020년 3월 29일 6:03 오후
게시글평점 :
     

잘 보고 갑니다.

hih****
2020년 4월 25일 2:48 오후
게시글평점 :
     

자료 넘~~~ 감사합니다.

엑셀을잘하고싶다
엑셀을잘하고싶다
2020년 4월 28일 3:28 오후
게시글평점 :
     

깔끔한 설명 덕분에 INDEX 함수에 대한 이해가 잘 되었습니다. 한 가지 질문은 위의 사용 예제중에 "3열(가격)의 합계"에서 수식이 SUM(INDEX(B8:D22,0,3))에서 행번호가 0으로 입력 한다는 것은 지정된 범위의 행 전체를 의미한다고 보면… 더보기 »

욱
2020년 5월 25일 2:11 오후
게시글평점 :
     

good

오빠헬프미
오빠헬프미
2020년 8월 17일 12:40 오후
게시글평점 :
     

ㅠㅠ 사진이 첨부가 안되네요
https://drive.google.com/file/d/1OWH2DMZAY1oQG3kURpSb--W_u-tn8KwN/view
사진 링크입니다. 확인부탁드려요~

오빠헬프미
오빠헬프미
2020년 8월 18일 9:35 오전
답글 남기기  오빠두엑셀

입금총액 아래 수식은 REF 이거 뜨고요,,
그 아래 수식은 합계가 0이 나와요...
제가 원하는 숫자는 3,000,000 이 나와는 건데 말이죠ㅠㅠ

곰돌이
곰돌이
2021년 2월 25일 8:42 오후
게시글평점 :
     

ㄳ합니다

미우빠
미우빠
2021년 6월 25일 4:25 오후
게시글평점 :
     
  • 만약 배열에 행과 열이 두 개 이상 있을시, row_num 또는 column_num 중 하나만 사용하면 배열의 전체 행이나 전체 열을 반환합니다.

이것의 의미를 잘 모르겠습니다
부연설명 부탁드려도 될까요?

둥이들
둥이들
2021년 7월 22일 4:01 오후
게시글평점 :
     

감사합니다.

pyou****
pyou****
2021년 9월 25일 2:02 오전
게시글평점 :
     

좋은 내용 감사해요

공수래
공수래
2021년 11월 27일 10:13 오전
게시글평점 :
     

유용한 정보 감사합니다

19
0
여러분의 생각을 댓글로 남겨주세요.x