2021. 10. 9. 17:55ㆍ프로그래밍/EXCEL
안녕하세요? 분석하는 디제이입니다.
오늘은 앞에서 본 INDEX함수와 MATCH함수를 혼합한 INDEX(MATCH())함수에 대해 알아보려고 합니다.
INDEX(MATCH())함수는 INDEX함수 안에 MATCH함수를 넣어서 사용하는 것입니다.
즉, INDEX함수 구문의 행번호, 열번호에 MATCH함수를 사용하는 건데요~
어떤 표에서 찾고자 하는 조건이 2개 이하일 때 유용하게 사용할 수 있는 함수입니다.
구문 : INDEX(표/테이블, MATCH함수, 열번호)
INDEX(표/테이블, 행번호, MATCH함수)
INDEX(표/테이블, MATCH함수, MATCH함수)
INDEX함수와 MATCH함수를 섞어서 사용하는거다보니,
INDEX와 MATCH 함수가 둘 다 어떤건지 아셔야 제대로 사용할 수 있는 함수입니다.
참고로 INDEX함수와 MATCH함수의 구문은 아래와 같구요,
구문 : INDEX( 표/테이블 , 행번호 , 열번호)
구문 : MATCH( 찾고싶은 값, 범위, 옵션)
INDEX와 MATCH함수에 대해 모르시는 분들은 앞의 글을 읽어주세요~
https://whitem00n.tistory.com/66
https://whitem00n.tistory.com/67
자 그럼 본격적으로 INDEX(MATCH())함수에 대해 알아보러 가볼까요???
INDEX(MATCH())함수는 어떤 테이블(표)에서
1. 어떤 행의 조건을 만족하는 값
2. 어떤 열의 조건을 만족하는 값
3. 행과 열의 조건을 만족하는 값
을 찾고 싶을 때 사용하는 함수입니다.
예를들어 보겠습니다.
1. 음식과 가격
위의 표에서 음식을 입력했을 때 가격이 나오게 하고 싶다.
2. 지역과 교통비
위의 표에서 지역을 입력했을 때, 교통비가 나오게 하고싶다.
3. 해당 지역에서 음식을 먹을 때 총비용
위의 표에서 지역과 음식을 입력했을 때 필요한 총비용이 나오게 하고싶다.
즉, 이렇게 조건이 하나만 있는데 한 열에 입력되어 있을 때,
조건이 하나만 있는데 한 행에 입력되어 있을 때,
조건이 두 개가 있는데, 각각 한 행과 한 열에 입력되어 있을 때, 사용하는 함수입니다.
먼저, 조건이 하나만 있는데 한 열에 입력되어 있을 때를 살펴보겠습니다.
왼쪽에 조건이 있고, 오른쪽 파란색 칸에 음식을 넣으면 오른쪽에 가격이 나오게 하고 싶습니다.
이렇게요.
그러면 노란색 칸에다가 함수를 입력해야겠죠??
여기서는 조건이 행마다 다르게 입력되어 있으니, MATCH함수를 INDEX함수의 행번호에 입력해줘야 합니다.
좀 더 말로 풀어보면 우리는 컴퓨터에게 이렇게 말하는거에요. '치킨 가격을 알고 싶어~ 치킨 가격을 알려줘!'
그러면 컴퓨터는
'음... 보자~ 치킨이 표에서 첫번째 줄에 있네? 그러면 첫번째 줄에 있는 가격을 알려주면 되겠군! 2000원이야!'
우리가 '탕수육 가격을 알고싶어! 탕수육 가격 알려줘!'
그러면 컴퓨터는
'음... 보자~ 탕수육은 표에서 3번째 줄에 있네? 그러면 세번째 줄에 있는 가격을 알려주면 되겠다! 4000원이야!'
하고 알려주는 겁니다.
그러니, 위의 표에서 치킨, 피자, 탕수육 등 우리가 찾고 싶은 조건이 서로 다른 행(줄)에 입력되어 있으니
MATCH함수를 INDEX함수의 행번호에 써줘야 한다는 뜻입니다.
그럼 함수의 구문 INDEX(표/테이블, MATCH함수, 열번호)에 맞춰서 한 번 입력해보죠.
INDEX함수의 표/테이블은 우리가 추출하고 싶은 값의 범위를 지정해주면 된다고 했습니다.
우리는 지금 가격을 알고 싶기 때문에 가격의 범위 E10:E14까지를 테이블을 지정해주었습니다.
그리고 G11에 음식을 입력했을 때, 음식이 몇 번째 행에 있는지 표에서 찾고, 거기에 있는 가격을 알고싶기 때문에
MATCH 함수를 INDEX함수의 '행번호' 자리에 입력했습니다.
열번호는 값 테이블이 1개의 열로 이루어져있기 때문에 '1'을 입력해주었구요.
그러면 엑셀은 이렇게 입력한 음식이 표에서 몇 번째 줄에 있는지 찾아서 가격을 알려줍니다.
다음은 조건이 하나만 있는데 한 행에 입력되어 있을 때를 살펴보겠습니다.
원리는 방금 위에서 한거랑 똑같습니다. 단지, 행과 열만 바꿔주면 됩니다.
그럼 함수의 구문 INDEX(표/테이블, 행번호, MATCH함수)이 되겠죠??
파란색 칸에 지역을 넣으면 노란색 칸에 교통비가 나오도록 함수를 입력해보겠습니다.
아래와 같이 입력해주시면 됩니다.
우리가 원하는 교통비는 B4부터 F4까지 한줄로 입력되어 있으니, 이 한 줄을 INDEX함수에서 범위로 지정해주면 됩니다.
INDEX($B$4:$F$4, 이렇게 말이죠.
그리고 테이블에서 행은 1개밖에 없기 때문에 1을 입력해주었고,
우리가 찾고자하는 지역은 B열, C열, D열, ... 이렇게 각각 다른 열에 입력되어 있기 때문에,
MATCH함수를 INDEX함수의 열번호 자리에 써주었습니다.
그러면 결국 우리가 입력한 INDEX(MATCH())함수의 뜻은
C7에 입력된 지역이 표에서 몇 번째 열에 있는지를 찾아서 값을 반환해달라고 요청하는 겁니다.
이렇게 말이죠.
이해가 좀 되시나요???
마지막으로 행과 열에 각각 조건이 있는, 2개의 조건을 만족하는 값을 찾고 싶을 때를 보겠습니다.
구문은 INDEX(표/테이블, MATCH함수, MATCH함수) 입니다.
즉, 우리가 지정하는 표/테이블에서 조건을 만족하는 행과 조건을 만족하는 열의 값을 찾아달라고 하는 거에요.
예를 들어봅시다~ 어떤 지역에 가서 음식을 먹을 때 얼마나 드는지 알고싶다고 해요.
아래에서 파란색 칸에 지역을, 분홍색(?)칸에 음식을 넣으면 가격이 나오게 하는거죠!
컴퓨터한테 요청하면 컴퓨터는 이렇게 받아들이게 됩니다.
예를들어 '서울에 가서 피자를 먹을 때 비용을 알려줘!'라고 한다면
컴퓨터는 '음.... 서울은 표에서 1번째 열에 있고, 피자는 2번째 행에 있으니, 2행1열 값을 알려주면 되겠군!!
8000원이요~'하게 되는 것이죠.
하나 더, '제주에 가서 탕수육을 먹을 때 비용을 알려줘!'라고 한다면
컴퓨터는 '음... 제주는 표에서 5번째 열에 있고, 탕수육은 3번째 행에 있으니 3행5열 값을 알려주면 되겠군,
13000원이요!' 하게 되는 것입니다.
그러면 이제 함수를 어떻게 쓰는지 알아보죠. 맨 처음엔 INDEX함수의 값 범위를 지정해줘야겠죠?? 아래처럼 말입니다.
행번호에 들어가는 MATCH함수는 어떤 조건을 찾아야하는걸까요?? 지역?? 음식??
정답은 음식이죠! 음식이 A열의 각기 다른 행에 입력되어 있으니까요. (A3 치킨 , A4 피자, A5 탕수육 ..)
그러면 행번호에 들어가는 MATCH함수까지 입력하면 아래와 같습니다.
마지막으로 열조건을 찾는 MATCH함수를 아래와같이 입력해주면,
이렇게 지역과 음식에 원하는 값을 입력했을 때 드는 비용이 나오게 됩니다.
이렇게 지금까지 INDEX(MATCH())함수를 사용하는 방법을 알아봤는데요.
도움이 되셨으면 좋겠습니다.
이해가 안되는 부분이 있으면 댓글 달아주시면 제가 최대한 이해하실 수 있게 도와드리겠습니다.
감사합니다.
'프로그래밍 > EXCEL' 카테고리의 다른 글
엑셀 피벗테이블 '데이터 원본 참조가 잘못되었습니다.' 오류 (1) | 2024.09.26 |
---|---|
엑셀 중복 없이 순위 구하기 (4) | 2023.05.08 |
MEDIANIF 함수 (0) | 2021.10.13 |
MATCH 함수 (0) | 2021.08.19 |
INDEX 함수 (0) | 2021.08.05 |