팁&서식

vba에서 vlookup함수를 사용해 보자..

원장샘 1 704 2018.11.20 14:08

vlookup함수는 값을 기반으로 특정 테이블에서 행을 조회하고 해당 행에 있는 특정 열의 값을 반환하는데 사용됩니다.

"강경수"의 생년을 조회하는 함수식은 아래와 같습니다.

=VLOOKUP("강경수",A2:C12,3,0)


d16068a0e8bed1db6c23408a9b8d117c_1542689770_2439.jpg


vba에서는 아래와 같이 작성할 수 있습니다.


d16068a0e8bed1db6c23408a9b8d117c_1542690305_0824.jpg

VBA에서 Vlookup 함수의 구문은 다음과 같습니다.

​  WorksheetFunctions.Vlookup( Lookup_value, Table_array, Col_index_num, [Range_lookup] )

매개 변수
Lookup_value   :  검색 값 - 제공된 Table_array 매개 변수의 첫 번째 열 내에서 검색되는 값입니다.

table_array       : VBA 범위 변수입니다. 적어도 2 열 이상의 테이블. 첫 번째 열은 조회 열입니다.

Col_index_num : 일치하는 값을 반환 해야하는 Table_array 테이블 VBA 범위의 열 수입니다.

Range_lookup  :선택적 매개 변수입니다. VLookup 메서드에서 완전 일치 또는 근사값 일치를 찾을 지 여부를 지정하는 논리 매개 변수 (True 또는 False)입니다. 참 - 근사 일치, 거짓 - 완전 일치.


​VBA사전 객체를 사용하는 방법 //


Sub dictionary()

' 사전 객체를 이용하는 방법
Dim dict As Object
Dim r
Set dict = CreateObject("Scripting.Dictionary")
For Each r In Range("A:A").SpecialCells(xlCellTypeConstants)
   Call dict.Add(r.Value, r.Offset(0, 2).Value)
Next r
   
'Lookup
Debug.Print dict("강경수")
Debug.Print dict("강경진")
End Sub

사전 객체를 이용하면 ​먼저 모든 행을 반복하고 모든 행의 키 - 값 쌍을 사용하여 VBA 사전 개체를 만듭니다. 사전에는 조회 및 일치하는 열만 포함됩니다. 다음으로 원하는 Key를 찾고 일치하는 Value를 반환합니다.

1. 데이터의 검색 및 추가, 수정, 삭제가 쉽다.
2. 사용법이 간단하다.
3. 모든 데이터형의 사용이 가능(배열,Scripting.Dictionary도 넣어서 사용가)

속성

- Count : 현재 저장된 개체의 갯수를 반환합니다.
- Item("KeyValue") : KeyValue 라는 키를 이용해서 할당되어 있는 값을 반환합니다.
       키에 값이 없을경우 Null 값을 반환합니다.
- Key("ValueData") : ValueData 라는 값을 가지고 있는 키를 반환합니다.
- CompareMode : Dictionary 개체에서 문자열 키를 비교하는 모드를 설정하여 반환합니다.

메서드

- Add Key, Value : 키와 값을 추가합니다. 존재하는 키이면 오류가 발생합니다.
- Remove Key : 지정한 키와 할당되어 있는 키값을 제거합니다. 존재하지 않는 키이면 오류가 발생합니다.
- RemoveAll :  모든 키와 값을 제거합니다.
- Exists(Key) : 지정한 키가 존재하면 True 반환하고, 아니면 False 반환합니다.
- keys : 모든 키들을 배열로 반환합니다.
- Items: 모든 값들을 배열로 반환합니다.


 




Comments

원장샘 03.04 11:09
https://blog.naver.com/rosa0189/221478840633  <=== 추가참고 사이트
Category
State
  • 현재 접속자 3 명
  • 오늘 방문자 11 명
  • 어제 방문자 218 명
  • 최대 방문자 383 명
  • 전체 방문자 275,927 명
  • 전체 게시물 2,543 개
  • 전체 댓글수 105 개
  • 전체 회원수 62 명
Facebook Twitter GooglePlus KakaoStory NaverBand