데이터 분석, 차트 작성, 전달을 위한 도구를 갖춘 Microsoft 스프레드시트 소프트웨어 제품군입니다.
안녕하세요?
VLOOKUP 함수나 HLOOKUP 함수의 마지막 인수는
데이터 정렬 여부와 관련 있습니다.
정렬되어 있지 않은 데이터에서 정확히 일치하는 값을 찾을 때는 False로 인수를 지정합니다. 이 인수를 지정하지 않았다고 그러나 무조건 오류가 나오는 것은 아닙니다.
정렬된 데이터에서 값을 찾을 때, 는 기본값인 True를 이용하게 됩니다.
도움말에 있듯이
lookup_value를 찾지 못하고 range_lookup이 TRUE이면 lookup_value보다 작은 값 중에서 가장 큰 값이 반환됩니다
range_lookup 인수의 종류가 TRUE냐 FALSE냐에 따라, VLOOKUP함수나 HLOOKUP함수는 탐색 방법을 달리하게 됩니다. TRUE의 경우는 이진 탐색, FASLE는 순차 탐색을 하게 됩니다. 이진 탐색은 전화번호부나 사전을 검색하는 것과 유사합니다. 수 많은 데이터 가운데 원하는 정보를 빠르게 찾을 수 있도록 전화번호부나 사전은 데이터를 일정한 순서에 따라 배열하고, 사용자는 그 배열의 순서에 따라 정보를 빠르게 찾게 됩니다. 이런 탐색 방법을 이진 탐색이라고 부릅니다. 순차 탐색은 말 그대로 데이터를 처음부터 끝가지 차례대로 찾는 방법을 사용하게 됩니다. 따라서 순차 탐색은 이진 탐색에 비해 그 처리 속도가 매우 느립니다. 처리해야 할 데이터의 양이 많거나 구간값을 가지는 경우라면 데이터를 정렬한 뒤 이진 탐색을 하도록 마지막 인수를 생략하거나 TRUE로 전달해야 합니다.(False값은 0값과 같은 값으로 처리하고, False가 아닌 값이 True이므로 0이 아닌 다른 값들은 모두 True로 처리됩니다. 즉 1값이 아니라 1240928과 같은 숫자도 모두 TRUE로 처리됩니다)
false를 쓰지 않으면 오류값이 도출되는 데이터였습니다. 근데 true로 간주했다면 오류값을 출력해내는게 맞는거 아닌가요?
라고 하셨지만, 이 경우에도 탐색 결과 값을 찾을 수 있는 경우라면 당연히 결과값을 반환합니다.
그럼...행운이 있으시길...!