Menu

엑셀 INDEX 함수 사용법: 행과 열 번호로 값 가져오기

=INDEX(A2:C6,3,2)는 A2:C6의 3행 2열 값을 반환합니다. 목록의 n번째 항목, 행이나 열 전체, MATCH가 찾은 위치의 값을 가져올 때 씁니다.

이 페이지의 모든 시트는 실제로 동작합니다. 숫자나 수식을 바꾸면 다시 계산됩니다.

=INDEX(A2:C6,3,2)는 범위 A2:C6의 3행 2열 값을 반환합니다. 위치는 범위의 왼쪽 위 셀부터 세므로 A2:C6의 3행은 시트의 4행입니다. 3이나 2를 바꾸면서 결과가 옮겨 가는 것을 보세요.

표의 3행 2열
G2
ABCDEFG
1ProductCategoryPriceRowColumnResult
2AppleFruit$1.2032Vegetable
3PearFruit$1.50
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

E2에는 행 번호, F2에는 열 번호가 있습니다. 3행은 Carrot, 2열은 Category이므로 G2에 Vegetable이 나옵니다. F2를 1로 바꾸면 상품명이 나오고, E2를 6으로 바꾸면 #REF!가 나옵니다. A2:C6에는 행이 다섯 개뿐이기 때문입니다.

INDEX 구문

=INDEX(array, row_num, [column_num])
  • array: 값을 읽을 범위(또는 배열)입니다.
  • row_num: 그 안의 몇 번째 행인지, 1부터 셉니다. 0을 쓰면 모든 행입니다.
  • column_num: 몇 번째 열인지, 1부터 셉니다. 범위가 열 하나나 행 하나이면 생략할 수 있고, 0을 쓰면 모든 열입니다.

열 하나에서는 숫자 하나면 됩니다. =INDEX(A2:A6,4)는 네 번째 항목인 Bread입니다. 두 번째 형식인 =INDEX((A2:C3,A5:C6),1,1,2)는 여러 범위 중 하나에서 값을 고르는데, 필요한 경우는 드뭅니다.

n번째 항목이나 마지막 항목 가져오기

열 하나에 INDEX를 쓰면 "n번째 항목은 무엇인가"에 답합니다. 채워진 셀을 세는 COUNTA와 함께 쓰면 늘어나는 목록의 마지막 항목을 반환합니다.

n번째 항목과 마지막 항목
D3
ABCD
1ProductItem number2
2AppleNth itemPear
3PearLast itemMilk
4Carrot
5Bread
6Milk
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

D1이 2이므로 D2는 Pear를 반환합니다. COUNTA가 상품 다섯 개를 세므로 D3은 다섯 번째인 Milk를 반환합니다. Milk를 지우면 D3은 Bread를 반환합니다. 실제 파일에서는 새 행이 포함되도록 둘 다 A2:A1000 같은 더 긴 범위를 가리키게 하세요. COUNTA가 이렇게 동작하려면 열 중간에 빈 셀이 없어야 합니다.

0으로 행 전체나 열 전체 반환하기

행 번호의 0은 "모든 행"을 뜻하므로 INDEX(B2:D5,0,2)는 두 번째 열 전체입니다. SUM, AVERAGE, MAX 안에 넣으면 번호로 고른 열의 합계를 냅니다.

한 달의 합계
G2
ABCDEFG
1RegionJanFebMarMonth numberTotal
2North4,2003,9004,800215,200
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

2번 달은 Feb이고, G2는 C2:C5를 더해 15,200을 냅니다. F2를 3으로 바꾸면 3월이 나옵니다. 행 전체도 똑같이 됩니다. =SUM(INDEX(B2:D5,3,0))은 East의 합계입니다. Excel 2021과 Microsoft 365에서는 =INDEX(B2:D5,0,2)만 써도 네 값이 시트 아래로 분산됩니다. 번호 대신 머리글로 열을 고르려면 F2를 MATCH로 바꾸세요. 이것이 INDEX와 MATCH 패턴입니다.

배열이나 분산된 결과에 INDEX 쓰기

INDEX는 시트의 범위뿐 아니라 수식이 반환하는 배열도 읽습니다. 그래서 정렬하거나 걸러내거나 고유 값만 남긴 목록을 먼저 시트에 쓰지 않고도 항목 하나를 골라낼 수 있습니다.

가장 비싼 상품과 가장 싼 상품
E2
ABCDEF
1ProductCategoryPriceMost expensiveBread
2AppleFruit$1.20SecondPear
3PearFruit$1.50CheapestCarrot
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

SORTBY가 다섯 상품을 가격순으로 반환하고, INDEX가 1번 항목(Bread)이나 2번 항목(Pear), 또는 오름차순 정렬에서 1번 항목(Carrot)을 가져옵니다. Milk의 가격을 3으로 바꾸면 Milk가 가장 비싼 상품이 됩니다. 분산된 목록이 이미 시트에, 예를 들어 H2에 있다면 Excel 2021과 Microsoft 365에서는 두 번째 항목을 =INDEX(H2#,2)로 쓸 수 있습니다.

연습: 고른 달의 합계

월별 매출
G2
ABCDEFG
1RegionJanFebMarMonth numberTotal
2North4,2003,9004,8001
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: G2에서 INDEX를 써서 F2에 있는 번호의 달 합계를 반환하세요(1 = Jan, 2 = Feb, 3 = Mar).

자주 묻는 질문

엑셀 INDEX 함수는 무엇을 하나요?

범위 안의 지정한 위치에 있는 값을 반환합니다. =INDEX(A2:C6,3,2)는 A2:C6의 3행 2열 값을 반환합니다. 위치는 시트의 1행이 아니라 범위의 왼쪽 위 셀부터 셉니다.

INDEX로 열의 마지막 값을 가져오려면 어떻게 하나요?

채워진 셀의 개수를 행 번호로 씁니다. =INDEX(B2:B100,COUNTA(B2:B100))은 중간에 빈칸이 없는 열의 마지막 값을 반환합니다. 빈칸이 있으면 =LOOKUP(2,1/(B2:B100<>""),B2:B100)이 비어 있지 않은 마지막 값을 반환합니다.

INDEX가 #REF!를 반환하는 이유는 무엇인가요?

행이나 열 번호가 범위보다 크기 때문입니다. =INDEX(A2:A6,7)은 셀 다섯 개짜리 범위의 일곱 번째 항목을 요청하므로 #REF!를 반환합니다.

INDEX로 열 전체를 반환하려면 어떻게 하나요?

행 번호로 0을 씁니다. =INDEX(B2:D5,0,2)는 두 번째 열 전체를 반환합니다. 합계를 내려면 =SUM(INDEX(B2:D5,0,2))처럼 함수로 감싸거나, Excel 2021과 Microsoft 365에서는 결과가 분산되게 두세요.

Coddy 프로그래밍 언어 일러스트

Coddy로 코딩 배우기

시작하기