엑셀 VLOOKUP 함수 사용법, 예제로 5분 만에 이해하기
예전에 회사에서 재고 목록이랑 주문 목록을 나란히 띄워 놓고, 제품 코드를 하나하나 눈으로 대조하던 시절이 있었어요. 100줄쯤 넘어가니까 눈이 빠질 것 같더군요. 그때 옆자리 선배가 지나가면서 "그거 VLOOKUP 쓰면 몇 초면 끝나"라고 했는데, 저는 이름부터 어려워 보여서 지레 겁을 먹었습니다. 그런데 막상 배워 보니 원리가 정말 단순했어요. 이 글에서는 VLOOKUP이 뭘 하는 함수인지부터, 실제로 사번으로 이름을 찾는 예제, 그리고 초보자라면 거의 다 한 번씩 만나는 #N/A 오류까지 차례대로 풀어 보겠습니다.
VLOOKUP은 결국 "표에서 짝 찾아 오기"입니다
VLOOKUP의 V는 Vertical, 그러니까 세로를 뜻합니다. 세로로 정리된 표에서 특정 값을 찾은 다음, 그 값과 같은 행에 있는 다른 정보를 끌어오는 함수예요. 말로 풀면 "이 사번을 가진 사람 이름이 뭐지?" 하고 표를 대신 뒤져 주는 겁니다. 사람이 하면 눈으로 위아래를 훑어야 하지만, VLOOKUP은 그 일을 한 번에 처리해요.
기본 구조는 이렇게 생겼습니다.
인수가 네 개라 처음엔 많아 보이는데, 하나씩 뜯어 보면 하나도 안 어렵습니다.
- 찾을값: 내가 기준으로 삼는 값입니다. 아래 예제에서는 사번이 여기에 들어갑니다.
- 범위: 찾을값과 가져올 값이 모두 담겨 있는 표 영역입니다. 중요한 규칙이 하나 있는데, 찾을값은 반드시 이 범위의 맨 왼쪽 열에 있어야 해요.
- 열번호: 범위의 첫 열을 1로 셌을 때, 내가 가져오고 싶은 값이 몇 번째 열에 있는지를 숫자로 적습니다.
- 0: 마지막 인수입니다. 여기 들어가는 0(또는 FALSE)은 "정확히 일치하는 값만 찾아라"라는 뜻입니다.
마지막 인수 0을 꼭 붙이세요
초보자가 가장 많이 빠뜨리는 부분이 바로 이 마지막 0입니다. 여기에 0(FALSE) 대신 1(TRUE)을 넣거나 아예 생략해 버리면, 엑셀은 "정확히 같은 값"이 아니라 "비슷한 값"을 근사치로 찾아 옵니다. 사번이나 이름, 제품 코드처럼 딱 맞아떨어져야 하는 데이터에서는 엉뚱한 결과가 나오기 딱 좋아요. 그래서 저는 아예 조건 따지지 않고 습관적으로 마지막에 0을 붙입니다. 실무에서 마주치는 상황의 열에 아홉은 0이 정답이라고 봐도 됩니다.
왜 굳이 함수까지 써야 할까요
데이터가 스무 줄 정도면 그냥 눈으로 찾는 게 빠를 수도 있어요. 하지만 수백, 수천 줄이 되면 얘기가 달라집니다. 사람 눈으로 대조하면 시간도 오래 걸리고, 무엇보다 중간에 한두 개 틀리는 실수가 반드시 생겨요. VLOOKUP은 원본 표의 값이 바뀌면 결과도 자동으로 따라 바뀐다는 점도 큰 장점입니다. 예를 들어 인사팀에서 직원 명단을 새로 업데이트해도, 수식만 걸어 뒀다면 조회 결과가 알아서 최신 값으로 갱신돼요. 한 번 만들어 두면 계속 우려먹을 수 있다는 게 핵심입니다.
따라 하기: 사번으로 이름 찾기
실제 예제로 가 보겠습니다. 이런 표가 있다고 해 볼게요.
- A열: 사번 (A2부터 A100까지 데이터가 들어 있음)
- B열: 이름
- C열: 부서
그리고 오른쪽 어딘가, 이를테면 E2 셀에 찾고 싶은 사번을 입력해 뒀다고 합시다. 이제 F2 셀에 다음 수식을 넣습니다.
해석하면 이렇습니다. "E2에 적힌 사번을, A2:C100 표의 맨 왼쪽 열(A열)에서 정확히 일치하는 값으로 찾아라. 찾으면 그 행의 2번째 열(B열, 이름)을 가져와라." 열번호를 3으로 바꾸면 이름 대신 부서(C열)가 나옵니다. 이 한 줄이면 사번만 바꿔 넣어도 이름이 즉시 튀어나와요.
범위는 반드시 절대참조로
위 수식에서 범위를 $A$2:$C$100처럼 달러 기호를 붙여 쓴 걸 눈여겨봐 주세요. 이걸 절대참조라고 합니다. 만약 그냥 A2:C100이라고 쓰면, 수식을 아래로 드래그해서 복사할 때 범위가 A3:C101, A4:C102처럼 한 칸씩 밀려 내려갑니다. 그러면 아래쪽 데이터를 찾을 때 표 범위를 벗어나 버려서 오류가 생겨요. 달러 기호를 붙이면 어디로 복사하든 범위가 고정됩니다. 수식을 입력할 때 범위를 드래그한 다음 키보드 F4 키를 한 번 누르면 자동으로 $가 붙으니 이 방법을 추천해요. 저도 처음엔 이걸 몰라서 복사할 때마다 값이 깨져서 한참을 헤맸습니다.
#N/A 오류가 떴다면
VLOOKUP을 쓰다 보면 결과 대신 #N/A라는 오류가 뜨는 경우가 정말 흔합니다. #N/A는 "찾는 값이 없다"는 신호예요. 원인은 대체로 아래 몇 가지 중 하나입니다.
- 찾을값이 범위 맨 왼쪽 열에 없음: VLOOKUP은 무조건 범위의 첫 열에서만 찾습니다. 사번이 A열이 아니라 C열에 있다면 못 찾아요.
- 공백이나 형식 차이: 눈으로는 똑같아 보여도 한쪽 값 뒤에 공백이 붙어 있거나, 한쪽은 숫자이고 다른 쪽은 텍스트로 저장된 숫자면 다른 값으로 봅니다. 이 경우가 은근히 많아요.
- 범위 지정 실수: 표가 A100까지 있는데 범위를 A50까지만 잡았다면, 51번 이후 값은 못 찾습니다.
해결은 이렇게 접근하면 됩니다. 먼저 찾을값이 범위 첫 열에 정말 있는지 확인하고, 양쪽 값의 공백을 TRIM 함수 등으로 정리해 봅니다. 숫자와 텍스트가 섞였다면 형식을 한쪽으로 통일하세요. 그래도 데이터가 없어서 뜨는 #N/A라면, 수식을 =IFERROR(VLOOKUP(E2,$A$2:$C$100,2,0),"조회 안 됨") 처럼 IFERROR로 감싸서 오류 대신 원하는 문구가 나오게 하면 표가 훨씬 깔끔해집니다.
더 편한 XLOOKUP도 있습니다
참고로 마이크로소프트 365와 엑셀 2021 이상에서는 XLOOKUP이라는 상위 함수를 쓸 수 있는데, 열번호를 셀 필요가 없고 왼쪽 값도 찾을 수 있어서 더 편합니다. 다만 구버전 엑셀에서는 지원되지 않으니, 아직은 VLOOKUP을 확실히 익혀 두는 편이 두루 쓰기 좋습니다.
- 구조: =VLOOKUP(찾을값, 범위, 열번호, 0) — 마지막 0은 정확히 일치.
- 찾을값은 반드시 범위의 맨 왼쪽 열에 있어야 함.
- 범위는 $A$2:$C$100 형태의 절대참조(F4)로 고정.
- #N/A는 "값 없음" 신호 — 첫 열 확인, 공백·형식 통일, IFERROR로 마무리.