엑셀 VLOOKUP #N/A 오류, 원인 5가지와 해결법

VLOOKUP을 걸었는데 #N/A만 줄줄이 뜰 때가 있습니다. 수식은 분명 맞게 썼는데 말이죠.

결론부터 말하면 원인은 대부분 다섯 가지 안에 있고, 그중 1번이 압도적으로 많습니다. 위에서부터 순서대로 확인하시면 대개 두 번째 항목 안에서 끝납니다.

참고로 #N/A는 “찾는 값이 없다”는 뜻입니다. 수식 자체가 틀렸다면 #REF!나 #VALUE!가 뜨니까, #N/A가 떴다는 건 엑셀이 열심히 찾긴 했는데 못 찾았다는 의미예요. 그래서 수식보다 데이터를 봐야 합니다.

1. 숫자처럼 보이는데 사실은 텍스트

가장 흔하고, 가장 안 보이는 원인입니다.

사번 10023이 한쪽 시트에서는 숫자, 다른 시트에서는 텍스트로 저장돼 있으면 엑셀은 이 둘을 다른 값으로 봅니다. 눈으로는 똑같아 보이는데도요.

확인법: 셀을 클릭했을 때 왼쪽 위에 작은 녹색 삼각형이 있으면 텍스트로 저장된 숫자입니다. 또는 셀을 선택했을 때 숫자가 왼쪽에 붙어 있으면 텍스트, 오른쪽에 붙어 있으면 숫자입니다.

왼쪽 표의 사번은 왼쪽 정렬(텍스트), 오른쪽 조회값은 오른쪽 정렬(숫자). 그래서 VLOOKUP이 전부 #N/A를 낸다

해결법은 어느 쪽을 바꾸느냐에 따라 다릅니다.

  • 텍스트를 숫자로: =VLOOKUP(VALUE(A2), 범위, 2, 0)
  • 숫자를 텍스트로: =VLOOKUP(A2&"", 범위, 2, 0)

근본적으로 고치려면 문제가 되는 열을 선택하고 데이터 → 텍스트 나누기 → 그냥 마침을 누르세요. 형식이 한 번에 정리됩니다.

2. 눈에 안 보이는 공백

다른 시스템에서 내려받은 데이터나 웹에서 복사한 값에는 앞뒤에 공백이 붙어 있는 경우가 많습니다. "김철수 "와 "김철수"는 다른 값입니다.

해결법: =VLOOKUP(TRIM(A2), 범위, 2, 0)

TRIM으로도 안 되면 줄바꿈 없는 공백(웹 복사 시 자주 딸려옵니다)일 수 있습니다. 이건 일반 공백이 아니라서 TRIM이 못 지웁니다.

=VLOOKUP(SUBSTITUTE(A2, CHAR(160), ""), 범위, 2, 0)

3. 수식을 아래로 끌었더니 갑자기 오류

첫 줄은 잘 되는데 아래로 채우면 #N/A가 나오는 경우입니다. 범위가 같이 밀려서 그렇습니다.

B2:C100으로 쓰면 아래로 끌 때 B3:C101, B4:C102로 조금씩 내려가면서 찾을 데이터가 범위 밖으로 빠집니다.

해결법: 범위를 절대참조로 고정합니다. 수식 안에서 범위를 드래그로 선택한 뒤 F4 키를 누르면 $B$2:$C$100으로 바뀝니다.

4. 찾을 값이 범위의 첫 열에 없음

VLOOKUP은 범위의 맨 왼쪽 열에서만 값을 찾습니다. 이게 의외로 많이 놓치는 규칙이에요.

사번으로 이름을 찾고 싶은데 표가 이름 | 사번 순서라면, 범위를 아무리 잘 잡아도 못 찾습니다. 사번이 첫 열이 아니니까요.

해결법은 두 가지입니다.

  • 범위를 사번 열부터 시작하도록 다시 잡는다
  • 아니면 XLOOKUP을 씁니다. 열 순서와 무관하게 동작합니다
=XLOOKUP(A2, 사번범위, 이름범위)

XLOOKUP은 Microsoft 365와 오피스 2021 이상에서 씁니다. 회사 컴퓨터가 구버전이면 INDEX와 MATCH 조합을 쓰셔야 합니다.

5. 마지막 인수를 빼먹음

=VLOOKUP(A2, 범위, 2) 처럼 네 번째 인수를 생략하면 엑셀은 근사 일치로 동작합니다. 이 모드는 데이터가 오름차순으로 정렬돼 있어야 제대로 작동해서, 정렬 안 된 표에서는 #N/A가 뜨거나 더 나쁘게는 엉뚱한 값이 조용히 들어옵니다.

오류가 안 뜨는 쪽이 더 위험합니다. 틀린 걸 모르고 그대로 보고서에 들어가니까요.

해결법: 마지막에 0을 붙이는 습관을 들이세요.

=VLOOKUP(A2, $B$2:$C$100, 2, 0)

0은 FALSE와 같은 뜻이고, “정확히 일치하는 것만 찾아라”는 의미입니다. 특별한 이유가 없다면 항상 0입니다.

그래도 안 될 때

여기까지 확인했는데도 안 된다면, 찾는 값이 정말로 표에 없는 경우입니다. 이건 오류가 아니라 정상 동작이에요.

이럴 때는 오류 표시 대신 다른 문구가 나오게 감싸주면 표가 깔끔해집니다.

=IFERROR(VLOOKUP(A2, $B$2:$C$100, 2, 0), "없음")

다만 IFERROR를 습관적으로 쓰는 건 권하지 않습니다. 1~5번 원인으로 생긴 진짜 오류까지 숨겨버리기 때문입니다. 원인을 다 확인한 다음, 마지막에 씌우세요.

댓글 남기기