자동화/업무

EXCEL - 검색함수에서 한글 쓸때. LOOKUP(), VLOOKUP(), HLOOKUP()

(주)CKBcorp., 2013. 4. 9. 09:58
반응형


어제 이거때문에 두세시간 삽질을 했는데, 그때문에 적는다.


일단, LOOKUP 계열 함수는  http://support.microsoft.com/kb/181213/ko 에 설명되어 있다.

모르는 사람들을 위해 간단히 설명하자면, LOOKUP 계열 함수는 말그대로 검색 함수다. 예를들어


A1   |   B1    |    C1

----+-------+-------

aaa | 가가가 | aaa

bbb | 다다다 

ccc | 나나나 


이런 엑셀 표가 있을 때, 

'aaa' 를 입력하면 '가가가' 가 나오게 하는 함수( 물론 반대로도 쓴다. )


근데 문제는, 이 '검색' 이...영문 검색과 한글 검색의 결과가 다르다는 거다.


LOOKUP(), VLOOKUP(), HLOOKUP() 함수는 모두, "추측" 기능이 있다. ( "유사검색" 이라고 해야하나? )

예를들면 VLOOKUP() 함수는 


VLOOKUP( lookup_value, table_array, col_index_num, range_lookup )


이렇게 쓴다. 예를들어 셀에 VLOOKUP( C1, A1:B1, 2 ) 이라고 쓰면, 그 셀에는 '가가가' 라는 값이 찍히는 식 ( 즉, VLOOKUP( C1, A1:B1, 2 ) = '가가가' ).


그런데, 저거 사실 '유사 검색' 이라서, 만약 C1셀의 값이 'aaa' 가 아니라 'aa' 라고 해도, 문제없이 '가가가' 가 찍힌다. 즉, 꼭 딱 맞지 않아도, 비슷한거 찾는다.



근데, 씨바, 한글 입력일땐 저거 믿으면 안됨.


A1      |   B1  |    C1

------+-----+-------

가가가 | aaa | 가가가

나나나 | bbb 

다다다 | ccc 


이렇게 되어 있다면, VLOOKUP( C1, A1:B1, 2 ) = "aaa" 를 기대할 거 아닌가?

근데, 그게, 꼭 그렇지가 않다니깐?


자세한 건 프로그램적인 설명이 되어 버려서 길어지고, 포인트는


"한글일 땐 유사검색 믿으면 안됨." 임.


그래서, 저걸 원래 기대한 대로 나오게 하려면, VLOOKUP( C1, A1:B1, 2, FALSE ) 와 같이, "나는 유사검색을 사용하지 않고 반드시 100% 일치하는 값을 검색하겠다" 라는 의미의 FALSE 옵션을 줘야됨.


이 글을 보시는 분들은 나의 삽질을 사뿐이 즈려밟고 가시길.




 


반응형