LOOKUP() 함수는 뭘까요?
엑셀에서 가장 많이 사용하는 찾기 함수는 VLOOKUP입니다.
LOOKUP 함수는 VLOOKUP / HLOOKUP 사용법과 비슷한 듯 하면서도 다르기 때문에 헷갈립니다.
LOOKUP 함수에서 사용하는 용어부터 짚고 넘어가며 설명하겠습니다.
1. LOOKUP 함수의 인수는 "1차원 범위"
LOOKUP 함수의 인수 사용 팁을 보면 3가지 형태입니다.
1) LOOKUP( lookup_value, lookup_vector)
2) LOOKUP( lookup_value, lookup_vector, result_vector)
3) LOOKUP( lookup_value, array)
"lookup_vector"와 "array" , 이 2개가 어려울 것입니다.
행방향이든, 열방향이든 값이 1차원으로 나열된 집합입니다.
1차원 list(목록) 또는 1차원 범위라고 생각하면 더 쉽습니다.
중괄호 쳐서 { "홍1", "홍2",...,"홍n"} 이렇게 만들어서 함수 인수에 넣으면 array 입니다.
A1:A10 이런 식으로 1차원 범위로 넣으면 vector입니다.
그러니까 둘 다 그냥 "1차원 범위"라고 생각하면 됩니다.
아래 2가지 목록은 둘 다 vector입니다.
가장 단순하게, "홍길동3"을 찾는 LOOKUP 함수를 만든다면, LOOKUP("홍길동3", 범위) 이렇게 됩니다.
이 식은 세로 vector, 가로 vector에 동일하게 사용할 수 있습니다.
인수에서 "범위"만 다르게 잡힐 뿐입니다.
저 셀 범위 대신, array 상수 {"홍길동1","홍길동2","홍길동3","홍길동4","홍길동5","홍길동6"} 를
집어 넣어도 결과는 같습니다.
결론적으로, LOOKUP을 사용할 때, 벡터냐 배열이냐는 신경쓰지 않아도 됩니다.
대부분의 경우, 값이 나열된 셀 범위(영역)을 참조하는 셀참조를 함수인수로 집어넣기 때문에,
벡터냐 배열이냐 구분할 필요가 없습니다.
2. LOOKUP() 함수의 가장 일반적인 사용예
가장 일반적인 사용 방식은 2개의 vector를 인수에 사용하는 방식입니다.
LOOKUP( lookup_value, lookup_vector, result_vector)
lookup_value를 lookup_vector에서 찾아서, 같은 위치에 있는 result_vector의 값을 반환하는 기능이 가장 일반적입니다.
vector에서 원소의 위치를 index라고 하고, 맨 앞 값에 1이 부여되고, 오른쪽으로 1씩 증가합니다.
아래 예제를 보고 특징을 정리하겠습니다.
예에서 LOOKUP 함수를 3개 사용했습니다.
lookup_value는 같고, lookup_vector도 같고, result_vector만 열을 옮겨서 변경하였습니다.
이렇게, 1차원 리스트인 vector 2개를 함수 인수로 사용한다는 점이, VLOOKUP 사용법과 가장 중요한 차이점입니다.
어떻게 보면 lookup이 더 유연한 듯 하지만, 2가지 셀영역을 지정해주어야 한다는 점이 불편합니다.
VLOOKUP에서는 2차원 테이블 영역 1개만 지정하면 되므로 더 단순합니다.
위 사례의 LOOKUP 1) 2) 3) 을 VLOOKUP()으로 표현하면 아래와 같습니다.
인수에 셀 범위가 1가지만 들어가니까 더 단순합니다.
3. LOOKUP 함수의 주의할 특징
(1) lookup_vector와 result_vector 2개를 지정한다
데이터가 아래와 같이 되어 있다고 가정합시다.
lookup_vector ( 성명 )는 세로로 되어 있는데, 다른 데이터는 가로로 되어 있고, 붙어 있지도 않습니다.
각 vector에서, index는 첫번째 원소가 1이고, 그 다음 원소가 2, 이런 식으로 +1 됩니다.
예를 들면, "홍길동3"의 index는 3이고, "홍길동3"으로 가져올 수 있는 값들은
"키" vector, "몸무게"vector, "학년" vector에서 같은 index를 가진 값들만 가져올 수 있습니다.
그래서, LOOKUP 함수로 같은 기능을 만들어보면 아래와 같이 할 수 있습니다.
LOOKUP 함수에서, result_vector를 따로 지정해준다는 특징 때문에 가능한 것입니다.
LOOKUP 함수의 특징을 설명하기 위해서 이런 사례를 든 것이지만, 실무에서는 관련 데이터를 저런 식으로
구성하지 않습니다.
함수들의 기본 기능을 이해하고 LOOKUP, VLOOKUP, HLOOKUP 중에서 골라서 사용하면 됩니다.
(2) lookup_vector는 오름차순으로 정렬되어 있어야 한다.
LOOKUP 함수에 인수로 집어넣을 데이터가 KEY 기준으로 정렬되어 있지 않으면 오작동합니다.
아래에서 "성명" 열의 값들이 정렬되어 있지 않다고 합시다.
"홍길동5"를 lookup_value로 해서 키, 몸무게, 학년의 값을 가져오는 수식을 LOOKUP 함수로 만들면,
엉뚱한 값을 가져옵니다.
아래 결과를 보면, 150, 58, 5가 아니라, 130, 45, 3을 가져왔습니다. 오작동 한 것입니다.
내림차순으로 정렬되어 있어도 오작동 합니다.
이런 주의점 때문에 LOOKUP 함수 보다는 VLOOKUP 함수를 훨씬 자주 사용합니다.
'Skill' 카테고리의 다른 글
COUNT 함수군 (0) | 2023.07.28 |
---|---|
INDEX MATCH : 엑셀 찾아오기 함수 (0) | 2023.07.28 |
XLOOKUP - 찾아오기 종합 함수 (0) | 2023.07.28 |
VLOOKUP, HLOOKUP 조견표에서 값 찾아오기 (0) | 2023.07.04 |
ROW, COLUMN : 순번 매기기 함수 (0) | 2023.07.04 |