VLOOKUP은 Vertical Lookup의 약자입니다. 표의 첫 번째 열에서 찾는 값을 검색한 뒤, 같은 행의 지정된 열에 있는 값을 반환합니다. 예를 들어 직원 명단에서 사번을 찾아 해당 직원의 이름이나 부서를 가져올 때 사용합니다.
| 인수 | 설명 | 필수 여부 |
|---|---|---|
lookup_value | 찾으려는 값 (셀 참조 또는 직접 입력) | 필수 |
table_array | 데이터를 검색할 표 범위. 첫 번째 열이 검색 기준이 됨 | 필수 |
col_index_num | 반환할 값이 있는 열 번호 (표 범위에서 1부터 셈) | 필수 |
range_lookup | FALSE(0) = 정확히 일치, TRUE(1) = 근사값 일치. 생략 시 TRUE | 선택 |
아래와 같이 A~C 열에 직원 명단이 있고, E 열에 조회하고 싶은 사번이 있다고 가정합니다.
| A열 (사번) | B열 (이름) | C열 (부서) | E열 (조회 사번) | F열 (결과) | |
|---|---|---|---|---|---|
| 1001 | 김철수 | 인사팀 | 1003 | ← 여기에 수식 | |
| 1002 | 이영희 | 재무팀 | |||
| 1003 | 박민준 | 영업팀 |
E1 — 찾을 사번(1003)A:C — 검색할 표 (A열이 첫 번째 열 = 검색 기준)2 — 반환할 값은 2번째 열(B열, 이름)FALSE — 정확히 일치하는 값만 반환결과: 박민준
수식을 여러 셀에 복사할 때 table_array가 움직이지 않도록 절대참조($)를 사용합니다.
F1 셀의 수식을 F2, F3으로 복사해도 $A$1:$C$100은 고정됩니다. 반면 E1은 E2, E3으로 자동 변경되어 각 사번에 맞는 이름을 찾습니다.
네 번째 인수를 TRUE로 설정하면 찾는 값보다 작거나 같은 가장 큰 값을 기준으로 결과를 반환합니다. 이 특성을 이용해 점수 구간별 등급을 매길 수 있습니다.
| 기준 점수 (H열) | 등급 (I열) |
|---|---|
| 0 | D |
| 60 | C |
| 70 | B |
| 90 | A |
점수가 75점이면 70 이상 90 미만이므로 B가 반환됩니다.
| 오류 | 원인 | 해결법 |
|---|---|---|
#N/A | 찾는 값이 표에 없음 | IFERROR로 감싸거나, 값 확인 후 재입력 |
#REF! | col_index_num이 표 열 수보다 큼 | 열 번호가 table_array 범위 내인지 확인 |
#VALUE! | col_index_num이 0 이하이거나 숫자가 아님 | 1 이상의 정수 입력 |
| 엉뚱한 값 반환 | range_lookup을 생략해 TRUE로 동작 | 마지막 인수에 FALSE 명시 |
| 숫자인데 #N/A | 한쪽은 숫자, 다른 쪽은 텍스트 형식 | VALUE() 또는 TEXT() 함수로 형식 통일 |
찾는 값이 없을 때 오류 대신 "없음"을 표시합니다. 빈칸으로 처리하려면 ""를 사용합니다.
$B$1:$D$100으로 범위를 지정했다면 B열=1, C열=2, D열=3입니다. 워크시트 전체 열 번호(A=1, B=2...)와 다르니 주의하세요.=VLOOKUP(TRIM(E1), ...)처럼 TRIM 함수로 공백을 제거한 뒤 검색하거나, 표 데이터도 TRIM으로 정리하세요.