본문 바로가기
오늘하루생활

VLOOKUP vs XLOOKUP: 차이점과 실전 예제로 끝내기

by samipea 2025. 12. 22.

엑셀 실무에서 “조회”는 거의 매일 합니다. 거래처 코드로 회사명 가져오기, 사번으로 부서/직급 가져오기, 상품코드로 단가/재고 가져오기 같은 작업이 전부 조회입니다. 많은 분이 먼저 VLOOKUP을 배우지만, 요즘 엑셀에서는 XLOOKUP이 사실상 표준에 가깝습니다. 다만 회사 환경(엑셀 버전)이나 구글시트 사용 여부에 따라 선택이 달라질 수 있어요. 이번 글에서는 VLOOKUP 및 XLOOKUP의 차이를 확실히 정리하고, 실무에서 가장 많이 터지는 오류(특히 #N/A)까지 예제로 바로 해결할 수 있게 구성했습니다.

1. 조회 함수가 하는 일(한 줄 요약)

“키(검색값)”로 기준표(마스터)에서 값을 찾아, 현재 표에 필요한 정보를 자동으로 채워 넣는 것입니다.

  • 검색값: 예) 상품코드, 사번, 거래처ID
  • 기준표(마스터): 코드에 대응하는 이름/단가/부서가 정리된 표
  • 가져올 값: 예) 상품명, 단가, 담당자

2. VLOOKUP과 XLOOKUP의 핵심 차이 6가지

  1. 조회 방향: VLOOKUP은 “왼쪽에서 오른쪽”만 가능, XLOOKUP은 왼쪽/오른쪽 어디든 가능
  2. 열 번호: VLOOKUP은 “몇 번째 열” 숫자를 써야 해서 열 삽입에 약함, XLOOKUP은 “가져올 범위”를 직접 지정해 열 삽입에 강함
  3. 정확/근사 일치: VLOOKUP은 마지막 인수 TRUE/FALSE로 실수하기 쉽고, XLOOKUP은 기본이 정확 일치라 안전
  4. 없을 때 처리: VLOOKUP은 IFERROR로 감싸야 하고, XLOOKUP은 “없으면 반환값”을 인수로 바로 지정 가능
  5. 검색 모드: XLOOKUP은 앞에서/뒤에서 찾기(마지막 값 찾기)도 가능
  6. 구글시트: 구글시트에는 XLOOKUP이 기본 함수로 제공되지 않는 경우가 많아 VLOOKUP 또는 INDEX+MATCH 조합을 많이 사용

3. VLOOKUP 기본 문법과 실전 예제

문법: =VLOOKUP(검색값, 테이블범위, 열번호, [정확일치])

3-1) 실전 상황 예시

A열에 상품코드가 있고, 마스터 표(예: 시트2)에 상품코드/상품명/단가가 정리되어 있다고 가정해봅시다.

3-2) 상품명 가져오기(정확 일치)

  • 예시 수식: =VLOOKUP(A2,Sheet2!$A$2:$C$1000,2,FALSE)

여기서 FALSE는 “정확히 일치하는 코드만 찾겠다”는 의미입니다. 실무에서 코드 조회는 거의 항상 FALSE가 정답입니다.

3-3) 단가 가져오기

  • =VLOOKUP(A2,Sheet2!$A$2:$C$1000,3,FALSE)

3-4) VLOOKUP의 치명적인 함정 2가지

  • 열번호가 바뀐다: 마스터 표 중간에 열을 삽입하면 “2열이던 상품명”이 “3열”로 밀려 결과가 틀어질 수 있습니다.
  • TRUE/FALSE 실수: 마지막 인수를 생략하거나 TRUE로 쓰면 근사값을 찾다가 엉뚱한 값을 가져올 수 있습니다. 코드 조회는 반드시 FALSE로 고정하세요.

4. XLOOKUP 기본 문법과 실전 예제(엑셀 권장)

문법: =XLOOKUP(검색값, 검색범위, 반환범위, [없을 때], [일치모드], [검색모드])

4-1) 상품명 가져오기(정확 일치 기본)

  • 예시 수식: =XLOOKUP(A2,Sheet2!$A$2:$A$1000,Sheet2!$B$2:$B$1000)

XLOOKUP은 기본이 정확 일치라, VLOOKUP보다 실수 여지가 줄어듭니다.

4-2) “없으면 빈칸” 처리까지 한 번에

  • =XLOOKUP(A2,Sheet2!$A$2:$A$1000,Sheet2!$B$2:$B$1000,"")

이제 #N/A가 뜨는 대신, 코드가 없을 때는 빈칸으로 유지됩니다. 실무에서는 “없으면 확인 필요” 같은 문구로 바꿔도 좋습니다.

4-3) 오른쪽이 아니라 “왼쪽 값”도 가져올 수 있다

VLOOKUP은 왼쪽으로 조회가 불가능하지만, XLOOKUP은 반환 범위를 마음대로 지정할 수 있어 왼쪽 값 가져오기도 가능합니다.

  • 예: B열(상품명)로 A열(상품코드) 찾기
    =XLOOKUP(B2,Sheet2!$B$2:$B$1000,Sheet2!$A$2:$A$1000,"없음")

5. 실무에서 가장 많이 터지는 오류(#N/A) 원인과 해결

5-1) 원인 1) 검색값에 공백/숨은 문자

“코드가 분명 있는데 #N/A”면, 값이 같은 게 아니라 “비슷해 보일 뿐”인 경우가 많습니다. 앞뒤 공백, 복사 과정의 제어문자 때문에 매칭이 실패합니다.

  • 해결: 검색값/마스터값에 TRIM 적용(또는 정리 열을 만들어 정규화)
  • 예시: =XLOOKUP(TRIM(A2),정리된코드범위,반환범위,"")

5-2) 원인 2) 텍스트 숫자 vs 숫자(형식 불일치)

00123 같은 코드는 한쪽은 텍스트, 다른 쪽은 숫자로 저장되어 매칭이 실패할 수 있습니다.

  • 해결: 코드 열의 타입을 통일(텍스트로 고정하거나, 숫자로 변환)
  • : 코드가 앞에 0이 중요하면 텍스트로 관리하는 것이 안전합니다.

5-3) 원인 3) 마스터 표 범위가 누락됨

마스터 데이터가 늘었는데 범위를 $A$2:$C$1000으로 고정해두면, 1001행부터는 검색이 안 됩니다.

  • 해결: 표(Table)로 만들거나(엑셀), 충분히 넉넉한 범위로 잡기
  • 해결(권장): 마스터를 표로 만들면 범위가 자동 확장됩니다.

6. 구글시트에서는 어떻게 해야 하나?

구글시트에서는 기본적으로 VLOOKUP을 많이 쓰고, 더 유연하게 하고 싶으면 INDEX + MATCH 조합을 사용합니다.

6-1) 구글시트 VLOOKUP 예시

  • =VLOOKUP(A2,Sheet2!A:C,2,FALSE)

6-2) INDEX + MATCH(왼쪽 조회/열 삽입에도 강함)

예: A2(검색값)를 마스터의 A열에서 찾아, B열 값을 가져오기

  • =INDEX(Sheet2!B:B, MATCH(A2, Sheet2!A:A, 0))

MATCH의 마지막 인수 0은 “정확 일치”입니다.

7. 실무 선택 가이드: 언제 무엇을 쓰면 좋나?

  • 엑셀 최신 환경이라면: XLOOKUP 우선(가독성/안정성/확장성)
  • 회사가 구버전 엑셀이 섞여 있다면: VLOOKUP 또는 INDEX+MATCH
  • 구글시트 중심이면: VLOOKUP + 필요 시 INDEX+MATCH
  • “열 삽입이 자주 있는 마스터”라면: XLOOKUP 또는 INDEX+MATCH

8. 실무 팁: 조회는 ‘마스터 관리’가 반이다

  • 마스터 표는 중간에 소계/합계/병합 없이 테이블 구조로 유지
  • 키(코드/사번)는 중복이 없도록 관리(중복이면 어떤 값을 가져올지 기준이 필요)
  • 상태/부서 같은 값은 드롭다운으로 표준화(오타 방지)
  • 조회가 많아지면 “원본 데이터”와 “마스터”를 시트로 분리

마무리

VLOOKUP과 XLOOKUP의 결론은 단순합니다. 가능하면 XLOOKUP이 더 안전하고 확장성이 좋습니다. 다만 조직 환경에 따라 VLOOKUP(또는 INDEX+MATCH)을 함께 알아두면 어떤 파일을 받아도 흔들리지 않습니다.