본문 바로가기
IT Share/구글시트, google sheet, 엑셀

응용함수: INDEX + MATCH 함수

by Ujochengwa 2021. 8. 21.
반응형

INDEX + MATCH 함수를 알아봅시다. INDEX 함수나MATCH 함수를 꼭 알고 넘어오셔야 합니다. INDEX 함수나 MATCH 함수는 아주 어렵지 않아요. 다만 개념 중에 주의할 점이 행과 열에 대해 조심하면서 생각을 하시면 될 거 같아요.

 

INDEX함수
MATCH함수

INDEX 함수와 MATCH 함수 링크입니다. 잘 모르신다고 하시면 한 번씩 들어가셔서 이런 거였지 하고 되새김하시고 오셔도 된답니다.

 

INDEX + MATCH 함수는 어떻게 보면 VLOOKUP처럼 족집게 함수로 볼 수도 있습니다. 왜냐하면 MATCH 함수의 좌표를 가지고 원하는 가격을 정확하게 가져오는 함수이기 때문이에요. 그렇다면 VLOOKUP과 뭐가 다를까요?

 

VLOOKUP 함수와 INDEX + MATCH 함수의 차이점
  • 하나의 조건만 가지고 정보를 가져오느냐, 여러 다수의 정보를 따져서 맞는 값을 가져오느냐의 차이라고 볼 수 있답니다.
VLOOKUP 함수

 

INDEX 함수와 + MATCH 함수 예시를 시작해볼게요.

손덕후, 김덕후, 이덕후, 나덕후 이렇게 4명의 덕후들이 있다고 봅시다. 각자 나름의 물류사를 사용하고 제품을 해외로 수출 중입니다. 여기에서 이름과 도착지만을 가지고 매매가격을 알아보고 싶은 상황입니다. 

 

 

 

문제를 해결하기 전에 알아야할 사항
  • 구체적인 함수(은 단위의 함수) 부터 생각을 한다. = MATCH()
  • MATCH()는 행을 잡아주는 역할을 한다.
  • 구체적인 디테일을 잡았으면 큰 함수를 넣는다.  = INDEX()

 

작은 함수를 먼저 살펴보도록 합시다. 함수는 이렇게 나와요 =MATCH(1,(D13=$B$4:$B$10)*(E13=$E$4:$E$10),0)

  • =MATCH( : MATCH 함수를 돌리자
  • 1, : 오름차순으로 찾아보자
  • (D13=$B$4:$B$10) : 조건에 맞는 범위를 정해보자. D13이 이름 범위에서 맞는걸 찾아보자
  • * : 그리고 AND
  • (E13=$E$4:$E$10) : 조건에 맞는 범위를 정해보자. E13이 이름 범위에서 맞는걸 찾아보자
  • ,0) : 내가 찾은 값중 정확한 값을 산출해라 

라는 식이 성립이 된답니다. MATCH함수는 여기서 배열 함수이기 때문에 범위안에서 원하는 값이 아닌 순서의 숫자로 표현이 될거에요. 그리고 그냥 ENTER를 치는게 아니고 CTRL + SHIFT + ENTER로 ARRAY함수(배열함수) 출력하게 만들어줘야 값이 나오게 된답니다.

 

 

ENTER를 칠경우 =(MATCH(1,(D13=$B$4:$B$10)*(E13=$E$4:$E$10),0)) 값은 #VALUE!

CTRL+SHIFT+ENTER 입력 할 경우 =ArrayFormula(MATCH(1,(D13=$B$4:$B$10)*(E13=$E$4:$E$10),0))

 

지금까지 디테일을 잡기 위한 작업이었습니다. 이제부터는 INDEX 함수를 사용해서 그 디테일을 정확하게 좌표로 찍어주는 임무를 수행할 거에요.

INDEX 함수의 조건을 살펴보자면 =INDEX(참조, [행], [열]) 입니다.
아까도 언급했듯이 우리가 방금 봤던 MATCH 함수가 ;수직으로 범위를 정해줬기 때문에행(ROW)에 관련해서 정보를 잡아 준 거랍니다. 그렇다면 참조와 열만 정보를 주면 되는 겁니다.

참조는 범위를 정해주는 거니깐 B4부터 F10까지의 차트범위안에서 구하는 것이므로 B4:F10가 된답니다. 그 범위 안에서 매매가격을 우리는 구하고 싶은 것이기 때문에 B로부터 5번째 열인 F에 속해 있는 부분이기 때문에 5를 입력해 주면 된답니다.

=ArrayFormula(INDEX(    참조      ,MATCH(1,(D13=$B$4:$B$10)*(E13=$E$4:$E$10),0),    ))

=ArrayFormula(INDEX($B$4:$F$10 ,MATCH(1,(D13=$B$4:$B$10)*(E13=$E$4:$E$10),0),     ))

 

 

 

 

반응형

댓글