편집팀 · 2026.05.03 · 최종 검토: 2026.09.17
엑셀에서 가장 많이 검색되는 함수가 VLOOKUP입니다.
다른 표에서 특정 값을 찾아오는 함수인데, 처음 보면 어렵게 느껴질 수 있습니다. 실무 예제로 하나씩 정리했습니다.
VLOOKUP 기본 구조
=VLOOKUP(찾을 값, 표 범위, 열 번호, 정확히 일치)
- 찾을 값: 검색할 기준 값
- 표 범위: 데이터가 있는 영역
- 열 번호: 가져올 열 (표 왼쪽부터 1, 2, 3…)
- 정확히 일치: FALSE (정확 일치) 또는 TRUE (근사 일치)
대부분의 경우 마지막을 FALSE로 씁니다.
여기서 두 가지를 먼저 짚고 가야 합니다. 이 두 가지를 모르면 함수는 맞게 썼는데 결과가 안 나옵니다.
- 찾을 값은 표 범위의 맨 왼쪽 열에 있어야 합니다. VLOOKUP은 지정한 범위의 첫 열에서만 값을 찾습니다. 사번으로 이름을 찾으려는데 이름이 사번 왼쪽에 있으면 VLOOKUP으로는 안 됩니다.
- 열 번호는 시트의 열이 아니라 지정한 범위 안에서 셉니다. 범위를 C:F로 잡았다면 C열이 1번, D열이 2번입니다. A부터 세면 틀립니다.
실무 예제
직원 목록에서 이름으로 부서를 찾는 경우:
A열: 이름 (김철수, 이영희, 박민수…)
B열: 부서 (영업팀, 개발팀, 인사팀…)
다른 시트에서 “김철수”의 부서를 찾으려면:
=VLOOKUP(“김철수”, Sheet1!A:B, 2, FALSE)
결과: “영업팀”
실제로는 이름을 직접 적기보다 셀을 가리키는 경우가 많습니다. A2에 이름이 있다면:
=VLOOKUP(A2, Sheet1!$A$2:$B$100, 2, FALSE)
가장 흔한 실수 — 범위에 $를 안 붙이는 것
수식 하나만 쓸 때는 문제가 없습니다. 아래로 끌어 복사할 때 터집니다.
=VLOOKUP(A2, Sheet1!A2:B100, 2, FALSE)를 아래로 복사하면, 표 범위도 같이 내려가면서 A3:B101, A4:B102로 바뀝니다. 찾아야 할 데이터가 범위 밖으로 밀려나면서 아래쪽부터 #N/A가 뜹니다.
표 범위에는 $를 붙여 고정합니다.
=VLOOKUP(A2, Sheet1!$A$2:$B$100, 2, FALSE)
범위를 드래그한 직후 F4를 누르면 $가 한번에 붙습니다. 찾을 값(A2)은 행마다 달라져야 하므로 그대로 둡니다.
두 번째 함정 — 열을 삽입하면 결과가 바뀐다
열 번호를 숫자로 적어 두었기 때문에, 표 중간에 열을 하나 끼워 넣으면 번호가 어긋납니다. 수식에는 여전히 3이 적혀 있는데 가져오려던 항목은 4번으로 밀려난 상태라, 오류도 안 뜨고 조용히 엉뚱한 값이 들어옵니다.
이 점 때문에 실무에서는 XLOOKUP이나 INDEX+MATCH를 권합니다. 둘 다 번호 대신 열 자체를 지정하므로 열이 움직여도 따라갑니다.
자주 발생하는 오류
#N/A 오류: 찾을 값이 표에 없을 때. 오타나 공백이 원인인 경우가 많습니다. TRIM 함수로 공백을 제거해보세요.
#REF! 오류: 열 번호가 표 범위보다 클 때. 표 범위를 넓히거나 열 번호를 확인하세요.
잘못된 결과: 마지막 인수를 TRUE로 했을 때 근사값이 나올 수 있습니다. FALSE로 바꾸세요.
눈으로 보면 같은데 #N/A가 뜰 때
제일 답답한 경우입니다. 양쪽 다 “1001”로 보이는데 못 찾습니다. 원인은 대개 셋 중 하나입니다.
- 숫자와 텍스트가 섞여 있다 — 한쪽은 숫자 1001, 다른 쪽은 텍스트 “1001”이면 엑셀은 다른 값으로 봅니다. 셀 왼쪽 위에 초록색 삼각형이 있거나 값이 왼쪽으로 붙어 있으면 텍스트입니다. 해당 열을 선택하고 데이터 → 텍스트 나누기 → 마침을 누르면 숫자로 바뀝니다.
- 보이지 않는 공백이 있다 — 다른 시스템에서 내려받은 자료에 흔합니다. =TRIM(A2)로 감싸면 앞뒤 공백이 사라집니다.
- 줄바꿈 문자가 섞여 있다 — =CLEAN(A2)로 제거합니다.
#N/A를 빈칸으로 보이게 하기
찾는 값이 없는 것이 정상인 경우도 있습니다. 표에 #N/A가 가득하면 보기도 나쁘고 합계 계산도 막힙니다. IFERROR로 감싸면 됩니다.
=IFERROR(VLOOKUP(A2, Sheet1!$A$2:$B$100, 2, FALSE), “”)
빈칸 대신 “미확인” 같은 표시를 넣어도 됩니다. 다만 진짜 오타 때문에 안 찾아지는 경우까지 가려 버리므로, 수식을 완성하고 검증이 끝난 뒤에 씌우는 순서가 안전합니다.
VLOOKUP 대안 — XLOOKUP
엑셀 365나 최신 버전에서는 XLOOKUP을 쓸 수 있습니다.
=XLOOKUP(찾을 값, 찾을 범위, 결과 범위)
VLOOKUP보다 간단하고, 왼쪽 열도 검색 가능합니다. 엑셀 365 이상이면 XLOOKUP을 추천합니다.
앞의 예제를 XLOOKUP으로 바꾸면 이렇게 됩니다.
=XLOOKUP(A2, Sheet1!$A$2:$A$100, Sheet1!$B$2:$B$100, “없음”)
열 번호를 셀 필요가 없고, 네 번째 인수로 못 찾았을 때 표시할 값까지 바로 지정할 수 있어 IFERROR도 생략됩니다.
다만 XLOOKUP은 엑셀 2019 이하에서는 열리지 않습니다. 파일을 예전 버전 쓰는 사람과 주고받아야 한다면 VLOOKUP이나 INDEX+MATCH를 쓰는 편이 안전합니다.
세부 인수와 버전별 지원 범위는 마이크로소프트의 VLOOKUP 공식 문서에서 확인할 수 있습니다.
자주 묻는 질문
VLOOKUP으로 여러 조건을 검색할 수 있나요?
단일 조건만 가능합니다. 여러 조건이 필요하면 INDEX+MATCH 조합이나 XLOOKUP을 쓰세요.
구글 스프레드시트에서도 VLOOKUP이 되나요?
됩니다. 문법이 동일합니다.
수식을 아래로 복사하면 왜 #N/A가 뜨나요?
표 범위가 같이 내려갔기 때문입니다. 범위를 드래그한 뒤 F4를 눌러 $A$2:$B$100처럼 고정하세요.
HLOOKUP은 뭔가요?
VLOOKUP은 세로(열)로 찾고, HLOOKUP은 가로(행)로 찾습니다. 표가 가로로 되어 있을 때 씁니다.