엑셀관련/함수사용

[엑셀/EXCEL]VLOOKUP의 고급 버전, INDEX(MATCH)

22rodnjf 2021. 4. 30. 00:13

studiolettuce.tistory.com/28

 

[엑셀/EXCEL]원하는 값을 추출하는 함수 VLOOKUP

엑셀을 쓴다는 것은 일반적으로 어떤 의미일까요. 엑셀의 데이터 구조는 행과 열로 이루어진 셀틱으로 되어 있습니다. 그만큼 행과 열로 데이터를 누적하기 좋은 형식입니다. 행과 열로 데이터

studiolettuce.tistory.com

일전에 설명드렸던 VLOOKUP은 여러모로 쓰일 수 있는 함수입니다.

유사한 함수로는 HLOOKUP도 있고, 최근 버전의 엑셀에서만 사용되는 XLOOKUP도 있습니다.

하지만 그것보다 더 많이 쓰이는, 그리고 잘 쓰면 더 효율적인 INDEX와 MATCH의 혼합형 함수가 있습니다.

VLOOKUP과의 차이점과 어떤 부분이 효율적인지 그리고 왜 좋은지 설명드리도록 하겠습니다.


INDEX와 MATCH 두 가지 함수에 대한 이해가 선행되어야 이후 나오는 내용에 대해서 이해가 되실 겁니다.

 

간단한 게 두 함수를 설명하자면 INDEX는 지정된 범위 내에서 주소 값에 따른 값을 반환하는 함수입니다.

말로만 설명하기엔 어려운 부분이 있으니 예를 보면서 설명드리겠습니다.

함수의 구조는 아래와 같습니다.

구조적인 부분 보다도 아래의 구성을 보시는 것이 더 잘 이해가 되실 겁니다.

이 함수를 실행하면 이렇게 나오게 됩니다.

결과적으로 INDEX 함수는 지정한 범위 안에서 ROW_NUM과 COLUMN_NUM을 넣음으로써 그 주소의 값을 추출하게 됩니다.


그렇다면 MATCH는 어떤 함수일까요.

MATCH를 간단히 설명하자면 원하는 값의 위치를 반환하는 함수입니다.

구조를 잘 보시면 VLOOKUP과 유사하다는 것을 아실 수 있으실 겁니다.

실제로 VLOOKUP과 다른 점은 몇 번째 위치의 값을 가져오는가. 하는 부분밖에 없습니다.

그럼 이 함수를 사용하면 어떻게 되는지 설명드리겠습니다.

이 함수를 실행하면 이렇게 나오게 됩니다.

찾는 값을 넣게 될 경우 MATCH 함수가 그 값의 위치를 반환하게 됩니다.

그럼 이걸 조합하면 드디어 INDEX(MATCH)에 대해서 완전히 사용할 수 있게 됩니다.


두 개를 합쳐서 생각하면 INDEX는 범위 안에서 값을 반환하는 함수,

MATCH는 범위 안에서 위치를 반환하는 함수 그럼 이 두 가지를 합치면 원하는 값을 가져오는 VLOOKUP과 같은 효과를 가져올 수 있습니다.

이 함수를 실행하면 이렇게 됩니다.

함수의 구조만 놓고 보면 VLOOKUP과 똑같은 동작을 하게 됩니다.

다만 같은 효과가 있음에도 되도록이면 INDEX(MATCH)를 쓰는 것이 더 좋다고 설명드리는 이유는 바로 찾는 값의 범위의 차이입니다.

 

보이는 것처럼 INDEX(MATCH)의 경우 지정되는 범위가 값을 찾는 곳, 그 위치를 반환할 곳 2곳을 참조하기 때문에 실제로 연산에 필요한 정보는 매우 적습니다.

만약 이 값을 VLOOKUP으로 찾았다면 B2:F13까지 모든 범위를 지정해놓고 그 안에서 값을 찾기 때문에 시간이 더 길어질 수 있습니다.

 

간단한 함수를 구성하는 거라면 문제가 없지만 10만 줄 이상의 긴 데이터를 관리하게 된다면 최적화가 중요하게 되고 아무래도 더 빠르게 동작할 수 있는 INDEX(MATCH)를 사용하는 것이 중요하게 됩니다.