Excel · 조회

엑셀 INDEX

범위에서 행번호와 열번호로 셀 값을 꺼내는 좌표 조회 함수입니다. MATCH와 짝이면 VLOOKUP보다 강력합니다.

INDEX 수식 구조

=INDEX(범위, 행번호, 열번호)

범위 (array)

값을 꺼낼 셀 범위. 1차원(한 줄)·2차원(표) 모두 가능. 다른 시트도 OK.

행번호 (row_num)

범위 안에서 몇 번째 행인지 (1부터 시작). 0이면 해당 열 전체를 배열로 반환.

열번호 (column_num) — 선택

범위 안에서 몇 번째 열인지. 범위가 1차원이면 생략 가능, 2차원이면 필수. 0이면 해당 행 전체.

행번호·열번호는 범위 안에서의 상대 위치. 시트 전체 행 번호가 아닙니다. 범위를 벗어나면 #REF! 오류.

직접 체험해보세요

행번호·열번호 슬라이더를 움직이면 교차점 셀이 강조되고 그 값이 결과로 반환됩니다.

F2=INDEX(A2:D6, 2, 1)
2
1
ABCD
1이름부서직급연봉(만원)
2김철수영업과장5,200
3이영희개발대리4,800
4박민수기획차장6,100
5최유나영업사원3,200
6정한별개발부장7,500

2행 × 1열 교차점 →

이영희

실전 활용 예제

=INDEX(A2:D6, MATCH("이영희", A2:A6, 0), 3)

INDEX + MATCH 콤보. MATCH가 "이영희"의 행번호를 찾아주고 INDEX가 그 행의 3열(직급)을 꺼냅니다. VLOOKUP의 정통 대체.

예시: 이영희의 직급대리
=INDEX(B2:B6, 3)

범위가 1차원(한 열)이면 열번호를 생략할 수 있습니다. B열의 3번째 값을 가져오는 가장 단순한 형태.

예시: 3번째 부서기획
=SUM(INDEX(D2:D6, 0))

행번호 0은 해당 범위의 전체 열을 배열로 반환합니다. SUM·AVERAGE 등 집계 함수와 결합하면 동적 범위 합산 패턴.

예시: 연봉 열 전체 합계배열 → 합계
=SUM(D2:INDEX(D2:D100, COUNTA(D:D)-1))

INDEX로 동적 범위 끝점을 만드는 패턴. D열에 데이터가 늘어나도 자동으로 합계 범위가 확장됩니다.

예시: 자동 확장 범위 합계동적 SUM 패턴
목차
  1. 1.엑셀 INDEX 함수란?
  2. 2.INDEX/MATCH = VLOOKUP 대체 표준
  3. 3.row_num = 0 → 행/열 전체 + 오류
  4. 4.INDEX vs VLOOKUP/XLOOKUP/OFFSET
  5. 5.실전 사용 시나리오 8가지
  6. 6.자주 발생하는 함정 6가지
  7. 7.자주 묻는 질문

엑셀 INDEX 함수란?

엑셀 INDEX 함수는 범위에서 행·열 좌표로 값을 꺼내는 검색·참조 함수입니다. 단독으로도 쓰지만, MATCH와 조합한 INDEX/MATCH 콤보가 VLOOKUP의 한계를 넘는 표준 패턴으로 가장 자주 사용됩니다. 양방향 조회, 왼쪽 열 검색, 동적 범위 정의 등에 강력합니다.

구문은 =INDEX(범위, 행번호, [열번호]) 3인수 (배열형). 참조형에는 area_num이 추가로. row_num·column_num은 1부터 (0은 "전체 행/열" 의미). Excel 2003 이전부터 모든 버전에서 지원.

INDEX/MATCH = VLOOKUP 대체 표준

VLOOKUP (제약):

=VLOOKUP("애플", A:C, 3, FALSE)

→ A열에서 검색 → C열 반환. 검색 열이 첫 열에 있어야 함

INDEX/MATCH (유연):

=INDEX(C:C, MATCH("애플", B:B, 0))

→ B열에서 검색 → C열 반환. 어느 열에서든 검색 가능

양방향 검색·동적 열 선택·왼쪽 검색 모두 가능. VLOOKUP의 한계 우회.

row_num = 0 → 행/열 전체 + 오류

row_num을 0으로 지정하면 열 전체 반환:

=INDEX(A1:C10, 0, 2) → B1:B10 전체 (2번째 열)

=INDEX(A1:C10, 3, 0) → A3:C3 전체 (3번째 행)

SUM·AVERAGE 등 집계와 조합해서 동적 범위:

=SUM(INDEX(A1:C10, 0, MATCH("3월", A1:C1, 0)))

→ 헤더가 "3월"인 열 전체 합계

처리하는 오류 4가지

오류 코드풀이발생 원인
#REF!참조 오류 (Reference)row_num/column_num이 범위 초과
#VALUE!값 유형 오류row_num/column_num이 숫자가 아님
#NAME?이름 오류잘못된 범위명
0빈 셀 반환범위 내 빈 셀 (오류 아님, 주의)

INDEX vs VLOOKUP/XLOOKUP/OFFSET

함수검색 방향동적권장 시점
INDEX/MATCH양방향모든 버전·유연성
VLOOKUP세로 (첫 열만)단순 룩업
XLOOKUP양방향Excel 365·2021+
OFFSET좌표 + 크기동적 범위 (휘발성)

Excel 365 이전은 INDEX/MATCH, 2021+는 XLOOKUP. OFFSET은 휘발성(volatile)이라 큰 시트에서 성능 저하.

실전 사용 시나리오 8가지

  • 좌표 직접 조회 =INDEX(A1:C10, 3, 2) → 3행 2열 = B3
  • INDEX/MATCH 표준 =INDEX(C:C, MATCH("애플", B:B, 0))
  • 양방향 조회 (2차원) =INDEX(B2:D10, MATCH(찾을행, A2:A10, 0), MATCH(찾을열, B1:D1, 0))
  • 동적 열 합계 =SUM(INDEX(A2:E100, 0, MATCH("3월", A1:E1, 0)))
  • 마지막 값 추출 =INDEX(A:A, COUNTA(A:A))
  • N번째 셀 =INDEX(A1:A100, 7) → A7
  • 다중 시트 (area_num) =INDEX((Sheet1!A1:C10, Sheet2!A1:C10), 3, 2, 2)
  • 동적 범위 정의 =SUM(A1:INDEX(A:A, COUNTA(A:A)))

자주 발생하는 함정 6가지

  • row_num/column_num 1부터 — 0은 "전체 행/열". 첫 셀은 1, 1
  • 범위 초과 → #REF! INDEX(A1:C10, 11, 2) → 10행 넘으면 #REF!(참조 오류). MATCH로 동적 검색 시 IFERROR 권장
  • column_num 생략 vs 0 — 1차원 범위는 생략 OK. 2차원 범위는 생략 시 첫 열 또는 #REF! (버전·맥락 따라)
  • INDEX는 비휘발성, OFFSET은 휘발성 — INDEX는 의존성 변경 시만 재계산. OFFSET은 매번 → 성능 저하. 동적 범위는 INDEX 권장
  • MATCH 3번째 인수 0 명시 — 0=정확 일치 (정렬 필요 없음, 가장 안전). 1·-1은 정렬 전제
  • 빈 셀은 0 반환 — 빈 셀 자리는 0 (오류 아님). 텍스트 필요하면 IF + ISBLANK

자주 묻는 질문

Q. INDEX 함수 사용법은?

=INDEX(범위, 행번호, [열번호]) 형식. 예: =INDEX(A1:C10, 3, 2) → 3행 2열 셀 값. row_num·column_num은 1부터.

Q. INDEX/MATCH 콤보가 VLOOKUP보다 좋은가요?

유연성 압승. VLOOKUP은 첫 열에서만 검색·반환 열은 오른쪽만 가능. INDEX/MATCH는 어느 열에서든 검색·왼쪽 열 반환·양방향 조회. =INDEX(C:C, MATCH("애플", B:B, 0))이 표준 패턴.

Q. row_num에 0을 넣으면?

열 전체 반환. =INDEX(A1:C10, 0, 2) → B1:B10. column_num에 0도 마찬가지로 행 전체. SUM·AVERAGE와 조합해서 동적 범위 만들 때 활용.

Q. INDEX와 OFFSET 중 뭐가 좋나요?

INDEX 권장. OFFSET은 휘발성(volatile)이라 시트 어디든 변경되면 매번 재계산 → 큰 시트에서 성능 저하. INDEX는 의존성 변경 시만 재계산.

Q. #REF! 오류는 왜?

row_num이나 column_num이 범위를 초과. INDEX(A1:C10, 11, 2) → 10행을 넘으면 #REF!(참조 오류). MATCH로 검색 시 IFERROR로 감싸기.

Q. INDEX vs XLOOKUP?

Excel 365·2021+이면 XLOOKUP 권장 (가독성 좋음). 구버전 호환이면 INDEX/MATCH. XLOOKUP은 INDEX/MATCH의 모던 대체로 디자인됨.

Q. INDEX로 마지막 값 추출하려면?

=INDEX(A:A, COUNTA(A:A)). COUNTA가 비어있지 않은 셀 수 반환 → 그 번호 행이 마지막. 빈 셀이 중간에 있으면 부정확하므로 LOOKUP(2,1/(A:A<>""),A:A) 같은 패턴도.

Q. 구글 스프레드시트에서도 동일하게 작동하나요?

네. INDEX는 표준 검색·참조 함수로 Google Sheets, LibreOffice Calc, Apple Numbers, 한컴 한셀, WPS에서 동일하게 작동합니다.

본 페이지는 Microsoft Support 공식 INDEX·MATCH·VLOOKUP·OFFSET 문서를 기준으로 작성되었습니다. 정확한 동작은 Excel 버전·환경에 따라 달라질 수 있으니 중요한 작업 전에는 실제 환경에서 확인하세요.