INDEX 함수 사용하기 – 원하는 셀값을 정확히 뽑아내는 방법

엑셀로 데이터를 다루다 보면 특정 위치에 있는 값을 뽑아내고 싶을 때가 있다. 예를 들어, 어떤 직원의 직급만 골라내거나, 제품 목록에서 세 번째 항목의 가격만 추출하고 싶을 때가 있다. 이런 경우 INDEX 함수 사용으로 수식을 복잡하게 만들지 않고도 정확한 위치의 값을 가져올 수 있다.

INDEX 함수는 단독으로도 유용하지만, MATCH 함수와 함께 사용하면 VLOOKUP보다 훨씬 더 유연하게 데이터를 다룰 수 있다. 특히 왼쪽 방향으로 값을 찾거나, 검색 위치가 변동되는 상황에서는 필수적이다.

이번 글에서는 INDEX 함수의 기본 서식 구성과 사용방법을 알아보자.


INDEX 함수 기본 수식 구성

INDEX 함수는 지정한 범위내에서 특정위치(행과 열)에 있는 값을 뽑아내는 함수로 기본 수식 구성은 다음과 같다.

INDEX 함수 기본 서식 구성

그림을 보면 알 수 있듯이, INDEX 함수는 수식 구성 방식이 두가지다.


INDEX 함수 첫번째 수식 구성 방식

=INDEX(array, row_num, [column_num])
  • array: 값들을 포함한 범위 또는 배열
  • row_num: 몇 번째 행의 값을 가져올지 지정
  • column_num: (선택) 2차원 배열일 경우 몇 번째 열의 값을 가져올지 지정

이 수식 구성이 실무에서 가장 흔하게 사용하는 방식이다. 특정 범위에서 행 번호와 열 번호를 기준으로 값을 반환한다.


기본 인수

첫번째 수식 구성 방식에서 필요한 인수는 범위와 그 범위안에서 원하는 값이 위치하는 행과 열 번호이다.

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


사용 방법은 간단하다. 범위를 지정하고, 지정한 범위 안에서 원하는 값의 위치를 행과 열번호로 입력해주면 된다.

INDEX 함수 기본 사용 설명


위와 같이 입력한 경우 지정한 범위안에서 2번째 행의 3번째 열에 있는 “대리”가 반환되어 수식을 입력했던 셀에 표시되는 걸 확인할 수 있다.

INDEX 함수 사용시 결과값


INDEX 함수 두번째 수식 구성 방식

=INDEX(reference, row_num, [column_num], [area_num])
  • reference: 두 개 이상의 범위를 포함하는 참조 영역
  • row_num: 참조 영역에서 가져올 행 번호
  • column_num (선택): 참조 영역이 2차원일 경우 가져올 열 번호
  • area_num (선택): 참조가 여러 개일 경우, 몇 번째 범위에서 값을 가져올지 지정

두번째 수식 구성 방식은 여러개의 지정범위 중 하나에서 원하는 값을 뽑아낼 때 사용할 수 있다. 즉, 복수영역에서 선택적인 참조 처리가 필요한 동적 구조를 구성할 때 사용할 수 있다.


기본인수

필요로 하는 인수는 총 네가지다. 첫번째는 여러개의 지정범위, 그리고 불러올 값을 행번호와 열번호, 불러올 값이 속한 범위의 순번이다.

=INDEX((범위1, 범위2, 범위3), 행번호, [열번호], [범위의 순번])

reference에 여러 개의 범위를 지정해두고, 그 중에서 특정 영역(area_num)을 골라 행 번호, 열 번호 위치의 값을 반환하는 방식이다.


간단한 예제로 사용방법을 간략하게만 살펴보자.

여러범위에서 원하는 값을 선택해 낼 수도 있다.

위 그림에서와 같이 INDEX 함수의 두번째 수식 구성 방식은 A1:B4 그리고 C1:D4 영역을 각각 범위로 지정하고, 이 중 수식의 가장 끝에 있는 인수 즉, 여기서는 1을 입력하므로써 첫번째 영역인 A1:B4 에서 3번째 행의 2번째 열에 있는 13을 불러오게 된다.


언뜻 보면 다소 번잡하고, 어디에 필요한가 의문이 들 수 있다. 물론 개인적으로도 실무에서 활용해본 경험은 거의 없는 것 같다.

다만, 동적 영역을 참조하거나, 시뮬레이션 및 데이터의 비교 분석에는 유용하게 사용할 수 있다.


자주 하는 실수

  • row_num 또는 column_num 값이 범위를 벗어나면 #REF! 오류가 발생한다.
  • 범위를 지정할 때 헤더 행은 제외해야 정확한 위치 계산이 가능하다.
  • 배열 수식으로 사용할 경우 CTRL + SHIFT + ENTER 입력이 필요했던 버전도 있으므로, 구버전 사용 시 주의해야 한다.


마무리

지금까지 INDEX 함수 사용에 대해 알아보았다. 사실 이렇게만 보면 실무에서 어떤 어떻게 활용할 수 있는 함수인지 의문이 들 수 있다.

개인적으로 실무에서는 MATCH 함수나 CHOOSE 함수등과 조합해 상품별 택배비를 계산할 때 주로 사용했던 기억이 있다.

상품을 발송할 때 택배사와의 계약 조건에 따라 상품의 크기별 중량별 배송비를 책정하려면 IF 함수를 중첩해 사용하는 것보다는 수식을 보다 명확하게 구성할 수 있기 때문이다.

이후 MATCH나 CHOOSE 함수에 대해서도 알아볼 예정이다.

해당 함수들을 조합해 상품 리스트를 작성하기 위한 바탕이 되는 상품 테이블을 구성하기 위해서다.

여기서는 단순하게 개념만 알고 가면 된다. 너무 머리 싸매지 말자.