행과 열의 순서로 셀 값을 반환하는 INDEX 함수

등록일 : 2026.07.11 (10:22)  / 조회 : 0
이전 강좌 끝에서 언급한 INDEX와 MATCH 함수를 알아보려 합니다. 두 함수는 일반적으로 같이 사용하는 경우가 많습니다. 물론 개별로 사용하는 때도 간혹 있지만, 각 함수의 기능만 보면 "이걸 어디다 사용하지?"라는 궁금증이 생기게 됩니다. 그런 이유로 왜 사용하는지, 어떤 경우에 사용하는지를 이해하려면 반드시 두 함수를 함께 사용하는 방법을 익히시는 것이 좋습니다. 어쨌든 이번 강좌는 두 함수 중 INDEX 함수의 사용법을 소개하겠습니다.




예제부터 확인하겠습니다.

예제 확인

하려는 것은 F2 셀에 부대찌개(E2)의 가격을 반환하는 것입니다. 아래 표가 있으니 너무 간단합니다. 그냥 참조하면 됩니다. 부대찌개에 해당하는 열(E)을 찾고 가격에 해당하는 행(6)을 찾아 클릭하면 끝이죠. 그런데 이 방법 말고도 다른 방법이 있습니다. INDEX 함수를 사용하는 것이죠. "간단하게 참조할 수 있는데 무엇 때문에 함수까지 써야 하지?"라는 물음이 생길 텐데, 일단은 접어두고 INDEX 함수의 기능을 먼저 알아보겠습니다. 이 물음은 MATCH 함수까지 이해하면 자연스럽게 답이 나오게 됩니다.

지금 "부대찌개" 값은 찾은 방법을 다시 정리하면, 열에서 부대찌개에 해당하는 열을 찾고, 행에서 부대찌개 가격에 해당하는 행을 찾는 것이었습니다. 그런데 이걸 열 머리글의 알파벳과 행 머리글의 번호로 찾지 말고, 이번엔 순서로 생각해 보겠습니다. 열로는 5번째, 행으로는 6번째가 되겠죠.

순서로 반환1

위 그림처럼 됩니다. 그런데 여기에는 암묵적인 기준이 있었습니다. 순서를 세기 위한 기준입니다. 워크시트의 좌측 최상단, 즉 A1 셀의 좌측 상단입니다. 기준이 있어야 순서를 셀 수 있으니까요. 그럼, 기준을 바꿔보겠습니다.

순서로 반환2

위 그림처럼 기준점을 변경하면 부대찌개의 가격은 열로는 4번째, 행으로는 3번째가 됩니다. 바로 이 방법이 INDEX 함수로 값을 찾는 방법입니다.

INDEX

선택한 테이블이나 배열의 요소에서 행과 열 번호 인덱스로 요소의 값을 반환합니다.

INDEX(array, row_num, [column_num])
array배열 상수나 셀 범위
row_numarray에서 반환할 요소의 행 순서(array가 하나의 행으로 이루어졌을때 생략)
column_numarray에서 반환할 요소의 열의 순서(array에 하나의 열로 이루어졌을때 생략)

인수 array는 우리말로는 배열이고 값이 나열된 형태를 뜻합니다. 간단하게 설명하면 "{a,b,c,...}"으로 구성된 것을 말합니다. 엑셀은 셀로 구성돼있고 그 셀 값을 배열로 인식하므로 여기서 array는 다시 말해 표의 범위를 사용할 수 있다는 것입니다. 즉 풀어서 설명하면, INDEX 함수는, 범위를 선택하고 그 범위의 좌측 상단을 기준으로 반환하려는 값의 행 순서와 열 순서를 이용해 원하는 위치의 값을 반환하는 기능입니다.


이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.


index 함수1
  1. 작성할 셀(F2)을 클릭하여 선택합니다.
  2. 수식 입력줄에서 INDEX 함수명을 작성합니다. ⇒ =INDEX(
  3. array 인수로 표의 범위를 참조합니다. ⇒ =INDEX(B4:F6
  4. 쉼표로 구분, 참조한 범위의 좌측 상단을 기준으로 row_num(행 순서) "3"을 입력합니다. ⇒ =INDEX(B4:F6,3
  5. 쉼표로 구분, 역시 참조한 범위의 좌측 상단을 기준으로 column_num(열 순서) "4"를 입력하고 엔터(닫힌 괄호 자동 생성 후 셀 완성) ⇒ =INDEX(B4:F6,3,4)

결과, 부대찌개 가격이 F2 셀에 반환됩니다. 참조와 비교하면 다소 귀찮긴 하지만 그다지 어렵진 않습니다.
그런데 지금처럼 반환할 값이 정해져 있다면, 즉 지금처럼 음식의 "가격"으로 반환 값이 정해졌다면, 굳이 표의 전체 범위를 array 인수로 정할 필요가 없습니다. 가격에 해당하는 행만 범위로 정해도 됩니다. 그럼, 범위(array)가 더 단순화 되겠죠. F2 셀을 지우고 다시 INDEX 함수를 사용해 보겠습니다.

index 함수2
  1. 작성할 셀(F2)을 클릭하여 선택합니다.
  2. 수식 입력줄에서 INDEX 함수명을 작성합니다. ⇒ =INDEX(
  3. array 인수로 표의 범위를 참조합니다. ⇒ =INDEX(B6:F6
  4. 쉼표로 구분, 참조한 범위의 좌측 상단을 기준으로 column_num(열 순서) "4"을 입력하고 엔터(닫힌 괄호 자동 생성 후 셀 완성) ⇒ =INDEX(B6:F6,4)
    - 원래 작성할 인수는 row_num(행 순서)입니다. 하지만 array로 선택한 범위에는 행은 하나밖에 없습니다. 즉 작성할 수 있는 값이 "1" 밖에 없는 것이죠. 이 경우는 row_num을 작성해도 되지만 굳이 작성할 필요가 없습니다. 생략이 가능하기 때문이죠. 다음 작성할 colum_num(열 순서)을 바로 작성하면 됩니다.

결과, 역시 부대찌개 가격이 F2 셀에 잘 반환됩니다. 마찬가지로 만약 array(범위)를 하나의 열로 선택(E4:E6)했다면, colum_num(열 순서) 인수가 필요 없습니다. row_num만 작성하면 되죠. 하지만, 인수 array를 단 하나의 셀(E7)로 선택했다면 row_num, colum_num 모두 생략해도 될 것 같지만, 반드시 두 번째 인수를 작성해야 합니다. 당연히 "1"이 되겠죠. 이때 두번째 인수는 row_num으로 생각해도 좋고, colum_num으로 생각하셔도 좋습니다. 어쨌든 하나는 작성해야 한다는 것입니다.





INDEX 함수의 작성법은 이것으로 이해하셨을 것으로 생각합니다. 그럼, 조금 더 확장해서 생각해 보겠습니다.
위 문제, "음식의 가격을 반환한다"라는 명제에서 INDEX 함수를 사용할 것이라면, 이미 array 인수는 정해집니다. 표에서 가격을 작성한 행이 범위로 확정되죠. 그럼, 문제는 결국 하나로 귀결됩니다. "찾고자 하는 음식이 몇 번째이냐"라는 것이죠. 그것만 알 수 있다면 음식이 무엇이든 가격을 찾는 것은 INDEX 함수가 해결해 줄 것입니다.
그리고 바로 "찾고자 하는 음식이 몇 번째이냐"라는 것을 해결해 주는 함수가 MATCH입니다. 다음 강좌에서 MATCH 함수를 알아보겠습니다.


첨부파일

index.xlsx

(9.2 Kb)save_alt

다음글

윤슬로

22026.07.12
이전글

윤슬로

122026.07.05
코멘트 의견글 입니다. ()

굵게 밑줄 기울임 취소선 글자색 배경색 윗첨자 아래첨자

왼쪽 정렬 가운데 정렬 오른쪽 정렬 양쪽 정렬

배경색 윗첨자 아래첨자 밑줄 기울임 취소선

url og table

html

줄이기 늘리기