엑셀 VLOOKUP 완전정복, #N/A부터 XLOOKUP까지
![]()
안녕하세요, 깅글렛이에요.
엑셀에서 사번 옆에 이름 붙이려고 VLOOKUP 넣었는데 #N/A만 줄줄 뜬 적 있으시죠? 저도 명단 맞추다가 그 빨간 글자 앞에서 한참 멈춰 있었거든요.
원인은 대부분 정해져 있어요. 네 번째 칸에 FALSE를 안 넣었거나, 값 형식이 안 맞거나 둘 중 하나예요.
오늘은 엑셀 VLOOKUP 기본 문법부터 #N/A 오류 4가지, 다른 시트 조회, XLOOKUP 갈아타기까지 제대로 파봤어요. 예전에 엑셀 함수 여러 개를 짧게 정리한 적 있는데, 오늘은 VLOOKUP 하나만 깊게 들어가볼게요.
VLOOKUP 문법, 괄호 안 4칸에 각각 뜻이 있어요
엑셀 VLOOKUP은 “이 값을 찾아서, 같은 줄의 다른 값을 가져와줘”라고 시키는 함수예요. 기본 모양은 이래요.
=VLOOKUP(찾을값, 표범위, 열번호, FALSE)
괄호 안 네 칸이 순서대로 역할을 나눠 가져요. 찾을값은 조회할 기준값이고, 표범위는 뒤질 범위, 열번호는 그 범위에서 몇 번째 열을 가져올지, 마지막 칸은 일치 방식이에요.
📖 인수란? 함수 괄호 안에 콤마로 구분해 넣는 값들이에요. VLOOKUP은 인수가 4개예요.
여기서 제일 중요한 게 마지막 칸이에요. FALSE는 정확히 일치하는 값만 찾고, TRUE는 비슷한 값을 골라와요. 근데 이 칸을 아예 비우면 엑셀이 자동으로 TRUE, 그러니까 근사 일치로 처리하거든요. 사번이나 제품 코드처럼 딱 맞아야 하는 값에서 이러면 엉뚱한 행을 물어와요. 그래서 실무에서는 FALSE를 꼭 적어주세요.

예를 들어볼게요. A열에 사번, B열에 이름, C열에 부서가 있고 범위가 A2:C100이라고 할게요. E2 칸에 사번을 넣고 이름을 찾고 싶으면 이렇게 써요.
=VLOOKUP(E2, A2:C100, 2, FALSE)
E2의 사번을 A열에서 찾아서, 같은 줄 2번째 열인 이름을 가져와요. 부서까지 필요하면 열번호만 3으로 바꾸면 돼요.
=VLOOKUP(E2, A2:C100, 3, FALSE)
한 가지 규칙이 있어요. VLOOKUP은 찾을값이 항상 표범위의 맨 왼쪽 열에 있어야 하고, 거기서 오른쪽 방향으로만 값을 가져와요. 이 방향 제약이 뒤에 XLOOKUP 얘기에서 다시 나오니 기억해두세요.

N/A가 뜨는 이유는 딱 4가지로 좁혀져요
#N/A는 “그 값을 못 찾았다”는 엑셀의 신호예요. 원인이 수십 개 같지만, 실무에서 마주치는 건 크게 네 가지로 정리돼요.
첫째, 방금 말한 FALSE 생략이에요. 네 번째 칸을 비우거나 TRUE로 두면, 첫 열이 오름차순으로 정렬돼 있지 않은 이상 엉뚱한 값이 나오거나 #N/A가 떠요.
둘째, 조회값과 원본 데이터의 형식이 달라요. 한쪽은 숫자, 한쪽은 텍스트로 저장돼 있으면 눈에는 똑같이 1001로 보여도 엑셀은 다른 값으로 쳐요. 이럴 땐 셀 서식을 한쪽으로 통일하거나 VALUE·TEXT 함수로 형식을 맞춰주면 돼요.
두 값이 같아 보이는데 자꾸 안 맞으면, 빈 칸에 =E1=A4를 쳐보세요. FALSE가 뜨면 실제로 다른 값이라는 뜻이에요. =LEN(E1)과 =LEN(A4)로 글자 수를 재보면 숨은 차이도 잡혀요.
✍️ 저는 예전에 다른 팀에서 받은 명단이랑 대조하다가 #N/A만 잔뜩 떠서 한참 헤맸어요. 알고 보니 제 쪽 사번은 숫자, 받은 파일은 텍스트로 저장돼 있더라고요. 그 뒤로는 #N/A가 뜨면 형식부터 LEN으로 확인하는 버릇이 생겼어요.
셋째, 앞뒤에 눈에 안 보이는 공백이 껴 있어요. 다른 시스템에서 복사해온 데이터에 특히 자주 붙어요. 이건 TRIM 함수로 공백을 털어내면 돼요. 수식 안에서 바로 감싸도 되고요.
=VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)
넷째, 찾을값이 표범위의 첫 열에 아예 없는 경우예요. 아까 말한 맨 왼쪽 열 규칙을 어긴 거죠. 이름으로 사번을 찾고 싶은데 사번이 이름보다 왼쪽 열에 있으면, VLOOKUP은 표 짜임새 때문에 못 찾아요. 이럴 땐 표를 다시 짜거나 XLOOKUP으로 바꿔야 해요.
한 가지 더 있어요. #N/A를 IFERROR로 감싸서 안 보이게 만드는 방법이 있는데, 원인을 확인하기 전에 덮어버리면 진짜 수식 오류까지 같이 숨어요. 먼저 왜 못 찾는지 진단하고, 마지막에 IFERROR나 IFNA로 정리하는 순서가 안전해요.


범위는 $로 고정하세요, 안 그러면 아래칸부터 틀어져요
여기서 #N/A랑은 결이 다른 실수가 하나 더 있어요. 바로 범위를 고정 안 하고 수식을 아래로 채우는 거예요.
무슨 말이냐면, =VLOOKUP(D2, A2:B10, 2, FALSE)를 아래 칸으로 자동채우기하면 범위가 같이 밀려요. 다음 줄은 A3:B11, 그다음은 A4:B12로 한 칸씩 내려가요. 첫 줄은 멀쩡한데 아래로 갈수록 표를 벗어나서 값이 틀어지는 거죠.
📖 절대참조란? 셀 주소 앞에 $를 붙여 수식을 복사해도 안 밀리게 고정하는 방식이에요.
해결은 간단해요. 범위 주소 앞에 $를 붙여서 $A$2:$C$100처럼 잠가주면 돼요. 이렇게 하면 수식을 어디로 복사해도 범위가 그 자리에 그대로 있어요.
일일이 $를 타이핑할 필요는 없어요. 수식에서 범위를 선택하고 F4 키를 누르면 $가 자동으로 붙어요. F4를 여러 번 누르면 행만 고정, 열만 고정으로 순환하니까 상황에 맞게 골라 쓰면 돼요.

다른 시트에 있는 표도 그대로 불러와요
이게 예전 함수 정리 글에서는 못 다룬 부분이에요. 조회할 표가 지금 시트가 아니라 다른 시트에 있어도, 범위 앞에 시트 이름만 붙이면 그대로 가져와요.
형식은 ‘시트명’!범위 예요. 직원 명단이 “직원명단”이라는 시트에 있으면 이렇게 써요.
=VLOOKUP(E2, 직원명단!A2:C100, 2, FALSE)
시트 이름에 공백이 없으면 그냥 붙여도 되는데, 공백이 있으면 작은따옴표로 감싸야 해요. 시트 이름이 “직원 명단”이면 ‘직원 명단’!A2:C100 처럼요.
✍️ 다른 시트 참조를 모를 땐 표를 매번 같은 시트로 복사해서 붙였거든요. 시트명만 앞에 붙이면 된다는 걸 알고 나서는 그 복붙 작업이 통째로 사라졌어요.
여기에 아까 배운 절대참조를 같이 걸면 더 안전해요. 시트 참조랑 $ 고정을 같이 쓰는 거죠.
=VLOOKUP(E2, 직원명단!$A$2:$C$100, 2, FALSE)
시트를 넘어 아예 다른 엑셀 파일까지 참조할 수도 있어요. 이땐 파일 이름을 대괄호로 감싸요.
[파일명.xlsx]시트명!범위
다만 원본 파일 위치가 바뀌면 링크가 깨질 수 있으니, 파일 간 참조는 경로만 잘 챙기면 돼요.

XLOOKUP은 뭐가 다르고, 언제 갈아타면 좋을까요
VLOOKUP을 쓰다 보면 답답한 순간이 와요. 왼쪽 값은 못 가져오고, FALSE 깜빡하면 오작동하고, 못 찾으면 무조건 #N/A가 뜨죠. XLOOKUP은 이 세 가지를 걷어낸 함수예요. 기본 모양은 이래요.
=XLOOKUP(찾을값, 찾을범위, 반환범위)
차이가 딱 세 가지예요.
첫째, 왼쪽도 조회돼요. VLOOKUP은 찾을값이 맨 왼쪽 열에 있어야 하지만, XLOOKUP은 찾을범위랑 반환범위를 따로 지정해요. 그래서 이름으로 사번을 찾는 것처럼 왼쪽 값도 =XLOOKUP(이름값, B:B, A:A)로 바로 가져와요.
둘째, 기본이 정확 일치예요. VLOOKUP은 네 번째 칸을 비우면 근사 일치가 기본이라 함정이었는데, XLOOKUP은 일치 방식을 비워두면 정확 일치가 기본이에요. FALSE 깜빡할 걱정이 사라지는 거죠.
셋째, 못 찾았을 때 문구를 정할 수 있어요. VLOOKUP은 못 찾으면 무조건 #N/A지만, XLOOKUP은 네 번째 칸에 “미등록” 같은 문구를 넣으면 그대로 보여줘요. IFERROR로 또 감쌀 필요가 없어요.

여기까지만 보면 “그럼 XLOOKUP만 쓰면 되겠네” 싶은데, 딱 하나 걸리는 게 있어요. 버전이에요.
XLOOKUP은 Microsoft 365, Excel 2021, 2024, 그리고 웹·모바일 버전에서만 돌아가요. Excel 2019나 2016 이하에는 아예 없어서, 구버전에서 입력하면 #NAME? 오류가 떠요. 회사 PC가 옛날 오피스면 XLOOKUP이 안 먹힐 수 있다는 얘기죠. 그땐 VLOOKUP이 답이에요.

속도 얘기도 하나 있어요. 엑셀 사용자들이 모이는 레딧(Reddit) 커뮤니티 r/excel 게시판에서는, 수십만 행짜리 대용량 데이터에선 오히려 VLOOKUP이 더 빠르다는 실무자 체감이 많아요. 공식 벤치마크는 아니지만요. 그래서 일반 사무용 데이터라면 XLOOKUP이 편하고, 초대용량이면 VLOOKUP도 여전히 쓸모가 있어요. 무조건 갈아타야 하는 건 아니에요.
한 장으로 정리하면 이래요
오늘 다룬 걸 한 번에 짚어볼게요. 엑셀 VLOOKUP은 =VLOOKUP(찾을값, 표범위, 열번호, FALSE) 네 칸이 기본이고, 마지막 칸 FALSE를 꼭 적어야 정확히 일치하는 값을 찾아요. #N/A가 뜨면 FALSE 생략·형식 불일치·공백·첫 열 부재 네 가지부터 의심하면 되고, 범위는 $로 고정해야 아래로 복사할 때 안 밀려요. 다른 시트는 시트명!을 앞에 붙이면 불러오고, 왼쪽 조회나 정확 일치가 자주 필요하면 XLOOKUP이 편해요. 단 XLOOKUP은 구버전 엑셀에서는 안 되니 버전만 확인하세요.

깅글렛 한줄평
💬 VLOOKUP은 네 번째 칸 FALSE 하나로 결과가 갈려요. 오늘 것 중 딱 하나만 챙긴다면, 범위 $로 고정하고 FALSE 적는 습관부터 들여보세요.
자주 묻는 질문
Q. XLOOKUP을 넣었는데 #NAME? 오류가 떠요.
엑셀 버전이 2019·2016 이하일 가능성이 커요. XLOOKUP은 Microsoft 365·2021·2024·웹 버전부터 쓸 수 있어서, 구버전에서는 함수 자체를 못 알아봐요. 그땐 VLOOKUP으로 쓰시면 돼요.
Q. VLOOKUP이랑 XLOOKUP 중 뭘 배워야 하나요?
둘 다 알면 제일 좋지만, 하나만 고른다면 상황에 따라요. 최신 오피스를 쓰고 왼쪽 조회가 자주 필요하면 XLOOKUP이 편하고, 회사 PC가 구버전이거나 아주 큰 데이터를 다루면 VLOOKUP이 안전해요.
Q. #N/A를 그냥 안 보이게 지우고 싶어요.
IFERROR나 IFNA로 감싸면 빈 칸이나 원하는 문구로 바꿀 수 있어요. 근데 원인을 먼저 확인하세요. 오류를 덮으면 진짜 잘못된 수식까지 같이 숨거든요.
마무리
VLOOKUP은 한 번 손에 익으면 명단 맞추는 일이 확 줄어드는 함수예요. 오늘 다룬 #N/A 4가지랑 다른 시트 참조만 챙겨도 웬만한 실무는 커버돼요.
※ 본 글은 2026년 7월 기준 정보를 바탕으로 작성됐어요. 엑셀 함수 구문·지원 버전은 이후 업데이트로 바뀔 수 있어요.