▶INDEX 함수란?
INDEX함수는 선택된 범위 내에서 특정 값을 검색합니다.
▶INDEX 함수 구문
=INDEX(array, row_num, [col_num])
- array : 조회할 셀의 범위
- row_num : 조회할 행의 위치
- column_num : [optional] 조회할 열의 위치
위 예제를 보면 태양계의 행성들을 있는 순서대로 나열한 것이다. 여기서 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을 반환한다.
'IT자격증공부방' 카테고리의 다른 글
엑셀 SUM SUMIF SUMPRODUCT?(예제 포함) (0) | 2023.07.04 |
---|---|
엑셀 REPLACE, REPT 함수란?(예제와 함께) (0) | 2023.06.27 |
ROUNDUP, ROUND, TRUNC 함수 (0) | 2023.06.27 |
COUNTA 함수란? (COUNTA, COUNT, COUNTBLANK 함수 차이) (0) | 2023.06.26 |
CHOOSE 함수란? (0) | 2023.06.26 |