처음 엑셀을 배울 때 VLOOKUP부터 외웠다. 실무에서도 수년간 잘 썼다. 그런데 어느 날 동료가 XLOOKUP 하나로 내가 중첩 수식으로 겨우 만든 걸 단 한 줄에 끝내는 걸 봤다. 그날 이후로 XLOOKUP으로 완전히 바꿨다.
왜 VLOOKUP보다 XLOOKUP이 나은지, 실무에서 바로 쓸 수 있는 예제와 함께 정리한다. VLOOKUP에 익숙한 사람이라면 이 글 하나로 전환하는 데 충분하다.
VLOOKUP의 불편한 진실 3가지
VLOOKUP을 오래 쓰다 보면 반드시 벽에 부딪히는 순간이 온다.
첫째, 찾을 값이 반드시 왼쪽에 있어야 한다. 예를 들어 C열에 상품코드, A열에 상품명이 있는 구조에서는 VLOOKUP으로 코드→이름 조회가 불가능하다. 열 순서를 바꾸거나 CHOOSE 함수로 억지로 우회해야 한다.
둘째, 열 번호를 직접 입력한다. 중간에 열이 하나 추가되면 번호가 밀려서 엉뚱한 값이 나온다. 이런 오류는 파일을 나눠서 쓸 때 특히 자주 생긴다.
셋째, 마지막 인수 실수. TRUE(근사값)와 FALSE(정확히 일치) 중 FALSE를 빠뜨리면 정렬 상태에 따라 엉뚱한 결과가 나온다. 경험이 쌓여도 이 실수는 반복된다.
XLOOKUP이 이 세 가지를 모두 해결한다
열 번호 없음. 왼쪽 제약 없음. 못 찾을 때 처리 내장.
| 항목 | VLOOKUP | XLOOKUP |
|---|---|---|
| 검색 방향 | 왼→오른쪽만 | 양방향 가능 |
| 열 참조 | 숫자로 지정 | 범위로 직접 지정 |
| 오류 처리 | IFERROR 별도 필요 | 4번째 인수로 내장 |
| 역방향 검색 | 불가 | 6번째 인수로 가능 |
| 열 추가 시 영향 | 열 번호 깨짐 | 자동 유지 |
실무 예제 3가지
① 기본 사용 — 직원 코드로 이름 찾기
B열에 있는 코드를 찾아 A열 이름을 반환한다. XLOOKUP은 검색 범위와 반환 범위를 완전히 분리해서 지정하기 때문에 열 순서에 구애받지 않는다.
② 오류 처리 내장 — 빈칸 대신 메시지
못 찾을 때 자동으로 “미등록 상품”을 표시한다. XLOOKUP은 4번째 인수 하나로 끝난다.
③ 역방향 검색 — 가장 최근 입고일 찾기
마지막 인수 -1은 아래에서 위로 검색한다는 뜻이다. 같은 상품코드가 여러 번 입고된 경우, 가장 최근 행을 잡아준다.
VLOOKUP → XLOOKUP 전환 예시
실제로 쓰던 VLOOKUP 수식을 XLOOKUP으로 바꾸면 이렇게 된다.
| VLOOKUP (기존) | XLOOKUP (변환 후) |
|---|---|
| =VLOOKUP(A2, B:D, 2, FALSE) | =XLOOKUP(A2, B:B, C:C) |
| =IFERROR(VLOOKUP(A2,B:D,3,FALSE),”없음”) | =XLOOKUP(A2, B:B, D:D, “없음”) |
버전 호환성 — 이것만 확인하자
회사 PC의 엑셀 버전이 2019 이하라면 XLOOKUP을 쓸 수 없다. 이 경우 INDEX+MATCH 조합이 차선책이다. 반면 Microsoft 365 구독 환경이라면 지금 당장 바꿔도 된다.
자주 묻는 질문
📌 핵심정리
왼쪽에 검색값이 없어도 되고, 데이터 구조에 자유롭다.
4번째 인수로 오류 처리를 한 번에 끝낸다.
역방향 검색(-1)으로 가장 최근 데이터를 바로 뽑는다.
여러 열을 한 번에 반환하는 배열 반환도 지원한다.
Microsoft 365 / Excel 2021 이상 환경에서 사용 가능.
다음 글에서는 XLOOKUP과 IF를 결합해서 다중 조건 조회를 만드는 법을 다룬다.
