XLOOKUP은 쉽게 말해 “찾을 값, 찾을 열, 가져올 열” 세 가지만 넣으면 끝나는 조회 함수예요.
목차
VLOOKUP처럼 열 번호를 세지 않아도 되고, 왼쪽 열 값도 가져올 수 있고, 못 찾았을 때 보여 줄 문구까지 한 번에 정할 수 있죠. ^^
다만 엑셀 2019 이하에서는 안 돌아가니까, 회사 PC 버전부터 먼저 보셔야 해요.
VLOOKUP 쓰다가 이런 적 있으시죠?
팀장님이 “이 명단에 부서명 좀 붙여 줘” 하시면… 다들 VLOOKUP부터 켜시잖아요.
근데 원본 표에 누가 열 하나 끼워 넣으면 결과가 엉뚱한 값으로 바뀌어 있고요;;
저도 예전에 보고서 숫자가 다 밀린 걸 회의 직전에 발견한 적이 있는데요. 원인은 원본 시트에 누가 추가한 열 하나였더라구요. 그때 열 번호 세는 함수는 좀 무섭다는 걸 알았네요. ㅠ.ㅜ
XLOOKUP은 이런 일이 거의 안 생겨요. 이유는 아래에서 바로 보여 드릴게요.
XLOOKUP 기본 구조
수식 모양은 이렇습니다.
=XLOOKUP(찾을 값, 찾을 범위, 가져올 범위, [못 찾을 때], [일치 방식], [검색 방향])
앞의 3개만 필수고, 뒤의 3개는 필요할 때만 넣으면 돼요.
| 인수 | 뜻 | 안 넣으면 |
|---|---|---|
| lookup_value | 찾을 값 (예: 사번) | 필수 |
| lookup_array | 그 값을 찾을 열 | 필수 |
| return_array | 결과를 가져올 열 | 필수 |
| if_not_found | 못 찾았을 때 보여 줄 문구 | #N/A 표시 |
| match_mode | 일치 방식 (0, -1, 1, 2) | 0 (정확히 일치) |
| search_mode | 검색 방향 (1, -1 등) | 1 (위에서부터) |
인수 설명은 마이크로소프트 공식 안내와 같은 내용이에요. 원문이 궁금하시면 아래에서 보시면 돼요.
예제로 따라 하기 (사번으로 부서 찾기)
A열에 사번, B열에 이름, C열에 부서가 있는 명단이 있다고 해 볼게요. H2 셀에 사번을 넣으면 부서를 찾아오게 만들어 보겠습니다.
- 결과를 보여 줄 셀(예: I2)을 클릭해요.
- =XLOOKUP(H2, A2:A100, C2:C100) 을 입력하고 Enter를 누르면 끝이에요.
- 없는 사번일 때 #N/A 대신 문구를 띄우고 싶으면 =XLOOKUP(H2, A2:A100, C2:C100, “없음”) 처럼 네 번째 칸에 넣어 주세요.
- 아래 행으로 복사할 거면 범위를 $A$2:$A$100 처럼 F4로 고정해 두시구요.

같은 일을 VLOOKUP으로 하면 =VLOOKUP(H2, A2:C100, 3, FALSE) 가 되는데요. 표 전체를 잡고, 부서가 몇 번째 열인지 “3”을 직접 세고, 정확히 찾으라고 FALSE까지 붙여야 하죠.
VLOOKUP 대신 XLOOKUP을 쓰면 좋은 점
질문하신 “그래서 뭐가 좋은데?”에 대한 답이에요. 표로 보면 한눈에 들어오실 거예요.
| 비교 | VLOOKUP | XLOOKUP |
|---|---|---|
| 열 지정 | 열 번호를 숫자로 입력 | 가져올 열을 직접 선택 |
| 열 추가·삭제 | 번호가 밀려 결과가 틀어질 수 있음 | 범위가 같이 움직여 그대로 맞음 |
| 왼쪽 열 조회 | 안 됨 (오른쪽만) | 됨 |
| 기본 일치 방식 | FALSE를 넣어야 정확히 일치 | 기본이 정확히 일치 |
| 못 찾을 때 문구 | IFERROR로 한 번 더 감싸야 함 | 네 번째 인수로 바로 지정 |
| 아래에서부터 찾기 | 안 됨 | search_mode에 -1 |
1. 열 번호를 안 세도 돼요
개인적으로는 이게 제일 커요. 가져올 열을 마우스로 잡기만 하니까, 원본에 열이 늘어나도 수식이 알아서 따라가요.
2. 왼쪽 값도 가져와요
VLOOKUP은 찾는 열보다 오른쪽만 가져올 수 있어서, 이름으로 사번을 찾으려면 열 순서를 바꾸거나 INDEX/MATCH를 써야 했거든요. XLOOKUP은 그냥 범위만 바꾸면 돼요.
3. #N/A 처리가 한 번에 끝나요
예전엔 IFERROR(VLOOKUP(…), “없음”)처럼 두 번 감쌌는데, 이젠 네 번째 칸에 “없음”만 넣으면 되죠. 수식이 확 짧아져요. ㅎㅎ
4. 마지막 값부터 찾을 수 있어요
같은 사번이 여러 번 나오는 이력 표에서 “가장 최근 기록”이 필요할 때, 여섯 번째 칸에 -1을 넣으면 아래에서부터 찾아요.
참고로, XLOOKUP도 VLOOKUP처럼 처음 찾은 값 하나만 돌려줘요. 중복을 다 뽑는 함수는 아니에요.
자주 막히는 곳
- #NAME? 오류: 대부분 버전 문제예요. XLOOKUP은 Microsoft 365, 엑셀 2021, 2024에서 쓸 수 있고, 엑셀 2016·2019에는 없어요. 파일 → 계정에서 제품 정보를 확인해 보세요.
- 범위 크기가 다를 때: 찾을 범위와 가져올 범위의 행 수가 같아야 해요. A2:A100이면 C2:C100처럼요.
- 숫자 사번이 안 찾아질 때: 한쪽은 숫자, 한쪽은 텍스트로 저장된 경우가 많아요. 셀 왼쪽 위 초록 삼각형이 보이면 의심해 보세요.
- 찾는 값에 공백이 있을 때: 원본 데이터 끝에 공백이 붙어 있으면 못 찾아요. 중복·공백 정리가 먼저 필요할 때는 엑셀 중복된 데이터 제거 글도 같이 보시면 좋아요.
저도 제 PC에서 잘 되던 파일을 다른 팀에 보냈더니 “셀이 다 #NAME?으로 떠요”라는 답장이 온 적이 있어요;; 알고 보니 그쪽은 예전 버전이더라구요. 그 뒤로는 공유용 파일은 상대 버전부터 물어보게 됐네요.
상대가 예전 버전이면 VLOOKUP이나 INDEX/MATCH로 바꿔 보내거나, 수식 결과를 값으로 붙여 넣어 보내는 게 속 편해요.
XLOOKUP 다음으로 익혀 두면 좋은 것
명단을 붙이고 나면 보통 “부서별로 몇 명인지, 합계는 얼마인지” 정리 요청이 이어지죠. 그때는 피벗테이블이 제일 빨라요.
그리고 다른 시스템에서 복사해 온 데이터에 링크가 덕지덕지 붙어 있다면 엑셀 하이퍼링크 한 번에 없애는 법도 참고하시면 돼요.
처음엔 인수 순서가 좀 낯설어도 몇 번 쳐 보면 손에 금방 붙어요. VLOOKUP으로 돌아가기 싫어지실 거예요. ^^
자주 묻는 질문
XLOOKUP이 있으면 VLOOKUP은 이제 안 써도 되나요?
내 엑셀과 파일을 받는 사람 엑셀이 모두 XLOOKUP을 지원하면 XLOOKUP만 써도 됩니다. 마이크로소프트도 VLOOKUP을 계속 지원하니, 예전 버전 사용자와 주고받는 파일은 VLOOKUP으로 두는 편이 안전합니다.
XLOOKUP으로 여러 열을 한 번에 가져올 수 있나요?
가져올 범위를 C2:E100처럼 여러 열로 잡으면 오른쪽 칸으로 결과가 함께 펼쳐집니다. 이때 결과가 펼쳐질 칸이 비어 있어야 하며, 막혀 있으면 #SPILL! 오류가 납니다.
구글 스프레드시트에서도 XLOOKUP을 쓸 수 있나요?
구글 스프레드시트도 XLOOKUP 함수를 제공합니다. 기본 사용법은 같지만 세부 옵션은 구글 고객센터 안내를 한 번 확인해 보시는 게 좋습니다.
