VLOOKUP 함수에서 검색유형이 0(false)과 1(true)로 구분되는데
0은 정확히 일치하는 값을 찾을 때 사용하는 걸로 알고 있습니다.
처음 함수 공부할 때 이 부분이 가장 어렵지 싶습니다.
MID함수로 추출한 번호가 모두 참조테이블의 학교코드에 존재하며 일치하므로 0을 사용해야 합니다.
그러나 TRUE(1또는 생략)의 경우 근사치의 개념이 원테이블의 기준값보다 작거나 같은 값 중에서 최대값을 찾게됩니다. 예를 들면 첫번째 인수에 4가 오는 경우 참조테이블에 1,2,3,4,5,6이 있다면 1,2,3,4를 먼저 선택하고 4가 최종적으로 선택되게 되는거죠. 따라서 동일한 값이 존재하는 경우는 TRUE(1또는 생략)를 사용해도 결과는 같습니다.
단 명심해야 할 것은 TRUE(1또는 생략)을 사용하려면 반드시 참조테이블이 오름차순으로 되어 있어야 한다는 거죠. 만약에 아래 오른쪽 테이블의 학교코드가 1,2,→,5,6의 오름차순이 아니라면 TRUE(1또는 생략)를 사용할 수가 없습니다.
그런데 문제가 있습니다.
그런데 아래 문제에서 또다른 문제점이 발생합니다. 문제지를 가지고 있지 않기에 발생하는 문제점을 제 입장에서 말씀 드리겠습니다.
=VLOOKUP(MID(H3,2,1) ,$K$3:$L$8,2,0)--> 저 빨간색 줄이 쳐진 부분은 분명히 문자가 됩니다. 따라서 참조테이블 $K$3:$L$8의 학교코드가 숫자라면 오류가 날건데요... 원테이블과 참조테이블이 서로 다른 문자/숫자 형태가 되면 기준을 찾지 못합니다....
따라서 다음과 같이 바꾸셔야 할거 같습니다.
=VLOOKUP(MID(H3,2,1)*1 ,$K$3:$L$8,2,0)
=VLOOKUP(VALUE(MID(H3,2,1)) ,$K$3:$L$8,2,0)
그래야 찾는 기준이 숫자가 되서 결과가 제대로 나올거 같습니다.
쓸데없는 소리를 쓴건 아닌지 모르겠습니다. ^^*
확실하게 뿌리를 뽑아 버리시기 바랍니다....
[표2]에서 등록번호[H3:H8]와 학교코드표[K3:L8]를 이용하여 출신학교 [I3:I8]를 표시하시오
▸ 학교코드는 등록번호의 왼쪽의 두 번째 문자를 이용하여 계산
▸ MID와 VLOOKUP 함수 사용
그리고 HLOOKUP 함수의 검색유형에 대해서도 설명 좀 부탁드립니다. ^^
첫댓글 저도 그렇게 생각했는데.. ㅋㅋ mid는 문자열 함수라 값이 안나올거라고.. ㅋㅋ 전 군대나 가야죠.. ㅋㅋ 글구 True하고 False의 차이는 윗분말씀처럼 근사값과 정확한 값의 차이입니다. ㅋㅋ
슬레이어초이님 답변 감사합니다. true일때 검색값보다 작거 같은거 것 중에서 최대값을 찾는 거군요!! 그리구 문제에서 어떠한 오류도 없었으니 문제에 나와있던 학교코드가 문자로 되어있는거겠죠!!?? 그리고 mid나 left, right와 같은 함수는 문자만 출력하나요? 만약에 문제에서 숫자로 입력되어 있는 값에서 특정 하나를 출력할때 mid나 left, right를 쓰면 오류가 생기는 건가요 아니면 숫자로 입력되어 있는 것을 mid나 left, right로 원하는 부분을 출력할때 그 출력된 숫자만 문자로 인식하는 건가요?
MID나 LEFT나 RIGHT로 추출되어지는 모든 데이터는 문자처리됩니다. 조심하셔야 합니다. ^^*