다음을 통해 공유

hlookup vlookup함수 질문입니다.

익명
2017-04-10T00:50:15+00:00

위에 질문한 두 함수에서 true나 false값을 표현하는 방법이 몇가지 있는걸로 알고있습니다.

true는 생략이나 1이나 true를 쓰고 flase는 0이나 false를 쓰는걸로요.

근데 false를 쓰지않으면 오류가 나는 계산식에서

false를 써야할 곳에 콤마 후 생략을 했도니 오류없이 결과가 나옵니다. hlookup(,,~~,)이런식으로요

콤마 후에 아무것도 쓰지않았는데도 false의 사용으로 볼수있는건가요?

Microsoft 365 및 Office | Excel | 가정용 | Windows

잠긴 질문. 이 질문은 Microsoft 지원 커뮤니티에서 마이그레이션되었습니다. 질문이 도움이 되었는지 여부에 대해 응답할 수는 있지만, 메모나 회신을 추가하거나 질문을 따를 수는 없습니다.

댓글 0개 설명 없음

답변 3개

정렬 기준: 가장 유용함
  1. 익명
    2017-04-10T02:21:58+00:00

    안녕하세요?

    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로 간주했다면 오류값을 출력해내는게 맞는거 아닌가요?

    라고 하셨지만, 이 경우에도 탐색 결과 값을 찾을 수 있는 경우라면 당연히 결과값을 반환합니다.

    그럼...행운이 있으시길...!

    이 대답이 도움이 되었나요?

    1명이 이 답변이 도움이 된다고 생각했습니다.
    댓글 0개 설명 없음
  2. 익명
    2017-04-10T01:46:12+00:00

    false를 쓰지 않으면 오류값이 도출되는 데이터였습니다. 근데 true로 간주했다면 오류값을 출력해내는게 맞는거 아닌가요?

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음
  3. 익명
    2017-04-10T01:23:43+00:00

    안녕하세요?

    함수의 인수는 필수적으로 입력해야 하는 것과 선택적으로 입력해야 하는 두가지 종류의 것이 있습니다. 선택적으로 입력해야 하는 경우는 사용자가 인수를 입력하지 않은 경우, 프로그램에서 정한 기본값이 인수로 전달됩니다.

    질문하신 HLOOKUP은 도움말에 보면, 아래와 같은 4개의 인수가 필요합니다. 앞의 3가지는 필수 요소이므로 사용자가 반드시 입력해야 하지만, 마지막 인수는 선택 요소이므로, 사용자가 입력하지 않으면 도움말에 있는 설명 그대로 '선택 요소입니다. 정확하게 일치하는 값을 찾을 것인지, 근사값을 찾을 것인지를 결정하는 논리값으로서, TRUE이거나 값을 생략하면 근사값이 반환됩니다' 즉 사용자가 입력하지 않은 경우는 TRUE값을 전달한 것과 같습니다.

    따라서

    false를 써야할 곳에 콤마 후 생략을 했도니 오류없이 결과가 나옵니다. hlookup(,,~~,)이런식으로요

    콤마 후에 아무것도 쓰지않았는데도 false의 사용으로 볼수있는건가요?

    라고 하셨는데요, 마지막 인수를 전달하지 않으면 False가 아니라 True를 입력한 것으로 간주됩니다.

    그럼...행운이 있으시길....!

    https://support.office.com/ko-kr/article/HLOOKUP-%ed%95%a8%ec%88%98-a3034eec-b719-4ba3-bb65-e1ad662ed95f?NS=EXCEL&Version=16&SysLcid=1042&UiLcid=1042&AppVer=ZXL160&HelpId=xlmain11.chm60149&ui=ko-KR&rs=ko-KR&ad=KR

    구문

    HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])

    HLOOKUP 함수 구문에는 다음과 같은 인수가 사용됩니다.

    • lookup_value    필수 요소입니다. 표의 첫 행에서 찾을 값입니다. lookup_value는 값, 참조 또는 텍스트 문자열일 수 있습니다.
    • table_array    필수 요소입니다. 데이터를 찾을 정보 표입니다. 범위에 대한 참조나 범위 이름을 사용합니다.
      • table_array의 첫째 행의 값은 텍스트, 숫자 또는 논리값이 될 수 있습니다.
      • range_lookup이 TRUE면 table_array의 첫째 행 값은 반드시 오름차순( ...-2, -1, 0, 1, 2,... , A-Z, FALSE, TRUE)으로 정렬되어 있어야 하고, 그렇지 않으면 정확한 값을 찾을 수 없습니다. range_lookup이 FALSE면 table_array가 정렬되지 않아도 무방합니다.
      • 대/소문자는 구분하지 않습니다.
      • 값이 왼쪽에서 오른쪽으로 오름차순으로 정렬 합니다. 자세한 내용은 범위 또는 표에서 데이터 정렬을참고 합니다.
    • row_index_num    필수 요소입니다. 반환하려는 값이 있는 table_array의 행 번호입니다. row_index_num이 1이면 table_array의 첫 번째 행 값을, 2이면 두 번째 행 값을 반환합니다. row_index_num이 1보다 작으면 #VALUE! 오류 값이 반환되고, row_index_num이 table_array의 행 수보다 크면 #REF! 오류 값이 반환됩니다.
    • range_lookup    선택 요소입니다. 정확하게 일치하는 값을 찾을 것인지, 근사값을 찾을 것인지를 결정하는 논리값으로서, TRUE이거나 값을 생략하면 근사값이 반환됩니다. 즉, 정확하게 일치하는 값이 없으면 lookup_value보다 작은 값 중에서 가장 큰 값을 반환합니다. FALSE이면 정확하게 일치하는 값을 찾고, 해당하는 값을 찾지 못하면 #N/A 오류 값이 반환됩니다.

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음