본문 바로가기

IT자격증공부방

엑셀 INDEX, MATCH 함수란?(예제와 함께)

엑셀 INDEX, MATCH 함수란?

▶INDEX  함수란?

INDEX함수는 선택된 범위 내에서 특정 값을 검색합니다.

 

▶INDEX  함수 구문

=INDEX(array, row_num, [col_num])

- array : 조회할 셀의 범위

- row_num : 조회할 행의 위치

- column_num : [optional] 조회할 열의 위치

 

index

위 예제를 보면 태양계의 행성들을 있는 순서대로 나열한 것이다. 여기서 4번째에 있는 행성이 무엇인지 INDEX 함수를 이용해서 구해보면 =INDEX(B3:B11, 4)의 수식을 이용하여 네번째 행성은 '화성'이라는 사실을 검색/조회 할 수 있다.

위 예제에서 화성의 지름을 구하려면 =INDEX(B3:D11,4,2)와 같이 4번째 행의 2번째 열의 값을 조회 할 수 있다.

 

▶MATCH  함수란?

Excel의 MATCH 함수는 셀 범위에서 지정된 값을 검색하고 해당 값의 상대 위치를 반환합니다.

 

▶MATCH  함수 구문

=MATCH(look_up_value, lookup_array, [match_type])

- lookup_value : 검색하고자 하는 값

- lookup_array : 검색할 셀의 범위

- match_type : [optional] 검색타입(1=보다 작음(default), 0=정확히 일치, -1=보다 큼)

위 예제에서 과일 리스트가 B열에 주어졌고, '복승아'의 위치를 MATCH 함수를 이용하여 몇번째에 있는지 검색해보자. 이 경우 =MATCH(E2, B3:B9)와 같이 MATCH 함수에 검색할 값과 검색할 위치를 주고 복숭아가 3번째 있다는 것을 구할 수 있다.

 

※엑셀 INDEX 함수 째 인자값을 입력하지 않으면 자동으로 1로 입력된 것으로 취급한다. 하지만 1은 '보다 작음'이기 때문이 정확한 검색을 하지 않고 엉뚱한 값을 반환하는 결과를 가져올 수 있다. 그래서 보통 INDEX 함수를 '정확히 일치'하는 검색용으로 사용할 때 반드시 마지막에 0을 꼭 붙이는 습관을 들이는게 좋다.

 

▶예제1

셀범위 [A1:C4]에 대한 각 보기의 수식을 실행하였을 때 다음 중 결과 값이 다른 것은?

  A B C
1 바나나 33 2500
2 오렌지 25 1500
3 사과 41 1200
4 40 2300

① =INDEX(A1:C4, MATCH("배", A1:A4, 0), 1)

② =INDEX(A1:C4, 4, 2)

③ =INDEX(A1:C4, MATCH(2300, C1:C4, 0), 2)

④ =INDEX(B3:C4, 2, 1)

 

▶해설

① MATCH("배", A1:A4, 0) : [A1:A4] 영역에서 '배'가 입력돤 셀의 상대위치를 계산한다. (4)

    =INDEX(A1:C4, MATCH("배", A1:A4, 0), 1) →  =INDEX(A1:C4, 4, 1) : [A1:C4] 영역에서 4행 1열, 즉 [A4] 셀에 입력된 값이 '배'를 표시한다.

② =INDEX(A1:C4, 4, 2) : [A1:C4] 영역에서 4행 2열, 즉 [B4] 셀에 입력된 값인 '40'을 출력합니다.

③ MATCH(2300, C1:C4, 0) : [C1:C4] 영역에서 '2300'이 입력된 셀의 상대위치를 계산한다. (4)

    =INDEX(A1:C4, MATCH(2300, C1:C4, 0), 2) →  =INDEX(A1:C4, 4, 2) : [A1:C4] 영역에서 4행 2열, 즉 [B4] 셀에 입력된 값인 '40'을 출력한다.

④ =INDEX(B3:C4, 2, 1) : [B3:C4] 영역에서 2행 1열. 즉 [B4] 셀에 입력된 값인 '40'을 출력한다.

 

▶예제2

아래 워크시트에서 단가표[A10:D13]를 이용하여 단가[C2:C7]를 배열수식으로 계산하고자 한다. 다음 중 [C2] 셀에 입력된 수식으로 옳은 것은?

① ={INDEX($B$12:$D$13, MATCH(A2, $A$12:$A$13, 0), MATCH(B2, $B$10:$D$10,1))}

② ={INDEX($B$12:$D$13, MATCH(A2, $A$12:$A$13, 1), MATCH(B2, $B$10:$D$10,0))}

③ ={INDEX(MATCH(A2, $A$12:$A$13, 0), MATCH(B2, $B$10:$D$10,1), $B$12:$D$13)}

② ={INDEX(MATCH(A2, $A$12:$A$13, 1), MATCH(B2, $B$10:$D$10,0), $B$12:$D$13)}

 

 

▶해설

① MATCH(A2, $A$12:$A$13, 0) : [A12:A13] 영역에서 [A2] 셀, 즉 '허브차'와 동일한 값을 찾은 후 상대 위치를 표시하면 결과는 1이다.

     MATCH(B2, $B$10:$D$10,1) : [B10, D10] 영역에서 [B2] 셀, 즉 35보다 작거나 같은 값 중에서 가장 근접한 값(30)을 찾은 후 상대 위치를 표시하면 결과값은 2이다.

    ={INDEX($B$12:$D$13, MATCH(A2, $A$12:$A$13, 0), MATCH(B2, $B$10:$D$10,1))} → ={INDEX($B$12:$D$13, 1, 2)} : [B12:D13] 영역에서 1행 2열 즉 [C12] 셀의 값 2500을 반환한다.

always with u wherever u need