엑셀 · 함수 활용

엑셀 VLOOKUP XLOOKUP 차이, 전환 전 확인 3가지

VLOOKUP과 XLOOKUP의 차이를 모른 채 파일을 주고받다가 낭패를 보는 경우가 있습니다. 협업 중이던 동료가 보내온 파일을 열었는데, 분명 어제까지 멀쩡했던 수식 칸에 #NAME? 오류가 좍 떠 있는 경우가 있습니다. 알고 보니 상대방은 최신 버전 엑셀에서 XLOOKUP이라는 함수로 표를 짰고, 받는 쪽 컴퓨터에는 그 함수 자체가 없었던 겁니다. 사번으로 이름 찾고 이름으로 부서 찾는, VLOOKUP으로도 충분히 되던 일인데 왜 갑자기 낯선 함수 이름이 등장했는지, 그리고 지금 쓰고 있는 VLOOKUP을 굳이 바꿔야 하는지 헷갈리는 분들이 많습니다.

두 함수 모두 표에서 원하는 값을 찾아온다는 역할은 같습니다. 다른 건 그 값을 어떤 구조로, 어떤 조건까지 감안해서 찾아오느냐입니다. 이 차이를 모른 채 그냥 새 함수가 좋다더라는 이야기만 듣고 넘어가면, 전환해야 할 이유도 전환하면 안 되는 상황도 같이 놓치기 쉽습니다.

기준 안내
이 글은 2026년 7월 기준 Microsoft 공식 지원 문서와 실무에서 확인되는 사용 패턴을 바탕으로 정리했습니다. 이 문서는 이후에도 계속 업데이트될 수 있으니, 버전 요구사항처럼 시점에 민감한 내용은 실제 적용 전에 한 번 더 확인해보길 권합니다.

VLOOKUP 사용법, 지금도 이렇게 쓰고 있다

VLOOKUP의 기본 문법은 이렇습니다.

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

찾을 값, 참조할 범위, 몇 번째 열을 가져올지, 그리고 마지막에 일치 방식을 정하는 네 개의 인자로 구성됩니다. 여기서 range_lookup을 생략하면 기본값은 TRUE, 즉 유사일치로 동작한다는 점이 실무에서 종종 문제를 일으킵니다. 정렬되지 않은 데이터에 유사일치가 적용되면 전혀 엉뚱한 값이 반환될 수 있거든요. 이 때문에 실무에서는 마지막 인자에 0 또는 FALSE를 넣어 정확히 일치하는 값만 찾도록 습관을 들이는 경우가 많습니다. 찾을 값을 클릭하고, 범위를 드래그한 뒤 F4로 절대참조를 고정하고, 열 번호를 세어 넣고, 마지막에 0을 입력하는 순서가 VLOOKUP 사용자들 사이에서는 거의 정형화돼 있을 정도입니다.

정렬 안 된 사번 표에서 range_lookup 값에 따른 결과 비교

사번이름
130박준영
105김민지
142이수현

=VLOOKUP(105, A:B, 2) → range_lookup 생략(기본값 TRUE, 유사일치) → “박준영” (엉뚱한 값)

사번이름
130박준영
105김민지
142이수현

=VLOOKUP(105, A:B, 2, 0) → 마지막 인자 0(FALSE) 지정 → “김민지” (정확한 값)

VLOOKUP에는 구조적인 제약이 두 가지 있습니다. 하나는 찾는 값이 항상 참조 범위의 맨 왼쪽 열에 있어야 하고, 반환되는 값은 그보다 오른쪽 열에서만 가져올 수 있다는 점입니다. 표 순서상 이름이 오른쪽, 사번이 왼쪽에 있다면 문제없지만 반대라면 VLOOKUP만으로는 답이 안 나옵니다. 다른 하나는 참조 범위 안에 열을 하나 끼워 넣거나 지우면 col_index_num이 가리키는 실제 열이 바뀌어버려서 이미 짜둔 수식의 결과가 슬쩍 틀어질 수 있다는 점입니다. 열 하나 삽입했다고 수식을 전부 다시 확인해야 하는 상황, 여기서 다들 한 번씩 겪어봤을 겁니다.

XLOOKUP 사용법, VLOOKUP과 정확히 뭐가 다른가

XLOOKUP의 문법은 이렇습니다.

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

인자 이름부터 다릅니다. 찾을 값 다음에 오는 게 표 전체(table_array)가 아니라 검색할 범위(lookup_array)와 반환할 범위(return_array)로 나뉘어 있습니다. 이 구조 하나로 앞서 이야기한 VLOOKUP의 제약 대부분이 풀립니다.

항목별로 어떻게 달라지는지는 표로 정리하는 편이 한눈에 들어옵니다.

차이점 VLOOKUP XLOOKUP
기본 문법 찾을값, 범위, 열 번호, [일치옵션] 찾을값, 검색범위, 반환범위, [없을때값], [일치모드], [검색모드]
왼쪽 열 참조 불가능. 항상 찾는 열 기준 오른쪽 열만 반환 가능. 검색범위와 반환범위를 따로 지정
열 삽입·삭제 영향 열 번호(col_index_num)가 밀려 결과가 틀어질 수 있음 영향 없음 (단, 두 범위 크기가 다르면 #VALUE! 오류)
값 없을 때 처리 자체 옵션 없음. IFERROR 등으로 따로 감싸야 함 if_not_found 인자에 바로 지정 가능
중복값 처리 항상 첫 번째(맨 위) 값만 반환, 선택지 없음 search_mode를 -1로 지정하면 마지막 값부터 검색 가능
생략 시 기본값 range_lookup 생략 시 TRUE(유사일치) match_mode 기본값 0(정확히 일치), search_mode 기본값 1
지원 버전 모든 버전에서 사용 가능 Excel 2021·365·2024·웹/모바일. 2016·2019 불가
찾는 값의 위치에 따라 갈리는 결과: 왼쪽 열 참조

A 사번B 이름
1024김민지

VLOOKUP(1024, A:B, 2, 0) → “김민지” 성공

찾는 값(사번)이 맨 왼쪽 열이라 문제없음

vs
A 이름B 사번
김민지1024

VLOOKUP 구성 불가 — 사번(B열)이 이름(A열)보다 오른쪽이라 참조 범위를 만들 수 없음

XLOOKUP은 lookup_array를 B열, return_array를 A열로 따로 지정해 그대로 “김민지” 반환

참조범위에 열 삽입 시 결과 비교

A 사번B 이름C 부서
1024김민지영업팀

=VLOOKUP(A2, A:C, 3, 0) → “영업팀” (정상)

열 삽입 →
A 사번B 이름C 직급(신규)D 부서
1024김민지대리영업팀

=VLOOKUP(A2, A:D, 3, 0) → “대리” 반환 (col_index_num이 그대로라 결과가 틀어짐)

XLOOKUP은 return_array를 D열로 직접 지정하므로 열 삽입과 무관하게 “영업팀” 그대로 반환

search_mode를 -1로 지정하면 마지막 항목부터 거꾸로 찾아 중복값 중 아래쪽 값을 가져올 수 있다는 점도 꽤 실용적입니다. VLOOKUP은 중복된 값이 여러 개 있어도 항상 맨 위 값 하나만 돌려주고 다른 선택지가 없거든요.

대용량 데이터에서 XLOOKUP 처리 속도가 더 빠르다는 이야기도 실무에서 종종 들립니다. 다만 몇 초, 몇 퍼센트 빠른지를 구체적으로 밝힌 수치 자료는 확인되지 않아, 이 부분은 “일반적으로 그렇다고 알려져 있다” 정도로만 받아들이는 편이 안전합니다(추정).

XLOOKUP 지원 버전부터 확인해야 하는 이유

XLOOKUP이 아무리 편해도 전환에 앞서 먼저 봐야 할 게 있습니다. 바로 우리 회사, 그리고 함께 파일을 주고받는 동료들이 어떤 버전의 엑셀을 쓰고 있느냐입니다. 2026년 7월 기준 Microsoft 공식 지원 문서에 따르면 XLOOKUP은 Excel 2021, Microsoft 365, Excel 2024, 그리고 웹·모바일 버전에서 사용할 수 있습니다. 같은 문서는 “XLOOKUP is not available in Excel 2016 and Excel 2019″라고 못박아두었습니다.

여기서 한 번 헷갈리는 지점이 있습니다. 같은 문서의 적용 대상 목록에는 Excel 2016과 2019가 나란히 올라와 있습니다. 목록에만 있으니 되는 줄 알고 넘어갔다가 실제로 함수를 입력하면 안 먹히는데, 대체 어느 쪽이 맞는 걸까요? 정답은 본문 설명 쪽입니다. 적용 대상 목록은 참고용이고, 실제 사용 가능 여부는 본문에 명시된 버전 조건을 따라야 합니다.

구버전에서 열면 이렇게 됩니다
XLOOKUP이 들어간 파일을 최신 버전 사용자가 만들어 공유하면, 그 파일을 Excel 2016이나 2019에서 여는 사람은 수식 자체는 파일에 남아 있어도 정상적으로 계산되지 않는 상황을 마주할 수 있습니다. Microsoft 공식 지원 문서가 이런 상황이 실제로 발생할 수 있다고 직접 안내하고 있습니다. 회사 안에 아직 2016이나 2019를 쓰는 동료가 섞여 있다면, XLOOKUP으로 짠 파일을 공유하기 전에 한 번은 확인이 필요한 대목입니다.
Excel 2019 이하에서 XLOOKUP 수식이 담긴 파일을 열면

수식표시값
D2=XLOOKUP(A2,B:B,C:C)#NAME?

수식은 파일에 그대로 남아있지만, XLOOKUP을 지원하지 않는 버전에서는 함수 이름을 인식하지 못해 #NAME? 오류가 표시됩니다.

VLOOKUP에서 XLOOKUP 전환 시, 함수명만 바꾸면 안 되는 이유

VLOOKUP에 익숙한 손으로 XLOOKUP을 쓰다 보면 자리 하나를 착각하기 쉽습니다. VLOOKUP의 네 번째 자리는 일치 방식(range_lookup)이었는데, XLOOKUP의 네 번째 자리는 값을 못 찾았을 때 반환할 내용(if_not_found)입니다. 정확히 일치하는 값만 찾겠다는 의도로 네 번째 자리에 무심코 0을 넣으면, XLOOKUP에서는 이게 “못 찾으면 0을 반환하라”는 뜻이 돼버립니다. 정작 정확히 일치를 지정하는 match_mode는 다섯 번째 자리로 밀려나 있습니다.

VLOOKUP(A2, B:D, 3, 0)
XLOOKUP(A2, B:B, D:D, 0) ← 의도와 다르게 동작 (0을 if_not_found로 인식)
XLOOKUP(A2, B:B, D:D, , 0) ← 다섯 번째 자리에 match_mode 지정

이 실수 사례를 정확히 지적한 자료는 확인되지 않았지만, 두 함수의 인자 정의를 나란히 놓고 보면 충분히 헷갈릴 수 있는 구조입니다(추정). 함수 자동완성이 인자 이름을 보여주긴 해도, 손에 익은 순서대로 급하게 입력하다 보면 놓치기 쉬운 지점입니다.

값이 없을 때 처리 방식도 다릅니다. VLOOKUP은 오류 처리 인자가 따로 없어서 IFERROR로 한 번 더 감싸야 “해당없음” 같은 문구를 보여줄 수 있습니다. XLOOKUP은 네 번째 자리, if_not_found에 원하는 문구를 바로 넣으면 됩니다. 수식 길이만 놓고 보면 확실히 짧아집니다.

값이 없을 때: IFERROR로 감싸기 vs if_not_found 한 번에 처리

=IFERROR(VLOOKUP(A2,B:D,3,0),”해당없음”)

VLOOKUP은 자체 오류 처리 인자가 없어 IFERROR로 한 번 더 감싸야 함

=XLOOKUP(A2,B:B,D:D,”해당없음”)

if_not_found 인자 하나로 동일한 결과, 수식 길이도 더 짧음

물론 이 정도 차이가 실전에서 큰 사고로 이어지는 일은 흔치 않다는 반론도 있을 수 있습니다. lookup_array와 return_array를 마우스로 새로 드래그해서 지정하는 방식이 일반적이라, 실제로는 값이 없을 때 반환할 내용을 착각해 이상한 값 하나가 나오는 정도지 계산 전체가 틀어지는 경우는 드뭅니다. 다만 기존 수식을 복사해서 재활용하거나 매크로로 대량 생성하는 작업이라면, 이 인자 순서 차이가 그대로 옮겨 붙어 여러 셀에서 한꺼번에 문제가 될 수 있습니다.

VLOOKUP XLOOKUP 전환, 우리 회사는 해도 될까

여기까지 왔다면 이제 판단이 필요한 시점입니다. 무작정 다 바꾸거나 무작정 안 바꾸기보다, 세 가지 질문에 스스로 답해보면 방향이 보입니다.

전환 여부는 이 세 가지로 판단합니다
회사 구성원 전체가 Excel 2021 이상이나 Microsoft 365를 쓰고 있는가 — 아니라면 XLOOKUP 파일을 공유하는 순간부터 문제가 시작됩니다.
지금 만드는 표에 왼쪽 열 참조가 필요한 작업이 있는가 — VLOOKUP으로 억지로 우회하던 표였다면 XLOOKUP 쪽이 확실히 편합니다.
원본 데이터에 열 삽입·삭제가 잦은 표인가 — 그렇다면 col_index_num이 자주 어긋나는 VLOOKUP보다 XLOOKUP이 유지보수 부담이 적습니다.

세 질문 모두에 그렇다고 답할 필요는 없습니다. 다만 첫 번째 질문에서 걸린다면, 즉 회사 안에 구버전 사용자가 섞여 있다면 나머지 두 질문의 답과 상관없이 버전 통일이 먼저입니다. 파일 하나가 동료 컴퓨터에서 안 열리는 사고보다는, 지금 쓰는 VLOOKUP이 조금 불편한 쪽이 그나마 나은 선택이니까요.

핵심 정리

  • VLOOKUP은 찾는 열 기준 오른쪽 값만 반환하고, XLOOKUP은 검색 범위와 반환 범위를 따로 지정해 방향 제약이 없습니다
  • XLOOKUP은 Excel 2021·365·2024·웹/모바일에서만 지원되고, Excel 2016·2019에서는 쓸 수 없습니다
  • 함수명만 바꾸는 전환은 네 번째 인자의 의미가 달라 오류를 부를 수 있어, 인자 하나하나를 다시 확인해야 합니다
  • 회사 전체 버전 확인이 안 됐다면, 전환보다 버전 통일이 먼저입니다
출처

  • Microsoft 공식 지원 문서, VLOOKUP 함수(support.microsoft.com), 확인 2026-07-11
  • Microsoft 공식 지원 문서, XLOOKUP 함수(support.microsoft.com), 확인 2026-07-11

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다