블로그
엑셀 VLOOKUP 함수 기본부터 실무 활용까지
Sik Yang · 2026년 1월 13일직원 번호를 입력하면 이름과 부서가 자동으로 나타나고, 제품 코드만 쓰면 가격과 재고가 바로 표시되는 엑셀 시트를 본 적 있으신가요? 이런 조회 작업은 엑셀 VLOOKUP 함수로 처리할 수 있습니다.
하지만 많은 사용자가 범위 설정과 TRUE/FALSE 옵션을 잘못 지정해서 엉뚱한 값을 가져오거나 #N/A 오류를 마주합니다. 이 글에서는 엑셀 VLOOKUP 함수의 기본 구조부터 실무에서 자주 틀리는 설정까지 단계별로 안내합니다.

엑셀 VLOOKUP 함수란?
엑셀 VLOOKUP은 세로 방향 표에서 왼쪽 첫 번째 열을 기준으로 값을 찾고, 같은 행의 다른 열 값을 가져오는 함수입니다.
쉽게 말해 특정 ID, 코드, 이름을 입력하면 거기에 맞는 정보를 자동으로 조회하는 도구입니다. 실무에서는 사번으로 이름과 부서를 찾거나, 상품 코드로 가격과 재고를 불러오는 식으로 자주 사용합니다.
중요한 전제도 있습니다. 찾을 값은 반드시 표 범위의 가장 왼쪽 열에 있어야 하고, 가져올 값은 그 오른쪽 열에 있어야 합니다.
엑셀 VLOOKUP 사용법, 4가지 인수 이해하기
기본 구조는 아래와 같습니다.
=VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)

첫 번째 인수 lookup_value
무엇을 찾을지 정하는 기준값입니다. 예를 들어 사번 1001, 고객 번호 C-023, 상품 코드 P002 같은 값이 여기에 들어갑니다.
두 번째 인수 table_array
어디에서 찾을지 정하는 검색 범위입니다. 이때 기준열, 즉 lookup_value가 들어 있는 열이 범위의 첫 번째 열이어야 합니다.
세 번째 인수 col_index_num
검색 범위에서 몇 번째 열 값을 가져올지 지정하는 숫자입니다. 범위의 첫 번째 열이 1, 그 오른쪽이 2, 3, 4 순서입니다.
네 번째 인수 range_lookup
정확히 같은 값만 찾을지, 비슷한 값도 허용할지를 정하는 옵션입니다.
FALSE또는0: 정확히 일치하는 값만 찾음TRUE또는1: 근사값을 찾음
이 인수를 생략하면 기본값이 TRUE라서 실무에서는 의도와 다른 결과가 나올 수 있습니다. 대부분의 조회 작업에서는 FALSE를 명시하는 편이 안전합니다.
기본 예제로 익히는 VLOOKUP
Employee_List 시트의 A열부터 D열까지 사번, 이름, 부서, 전화번호가 있다고 가정해 보겠습니다. Lookup_Form 시트에서 사번을 입력하면 이름과 부서가 자동으로 나오게 만들 수 있습니다.
이름 가져오기 수식

- Lookup_Form 시트의
A4셀에 사번을 입력합니다. - 이름이 표시될 셀에 아래 수식을 입력합니다.
=VLOOKUP($A$4, Employee_List!$A$2:$D$11, 2, FALSE)
- 여기서
2는 이름이 검색 범위의 두 번째 열에 있기 때문입니다.
부서 가져오기 수식

부서까지 가져오려면 열 번호만 바꾸면 됩니다.
=VLOOKUP($A$4, Employee_List!$A$2:$D$11, 3, FALSE)
여기서 3은 부서가 세 번째 열에 있기 때문입니다. 아래로 복사해 쓸 예정이라면 범위는 절대참조로 고정해 두는 것이 좋습니다.
다른 시트 참조하기
Employee_List!$A$2:$D$11처럼 시트명 뒤에 !를 붙이면 같은 통합 문서 안의 다른 시트 데이터를 조회할 수 있습니다. 이런 방식으로 시트 간 조회 폼을 쉽게 만들 수 있습니다.
실무에서 가장 많이 틀리는 3가지
1. 절대참조를 고정하지 않는 경우
VLOOKUP 수식을 아래로 복사하면 table_array 범위도 함께 밀릴 수 있습니다. 예를 들어 A2:D100이 A3:D101로 바뀌면 마지막 행이 누락될 수 있습니다.
이 문제를 막으려면 아래처럼 범위를 고정해야 합니다.
$A$2:$D$100
2. TRUE와 FALSE를 혼동하는 경우
네 번째 인수를 비워두면 엑셀은 기본적으로 TRUE를 적용합니다. 정확히 일치해야 하는 사번, 상품 코드, 고객 번호 조회에 TRUE가 들어가면 엉뚱한 값이 나올 수 있습니다.
실무에서는 대부분 FALSE를 습관처럼 명시하는 편이 안전합니다.
3. 열 번호를 잘못 지정하는 경우
col_index_num은 시트의 실제 열 문자 기준이 아니라 table_array 내부 기준입니다. 예를 들어 범위가 C:F라면 C=1, D=2, E=3, F=4로 셉니다.
또한 조회값이 첫 번째 열에 실제로 없거나, 범위를 너무 좁게 잡아 새 데이터가 범위 밖에 생기면 #N/A 오류가 날 수 있습니다.
TRUE와 FALSE를 정확히 이해하기

FALSE: 정확히 일치
FALSE는 첫 번째 열에서 lookup_value와 정확히 같은 값을 찾습니다. 없으면 #N/A를 반환합니다. 일반적인 업무용 조회에서는 거의 항상 이 옵션을 사용합니다.
TRUE: 근사값
TRUE는 조회값보다 작거나 같은 값 중 가장 큰 값을 찾습니다. 이때 기준 열은 반드시 오름차순으로 정렬되어 있어야 합니다.
세율 구간표나 점수 구간표처럼 "어느 범위에 속하는가"를 찾을 때 사용합니다.
예를 들어 점수 구간이 0, 60, 70, 80, 90으로 정렬되어 있다면 TRUE를 사용해 점수에 맞는 등급을 자동으로 찾을 수 있습니다.
인수를 생략하면 생기는 문제
많은 사용자가 네 번째 인수를 생략해도 괜찮다고 생각하지만, 이 경우 엑셀이 내부적으로 TRUE를 적용합니다. 정확히 일치해야 하는 조회에서는 반드시 FALSE를 명시해야 합니다.
VLOOKUP의 한계와 대안
왼쪽 값을 가져올 수 없음
VLOOKUP은 기준값이 항상 왼쪽 첫 번째 열에 있어야 합니다. 결과가 왼쪽에 있는 경우에는 사용할 수 없습니다.
이럴 때는 INDEX/MATCH 조합이나 최신 버전의 XLOOKUP을 고려할 수 있습니다.
다중 조건 처리에 약함
VLOOKUP은 기본적으로 하나의 조건만 사용합니다. 이름과 부서를 동시에 기준으로 삼아야 할 때는 보조열을 만들어 고유 키를 생성하거나, INDEX/MATCH 조합을 사용하는 편이 더 낫습니다.
중복값이 있으면 첫 번째 값만 반환
같은 이름이 여러 번 등장해도 VLOOKUP은 위에서부터 첫 번째 값만 가져옵니다. 이런 문제를 줄이려면 사번처럼 고유한 키를 기준으로 조회하는 것이 좋습니다.
자주 묻는 질문
왜 #N/A 오류가 발생하나요?
조회값과 첫 번째 열 값이 정확히 일치하지 않을 때 발생합니다. 앞뒤 공백, 숫자와 텍스트 형식 차이 때문에 자주 생깁니다. TRIM, VALUE, TEXT 같은 함수로 형식을 맞추면 해결되는 경우가 많습니다.
정확히 일치할 때는 TRUE와 FALSE 중 무엇을 써야 하나요?
정확히 일치하는 값을 찾아야 한다면 FALSE를 사용해야 합니다. TRUE는 구간 판단용입니다.
여러 시트에서 VLOOKUP을 쓸 수 있나요?
가능합니다. SheetName!범위 형식으로 시트명을 붙이면 됩니다.
왜 절대참조가 필요한가요?
수식을 복사할 때 검색 범위가 밀리지 않도록 고정하기 위해서입니다. 범위가 바뀌면 엉뚱한 값을 읽거나 오류가 날 수 있습니다.
inline AI로 엑셀 작업을 더 효율적으로

VLOOKUP은 원리만 알면 단순해 보이지만, 실제 시트에서는 범위 고정, 정확히 일치 설정, #N/A 원인 추적처럼 계속 손이 가는 작업이 생깁니다.
inline AI는 이런 반복적인 스프레드시트 작업을 더 빠르게 다룰 수 있도록 돕는 데스크톱 기반 AI 동료입니다. 어떤 수식이 왜 실패하는지, 어떤 기준으로 조회를 짜야 하는지 흐름을 정리하는 데 도움이 됩니다.
모든 작업은 PC에서 로컬로 처리됩니다. 파일 업로드도 필요 없습니다.
내 컴퓨터 안의 AI 동료, inline AI 다운로드하기



