
VLOOKUP 함수 완벽 가이드(정확·근사·오류 해결·실무 예제)
VLOOKUP 함수는 표에서 값을 세로 방향으로 찾아 원하는 정보를 즉시 가져올 수 있는 엑셀의 대표 조회 함수입니다. 이 글은 VLOOKUP 함수의 기본부터 근사일치의 성능 이점, 잦은 오류 해결, 그리고 INDEX/MATCH·XLOOKUP 대안까지 한 번에 정리했습니다.
먼저, 다중조건이 필요하면 여기서 이어서 보세요: 다중 조건 VLOOKUP 바로가기
Quick Fix: 3분 완성 VLOOKUP(정확일치)
- 표 범위 설정: A1:D100 같은 table_array를 명확히 선택(검색키는 첫 번째 열).
- 조회값 입력: 예: F2에 직원ID 입력.
- 공식 입력:
=VLOOKUP(F2, $A$2:$D$100, 3, FALSE) - 절대참조 고정:
$로 범위를 고정 후 복사. - 오류 시: 조회키 형식(숫자↔텍스트) 점검 → 데이터 > 텍스트 나누기로 정리.
VLOOKUP 기본 문법과 원리
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
- lookup_value: 찾을 값
- table_array: 첫 열이 조회키인 표 범위(왼쪽 첫 열이 키)
- col_index_num: 반환할 열 번호(왼쪽부터 1, 2, 3…)
- range_lookup: FALSE=정확일치, TRUE=근사일치
정확(FALSE) vs 근사(TRUE)
- FALSE: 정렬 불필요, 선형검색(대용량 느림)
- TRUE: 오름차순 정렬 필요, 이진 탐색으로 빠름
실무 예제: 재현 가능한 샘플
예제 1) 직원ID로 부서명(정확일치)
| EmpID | Name | Dept |
|---|---|---|
| 1001 | J.Kim | Sales |
| 1002 | A.Lee | HR |
| 1003 | M.Park | Finance |
| 1004 | S.Choi | Sales |
| 1005 | E.Han | IT |
| 1006 | R.Lim | IT |
=VLOOKUP(F2, $A$2:$C$8, 3, FALSE) → F2=1005라면 IT
예제 2) 부품코드로 가격(근사일치 가속)
=VLOOKUP(H2, $B$2:$C$1000, 2, TRUE) (코드 열 오름차순 정렬 필수)
예제 3) 두 방향 조회(VLOOKUP+MATCH)
=VLOOKUP(H4, $B$5:$E$16, MATCH(H5, $B$4:$E$4, 0), 0)
예제 4) 와일드카드 조회
=VLOOKUP("JK*", $A$2:$C$8, 2, FALSE)
자주 발생하는 오류 & 해결
| 증상 | 원인 | 해결 |
|---|---|---|
| #N/A | 값 없음, 형식 불일치 | 형식 통일, 텍스트 나누기, TRIM/VALUE |
| #REF! | col_index_num 범위 초과 | 열 번호 범위 내로 수정 |
| #VALUE! | 인수 형식 오류 | 정수/범위 참조 점검 |
| 잘못된 값(근사) | 정렬 미흡 | 오름차순 정렬 유지 |
한계와 대안: 왼쪽 조회/마지막 값/성능
왼쪽 조회
VLOOKUP은 반환 열이 오른쪽에 있어야 합니다. INDEX/MATCH 또는 XLOOKUP을 사용하세요.
=XLOOKUP(H2, C:C, B:B, "없음")
마지막 매칭
=INDEX($B$1:$B$20, MAX(IF($A$1:$A$20=H2, ROW($A$1:$A$20)-ROW($A$1)+1)))
성능 최적화
- 정확일치(FALSE)는 선형검색 → 대용량 느림
- 근사일치(TRUE)는 정렬+이진 탐색 → 대용량 빠름
- XLOOKUP/XMATCH는 검색/정렬 모드 제어가 유연
체크리스트 & 주의사항
- 키는 표의 첫 열
- 정확일치에서 와일드카드 사용 가능
- 근사일치는 정렬 필수
- 열 번호 범위 초과 금지
- 왼쪽/마지막 조회는 INDEX/MATCH 또는 XLOOKUP
관련 글
본 글 일부 정의와 문법은 Microsoft/Exceljet 레퍼런스를 참고했습니다.
외부 참고: Microsoft VLOOKUP, Exceljet VLOOKUP