본문 바로가기
IT

VLOOKUP #N/A 없애는 법, 초보도 5분이면 끝

by vistatu27 2026. 10. 13.

분명히 값이 있는데 VLOOKUP 결과가 #N/A로 나오면 정말 답답합니다. 이 글에서는 실무에서 가장 자주 만나는 원인 4가지를 확인 순서대로 정리했습니다.

먼저 결론부터

#N/A는 "찾는 값을 못 찾았다"는 뜻입니다. 값이 있는데도 이 오류가 나온다면 아래 4가지 중 하나일 가능성이 큽니다.

순서 원인 해결 방법
1 4번째 인수가 FALSE가 아님 정확히 일치하도록 FALSE 지정
2 눈에 안 보이는 공백 TRIM 함수 사용
3 숫자와 텍스트 형식 불일치 VALUE 또는 &"" 사용
4 조회값이 범위 첫 번째 열에 없음 범위를 다시 지정

예시 데이터

아래 상품표가 상품표 시트의 A~C열에 있다고 가정하겠습니다.

상품코드 상품명 단가
A101 무선 마우스 15,000
A102 키보드 32,000
A103 모니터 189,000

원인 1. 4번째 인수를 빼먹은 경우

VLOOKUP의 4번째 인수를 생략하면 "비슷한 값"을 찾는 방식(근삿값)으로 동작해서, 데이터가 정렬되어 있지 않으면 엉뚱한 결과나 #N/A가 나올 수 있습니다.

=VLOOKUP(A2, 상품표!$A:$C, 2, FALSE)

마지막 인수에 FALSE(또는 0)를 넣으면 정확히 같은 값만 찾습니다. 대부분의 업무용 조회에는 이 방식이 맞습니다.

원인 2. 눈에 안 보이는 공백

데이터를 복사해 오면 A101 처럼 뒤에 공백이 붙는 일이 많습니다. 겉보기엔 같아도 엑셀은 다른 값으로 취급합니다.

=VLOOKUP(TRIM(A2), 상품표!$A:$C, 2, FALSE)

TRIM은 앞뒤 불필요한 공백을 제거합니다. 웹에서 복사한 데이터에 특수 공백이 섞여 있다면 아래처럼 함께 처리해 보세요.

=VLOOKUP(TRIM(SUBSTITUTE(A2, CHAR(160), " ")), 상품표!$A:$C, 2, FALSE)

원인 3. 숫자와 텍스트 형식이 다른 경우

조회값은 숫자 101인데 표에는 텍스트 "101"로 저장되어 있으면 서로 다른 값으로 인식됩니다. 셀 왼쪽 위에 초록색 삼각형이 보이면 의심해 볼 만합니다.

조회값이 텍스트이고 표가 숫자일 때

=VLOOKUP(VALUE(A2), 상품표!$A:$C, 2, FALSE)

조회값이 숫자이고 표가 텍스트일 때

=VLOOKUP(A2&"", 상품표!$A:$C, 2, FALSE)

원인 4. 조회값이 범위의 첫 번째 열에 없는 경우

VLOOKUP은 지정한 범위의 맨 왼쪽 열에서만 값을 찾습니다. 상품명으로 상품코드를 찾는 식의 "왼쪽 조회"는 할 수 없습니다. 이럴 때는 아래 대체 방법을 쓰세요.

남은 #N/A는 IFNA로 깔끔하게

원인을 모두 해결했는데도 실제로 표에 없는 값은 #N/A로 남습니다. 이때만 문구로 바꿔 주세요.

=IFNA(VLOOKUP(A2, 상품표!$A:$C, 2, FALSE), "해당 없음")

원인을 확인하기 전에 IFERROR로 덮으면 다른 종류의 오류까지 숨겨져서 문제를 놓칠 수 있습니다.

더 편한 대체 방법: XLOOKUP

엑셀 2021 이상 또는 Microsoft 365를 쓴다면 XLOOKUP이 더 편합니다. 기본이 정확히 일치이고, 왼쪽 조회도 가능합니다.

=XLOOKUP(A2, 상품표!A:A, 상품표!B:B, "해당 없음")

구버전에서는 INDEX와 MATCH 조합으로 같은 효과를 낼 수 있습니다.

=INDEX(상품표!B:B, MATCH(A2, 상품표!A:A, 0))

한 줄 정리

VLOOKUP #N/A가 뜨면 FALSE 지정 → 공백 → 형식 → 조회 열 위치 순서로 확인하세요.

다른 엑셀 함수 오류도 궁금하시다면 관련 글도 함께 참고해 보세요.

댓글