본문 바로가기

VLOOKUP·XLOOKUP 오류 해결 - #N/A·공백·숫자 문자 불일치 수정법

📑 목차

    VLOOKUP이나 XLOOKUP에서 분명히 존재하는 사번·상품코드를 찾았는데 #N/A가 나오는 경우가 있습니다. 화면에는 똑같아 보여도 한쪽은 숫자, 다른 쪽은 문자이거나 값 앞뒤에 보이지 않는 공백이 남아 있으면 정확히 일치하지 않습니다.

    오류를 IFERROR로 가리기 전에 조회값 존재 여부 → 숫자·문자 형식 → 숨은 공백 → 조회 범위 순서로 확인해야 원인을 제대로 고칠 수 있습니다. 바로 적용할 수식과 점검 순서를 정리했습니다.


    VLOOKUP·XLOOKUP 오류 해결 - #N/A·공백·숫자 문자 불일치 수정법

    VLOOKUP·XLOOKUP 오류 원인 빠른 진단표

    증상 주요 원인 먼저 확인할 것
    #N/A 값 없음·형식 불일치·공백 COUNTIF로 존재 여부 확인
    엉뚱한 값 반환 VLOOKUP 근사값 사용 마지막 인수를 FALSE로
    #REF! 반환 열 번호가 범위 밖 열 번호·삭제된 열 확인
    #VALUE! 인수·범위 크기 문제 조회·반환 배열 길이 확인
    #NAME? 함수 미지원·이름 오타 Excel 버전 확인

    1. 조회값이 원본 표에 실제로 있는지 확인

    먼저 조회값 B2가 원본 코드 범위 A2:A100에 존재하는지 확인합니다.

    =COUNTIF($A$2:$A$100,B2)
    • 결과가 1 이상: 값은 있으므로 형식·공백·수식을 점검합니다.
    • 결과가 0: 원본에 값이 없거나 두 값의 형식이 다를 수 있습니다.
    • 2 이상: 중복 코드가 있어 첫 번째 값만 반환될 수 있습니다.

    철자, 하이픈, 대소문자보다 먼저 앞뒤 공백과 숫자·문자 여부를 확인하는 것이 빠릅니다.

    2. 숫자와 문자 형식 불일치 고치기

    상품코드 1001이 한쪽에서는 숫자, 다른 쪽에서는 텍스트 ‘1001’로 저장되면 정확히 일치하지 않아 #N/A가 날 수 있습니다. 셀 왼쪽 위의 녹색 삼각형이나 정렬 방향만으로 단정하지 말고 아래 함수로 확인하세요.

    =ISTEXT(A2)
    =ISNUMBER(A2)

    문자형 숫자를 숫자로 변환

    • 오류 표시 메뉴에서 숫자로 변환 선택
    • 보조열 수식: =VALUE(A2)
    • 간단한 변환: =--A2

    숫자를 문자 코드로 맞추기

    앞자리 0이 중요한 상품코드·사번은 숫자로 바꾸면 안 됩니다. 정해진 자릿수에 맞춰 TEXT 함수를 사용합니다.

    =TEXT(A2,"000000")

    3. 앞뒤 공백과 숨은 문자 제거

    다른 시스템이나 웹페이지에서 붙여넣은 데이터에는 눈에 보이지 않는 공백과 인쇄 불가능 문자가 섞일 수 있습니다.

    =TRIM(A2)
    =CLEAN(A2)
    =TRIM(CLEAN(A2))

    TRIM은 일반적인 앞뒤 공백과 중복 공백을 정리하고 CLEAN은 일부 인쇄되지 않는 문자를 제거합니다. 웹에서 복사한 줄 바꿈 없는 공백은 TRIM만으로 남을 수 있으므로 아래처럼 SUBSTITUTE를 함께 사용할 수 있습니다.

    =TRIM(SUBSTITUTE(A2,CHAR(160)," "))

    정리한 보조열을 복사해 ‘값 붙여넣기’한 뒤 조회 범위로 사용하면 원본 전체의 오류를 줄일 수 있습니다.

    4. VLOOKUP 수식 제대로 작성하기

    상품코드 B2를 원본표 A2:C100의 첫 열에서 찾아 세 번째 열의 금액을 가져오는 정확 일치 수식입니다.

    =VLOOKUP(B2,$A$2:$C$100,3,FALSE)
    • B2: 찾을 상품코드
    • $A$2:$C$100: 조회표, 찾을 값은 반드시 첫 번째 열에 있어야 함
    • 3: 조회표 안에서 결과를 가져올 세 번째 열
    • FALSE: 정확히 같은 값만 찾기

    FALSE를 생략하거나 TRUE를 사용하면 근사값 검색이 적용될 수 있습니다. 표가 알맞게 정렬되지 않았다면 존재하지 않는 값에도 엉뚱한 결과가 나올 수 있으므로 코드 조회에는 FALSE가 안전합니다.

    5. XLOOKUP으로 더 쉽게 조회하기

    XLOOKUP은 조회 열과 반환 열을 따로 지정하므로 반환값이 조회 열의 왼쪽에 있어도 사용할 수 있습니다.

    =XLOOKUP(B2,$A$2:$A$100,$C$2:$C$100,"코드 없음")

    네 번째 인수에 ‘코드 없음’을 넣으면 일치값이 없을 때 #N/A 대신 안내문을 표시합니다. 다만 숫자·문자 불일치나 공백 문제가 해결되는 것은 아니므로 원본 데이터 정리가 먼저입니다.

    버전 주의: Microsoft 공식 안내상 XLOOKUP은 Excel 2016과 Excel 2019에서 사용할 수 없습니다. 구버전과 공유한다면 VLOOKUP 또는 INDEX·MATCH를 검토하세요.

    6. 오류를 감추기 전에 원인을 먼저 수정

    IFNA와 IFERROR를 사용하면 사용자 화면을 깔끔하게 만들 수 있습니다.

    =IFNA(VLOOKUP(B2,$A$2:$C$100,3,FALSE),"코드 없음")

    =IFERROR(XLOOKUP(B2,$A$2:$A$100,$C$2:$C$100),"확인 필요")

    IFNA는 #N/A만 처리하므로 조회 실패를 구분하기 좋습니다. IFERROR는 #REF!, #VALUE! 등 다른 오류까지 모두 가릴 수 있어 잘못된 범위나 열 번호를 놓칠 수 있습니다. 먼저 원인을 확인한 뒤 최종 보고서에 적용하세요.

    VLOOKUP과 XLOOKUP 차이

    구분 VLOOKUP XLOOKUP
    검색 방향 첫 열에서 오른쪽 반환 왼쪽·오른쪽 모두 가능
    정확 일치 FALSE 지정 기본값
    열 삽입 영향 열 번호 수정 가능성 반환 범위를 직접 지정
    못 찾을 때 문구 IFNA 등 결합 네 번째 인수에 바로 지정
    구버전 호환 폭넓게 지원 Excel 2016·2019 미지원

    #N/A 해결 체크리스트

    1. COUNTIF로 조회값이 원본에 있는지 확인합니다.
    2. 조회값과 원본 코드가 모두 숫자 또는 모두 문자인지 확인합니다.
    3. TRIM·CLEAN으로 숨은 공백과 문자를 정리합니다.
    4. VLOOKUP의 마지막 인수가 FALSE인지 확인합니다.
    5. VLOOKUP 조회값이 표의 첫 번째 열에 있는지 확인합니다.
    6. XLOOKUP의 조회 배열과 반환 배열 행 수가 같은지 확인합니다.
    7. 원인을 해결한 뒤 IFNA로 안내문을 표시합니다.

    자주 묻는 질문

    Q1. 값이 분명히 있는데 VLOOKUP이 #N/A를 반환하는 이유는 무엇인가요?

    숫자와 문자 형식이 다르거나 앞뒤에 숨은 공백이 있을 가능성이 큽니다. ISTEXT·ISNUMBER와 TRIM으로 확인하세요.

    Q2. VLOOKUP 마지막 인수는 FALSE와 TRUE 중 무엇을 써야 하나요?

    사번·상품코드처럼 정확히 같은 값을 찾을 때는 FALSE를 사용합니다. TRUE는 근사값 검색으로 정렬 조건이 필요합니다.

    Q3. #N/A를 빈칸으로 표시하려면 어떻게 하나요?

    수식을 IFNA로 감싸고 두 번째 인수에 빈 문자열을 넣습니다. 예: =IFNA(VLOOKUP(...),"")입니다.

    Q4. XLOOKUP에서 #NAME?이 표시되는 이유는 무엇인가요?

    함수 이름 오타 또는 지원하지 않는 Excel 버전일 수 있습니다. Excel 2016과 2019에서는 XLOOKUP을 지원하지 않습니다.

    Q5. TRIM을 사용해도 공백이 없어지지 않아요.

    웹에서 복사한 줄 바꿈 없는 공백일 수 있습니다. SUBSTITUTE로 CHAR(160)을 일반 공백으로 바꾼 뒤 TRIM을 적용하세요.

    함께 보면 좋은 글

    공식 참고자료