vlookup 함수 | 인수 네 개와 #N/A 해결까지 예시로 정리
vlookup 함수는 표의 맨 왼쪽 열에서 값을 찾아 같은 행의 다른 열 값을 가져오는 엑셀 함수예요.
=VLOOKUP(찾을 값, 표 범위, 열 번호, FALSE) 순서로 쓰고, 정확히 같은 값을 찾을 때는 마지막에 FALSE를 넣습니다.
| 인수 | 뜻 |
|---|---|
| 찾을 값 | 찾으려는 값이나 그 값이 든 셀 (필수) |
| 표 범위 | 찾을 값이 맨 왼쪽 열에 오는 셀 범위 (필수) |
| 열 번호 | 가져올 열이 표 범위의 왼쪽부터 몇 번째인지 (필수) |
| 일치 방식 | FALSE(0)는 정확히 일치, TRUE(1)나 생략은 근사 일치 |
| 쓸 수 있는 버전 | Microsoft 365, Excel 2024·2021·2019·2016 |
확인일 2026-11-06 · 근거: Microsoft Support VLOOKUP 함수 문서 · 정정 요청
vlookup 함수, 번호표로 이름을 찾아주는 함수예요
vlookup 함수는 큰 표에서 하나의 기준값을 찾고, 같은 줄에 있는 다른 칸의 값을 대신 가져와 줘요.
부품 번호로 가격을 찾거나, 직원 번호로 이름을 찾는 일이 대표적입니다.
식당 번호표를 떠올려 보세요. 점원이 '17번 손님'을 부르면 17번 줄에 적힌 이름과 메뉴를 바로 읽어 주죠. vlookup이 하는 일이 같아요. 번호가 찾을 값이고, 번호가 적힌 명단이 표 범위입니다.
엑셀 함수를 처음 배우는 분이라면 엑셀 함수 전체 흐름을 먼저 보고 오면 vlookup 위치가 더 잘 보여요.
합계나 조건 계산은 sumif 함수가 맡고, 값을 찾아오는 일은 vlookup이 맡습니다.
vlookup 함수 사용법, 인수 네 개만 알면 돼요
수식은 =VLOOKUP(찾을 값, 표 범위, 열 번호, 일치 방식) 모양이에요.
앞의 세 개는 꼭 넣어야 하고, 네 번째는 선택이지만 사실상 항상 넣는 게 안전합니다.
찾을 값 정하기찾으려는 값을 직접 쓰거나 그 값이 든 셀을 고릅니다. 글자를 직접 쓸 때는 "장"처럼 따옴표로 감싸야 해요.
표 범위 잡기찾을 값이 들어 있는 열이 범위의 맨 왼쪽이 되게 잡아요. 범위가 B2:D7이면 찾을 값은 B열에 있어야 합니다.
열 번호 세기범위의 맨 왼쪽 열을 1로 놓고 가져올 열이 몇 번째인지 세요. 범위가 B2:D7이고 D열 값을 가져온다면 3입니다.
일치 방식 고르기정확히 같은 값을 찾으려면 FALSE 또는 0을 씁니다. 이 부분은 아래에서 따로 설명할게요.
표 범위의 맨 왼쪽 열이 아니라 중간 열에 찾을 값이 있으면 vlookup은 찾지 못해요. 열 순서를 바꾸거나 다른 함수를 써야 합니다.
예시 1 · 제품코드로 가격을 찾는 정민 씨 (가정)D2:E4에 코드와 가격이 있어요. D2가 A101, E2가 1,200원, D3가 A102, E3가 3,500원, D4가 A103, E4가 800원입니다.
A2에 A102를 적고 =VLOOKUP(A2,$D$2:$E$4,2,FALSE)를 넣으면 D열에서 A102를 찾아 2번째 열인 E열 값, 3,500원이 나와요.
vlookup 함수 FALSE와 TRUE, 정확히 찾느냐 가깝게 찾느냐예요
네 번째 인수는 근사 일치와 정확히 일치 중 어느 쪽으로 찾을지 정해요.
FALSE나 0을 쓰면 첫 번째 열에서 똑같은 값만 찾고, TRUE나 1을 쓰면 가장 가까운 값을 찾습니다.
FALSE (정확히 일치)제품코드·사번값이 정확히 같아야 할 때. 못 찾으면 #N/A가 나와요
TRUE (근사 일치)점수 구간기준값이 오름차순으로 정렬된 구간 조회에 사용해요
FALSE는 '주민번호 앞자리까지 똑같아야 통과', TRUE는 '내 키에 가장 가까운 사이즈 옷을 골라 줘'에 가까워요. 코드나 이름은 FALSE가 맞고, 등급표나 구간표는 TRUE가 맞습니다.
가장 많이 하는 실수는 네 번째 인수를 빼먹는 거예요.
생략하면 TRUE로 동작하는데, 첫 번째 열이 정렬되어 있지 않으면 잘못된 값이 나올 수 있어요. 정확히 찾을 때는 FALSE를 꼭 적으세요.
예시 2 · 점수로 등급을 매기는 하윤 씨 (가정)A열에 기준점수 0, 60, 70, 80, 90이 오름차순으로 있고 B열에 F, D, C, B, A가 있어요.
점수 85를 =VLOOKUP(85,A2:B6,2,TRUE)로 찾으면 85 이하의 가장 큰 값인 80을 잡아 B가 나옵니다. 기준값이 정렬되어 있어야 가능한 방식이에요.
vlookup 함수 #N/A 오류, 이유는 거의 정해져 있어요
#N/A는 찾으라고 한 값을 못 찾았다는 뜻이에요.
정확히 일치(FALSE)에서 값이 표에 없을 때, 근사 일치(TRUE)에서 찾을 값이 첫 열의 최소값보다 작을 때 나옵니다.
값이 분명히 있는데도 나온다면 형식 문제일 가능성이 커요.
찾을 값은 숫자인데 표에서는 텍스트로 저장돼 있거나, 값 앞뒤에 공백이 붙어 있으면 못 찾습니다. 셀 서식을 맞추고 공백이 의심되면 TRIM이나 CLEAN으로 정리해 보세요.
찾을 값이 표에 있는지 보기철자와 띄어쓰기까지 같은지 확인해요.
숫자와 텍스트 맞추기두 열의 셀 서식을 같은 형식으로 통일해요.
공백 지우기TRIM으로 앞뒤 공백을 지운 값으로 다시 찾아 봅니다.
네 번째 인수 확인정확히 찾을 거면 FALSE가 들어 있는지 봐요.
오류 대신 깔끔한 문구를 보이고 싶다면 IFNA로 감싸면 됩니다.
=IFNA(VLOOKUP(A2,$D$2:$E$100,2,FALSE),"찾을 수 없음")으로 쓰면 못 찾은 줄에만 그 문구가 나와요. 조건에 따라 결과를 나누는 엑셀IF함수와 같이 쓰기도 합니다.
vlookup 함수 다른 오류, #REF!와 #VALUE!는 열 번호 탓이에요
열 번호가 표 범위의 열 개수보다 크면 #REF!가 나와요.
열 번호를 1보다 작게 쓰면 #VALUE!가 나옵니다. 범위가 두 열짜리인데 열 번호를 3으로 쓰는 경우가 흔해요.
| 오류 | 흔한 원인 |
|---|---|
| #N/A | 찾을 값이 없음, 형식 불일치, 공백 |
| #REF! | 열 번호가 범위 열 개수보다 큼 |
| #VALUE! | 열 번호가 1보다 작음 |
| #NAME? | 글자를 찾으면서 따옴표를 빠뜨림 |
| #SPILL! | A:A처럼 열 전체를 찾을 값으로 씀 |
마지막 #SPILL!은 =VLOOKUP(A:A,A:C,2,FALSE)처럼 열 전체를 찾을 값에 넣었을 때 생겨요.
=VLOOKUP(A2,A:C,2,FALSE)처럼 한 셀만 가리키면 해결됩니다.
vlookup 함수 복사할 때는 범위를 고정해요
수식을 아래로 쭉 채우면 표 범위도 한 줄씩 같이 내려가서 결과가 틀어져요.
표 범위를 $D$2:$E$100처럼 달러 기호로 고정하는 절대 참조를 쓰면 몇 줄을 채워도 같은 표를 봅니다.
예시 3 · 주문 100건에 단가를 붙이는 지호 씨 (가정)B2에 =VLOOKUP(A2,$D$2:$E$100,2,FALSE)를 넣고 B101까지 끌어 내렸어요.
범위가 고정이라 100건 모두 같은 단가표를 보고, 단가표에 없는 코드만 #N/A로 남아서 빠진 코드를 한눈에 찾을 수 있습니다.
vlookup 함수 한계와 대안, 왼쪽 조회와 중복값이에요
vlookup은 왼쪽에서 오른쪽으로만 찾아서 찾을 열이 반환할 열의 오른쪽에 있으면 쓸 수 없어요.
이럴 때는 index match 함수 조합이 대안이고, 더 새로운 xlookup 함수는 반환 열의 위치와 상관없이 같은 행의 값을 가져옵니다.
| 구분 | VLOOKUP | XLOOKUP | INDEX+MATCH |
|---|---|---|---|
| 조회 방향 | 맨 왼쪽 열에서 오른쪽으로 | 반환 위치와 무관 | 열 위치 제약 없음 |
| 기본 일치 | 생략 시 근사 일치 | 기본이 정확 일치 | MATCH 유형을 직접 지정 |
| Excel 2016·2019 | 사용 가능 | 사용 불가 | 사용 가능 |
xlookup은 Excel 2016과 2019에서는 쓸 수 없어요.
구버전 사용자와 파일을 주고받는다면 vlookup이나 INDEX와 MATCH가 안전합니다.
같은 값이 여러 줄 있으면 vlookup은 위에서부터 처음 만나는 줄 하나만 가져와요.
모든 줄이 필요하면 FILTER 함수나 피벗 테이블을 쓰고, 개수를 세려면 countif 함수 사용법이 도움이 됩니다.
vlookup 함수, 실무에서 이렇게 써요
두 표를 합칠 때 가장 자주 씁니다.
주문표에는 제품코드만 있고 단가표에는 코드와 가격이 있다면, 주문표 옆 칸에 vlookup을 넣어 가격을 불러오는 식이에요.
이름이나 코드의 일부만 아는 경우에는 와일드카드를 쓸 수 있어요.
FALSE일 때는 ?(한 글자)와 *(글자 수 상관없음)를 쓸 수 있고, 진짜 물음표나 별표를 찾을 때는 앞에 ~를 붙입니다.
더 자세한 단계별 설명은 vlookup 사용법과 엑셀VLOOKUP함수 글에서 이어서 볼 수 있어요.
자주 묻는 질문
- vlookup 함수의 네 번째 인수는 꼭 써야 하나요?
- 생략할 수는 있지만 권하지 않아요. 생략하면 TRUE, 즉 근사 일치로 동작해서 제품코드나 사번 같은 값은 엉뚱한 행을 가져올 수 있어요. 정확히 같은 값을 찾을 때는 FALSE를 쓰세요.
- 숫자가 표에 분명히 있는데 #N/A가 나와요.
- 한쪽은 숫자이고 다른 쪽은 텍스트로 저장된 경우가 가장 흔해요. 두 열의 셀 서식을 같게 맞추고, 값 앞뒤에 공백이 없는지 TRIM으로 확인해 보세요.
- 찾는 값이 표 중간 열에 있으면 어떻게 하나요?
- vlookup은 표의 맨 왼쪽 열에서만 찾아요. 찾을 열이 반환할 열의 오른쪽에 있다면 INDEX와 MATCH 조합이나 XLOOKUP을 쓰면 됩니다.
- 같은 값이 여러 번 있으면 어느 행이 나오나요?
- 위에서부터 처음 만나는 행의 값 하나만 가져와요. 모두 필요하면 FILTER 함수나 피벗 테이블을 쓰세요.
- 수식을 아래로 복사하면 결과가 이상해져요.
- 조회 범위가 한 칸씩 밀려서 그래요. 범위를 $D$2:$E$100처럼 절대 참조로 고정하면 아래로 채워도 같은 표를 봅니다.
엑셀 함수, 이어서 익히면 좋은 것들이에요
vlookup을 익혔다면 날짜와 문자를 다루는 함수도 이어서 배워 보세요.
자주 쓰는 표 작업이 훨씬 빨라집니다.