엑셀 #N/A 오류 해결 — VLOOKUP 주요 원인과 IFNA·IFERROR 처리
거래처 마스터에서 코드를 찾아 단가를 가져오는 VLOOKUP 수식을 넣었는데 #N/A가 뜨는 경우가 있습니다. 코드를 눈으로 보면 분명히 목록에 있는데, 수식은 "값을 못 찾겠다"고 합니다.
ERP 코드가 00123인데 엑셀에는 123으로 저장돼 있거나, 앞뒤에 공백이 붙어 있는 경우입니다. 화면에는 같아 보이지만 엑셀 입장에서는 다른 값입니다. 여기에 VLOOKUP의 정확일치 설정, 범위 지정 실수, 텍스트·숫자 형식 불일치까지 섞이면 #N/A가 납니다.
#N/A만 보고 코드가 없다고 단정할 수는 없습니다. 앞자리 0·공백·숫자/텍스트 형식이 달라 매칭되지 않았을 수도 있고, 코드는 찾았지만 가져올 단가 셀 자체가 #N/A일 수도 있습니다. 먼저 찾기 위치와 반환 셀을 나눠 확인합니다.
눈으로 같아 보여도 엑셀은 다르게 읽거든요.
#N/A가 뜨는 순간 — 찾기 함수의 "값 없음" 신호

주제 개요와 전체 흐름
#N/A는 "Not Available"의 줄임말입니다. 엑셀 입장에서는 "이 수식이 기대한 값을 찾지 못했다"는 신호입니다.
주로 아래 함수에서 봅니다.
VLOOKUP— 세로 방향으로 값을 찾을 때
XLOOKUP— 지원되는 Excel 환경에서 사용할 수 있는 찾기 함수
HLOOKUP— 가로 방향으로 값을 찾을 때
MATCH— 위치만 찾을 때
INDEX+MATCH조합
조회식의 #N/A는 없는 키, 형식 불일치, 일치한 행의 원본 오류를 구분해서 조사해야 합니다. 오류 표시를 바꾸기 전에 MATCH(찾는값,키범위,0)로 위치를 확인하고 그 행의 반환 셀을 읽으세요. IFNA는 오류의 발생 원인을 구분하지 않으므로 원본 #N/A도 같은 대체값으로 바꿉니다.
찾기 위치와 셀 형식부터 확인하기

단계별 실행 절차
증상: VLOOKUP에서 #N/A
- 바로 확인할 것: 찾는 값이 목록에 있는지
- 진단 수식:
=COUNTIF(범위,찾는값) - 해결 방향: 값 존재 여부, 정확일치(FALSE)
증상: XLOOKUP에서 #N/A
- 바로 확인할 것: if_not_found 옵션
- 진단 수식: 수식 입력줄 확인
- 해결 방향: 기본값 설정, 형식 점검
증상: INDEX+MATCH에서 #N/A
- 바로 확인할 것: MATCH 결과
- 진단 수식:
=MATCH(찾는값,범위,0) - 해결 방향: MATCH 범위·형식 확인
증상: 값은 있는데 못 찾음
- 바로 확인할 것: 텍스트 vs 숫자
- 진단 수식:
=A2=B2,=ISNUMBER(A2) - 해결 방향: TEXT, VALUE, TRIM
증상: 앞자리 0 문제
- 바로 확인할 것: 숫자 서식
- 진단 수식: 셀 표시 vs 실제 값
- 해결 방향: 텍스트로 통일, TEXT 함수
증상: 정확일치가 필요한데 대략 일치 사용
- 바로 확인할 것: VLOOKUP 4번째 인수
- 진단 수식:
TRUE/FALSE확인 - 해결 방향: FALSE(정확일치)로 변경
중요한 건 IFNA를 맨 앞에 쓰지 않는 겁니다. IFNA는 #N/A를 다른 값으로 바꿔주는 도구이지, 원인을 고치는 도구는 아닙니다. Microsoft 공식 문서도 IFNA가 #N/A 오류를 처리할 수 있다고 설명하지만, 오류를 숨기는 방식은 주의해야 한다고 안내합니다.
따라 할 예제 데이터

점검 체크리스트
아래는 형식 불일치를 재현하기 위한 가상 데이터입니다. 시트 이름은 마스터, 조회는 조회로 만듭니다. 마스터의 A2:A6은 입력 전에 텍스트 서식으로 지정해 앞자리 0을 보존합니다. 조회 A2에는 숫자 123, A3에는 작은따옴표를 붙인 '00123, A4에는 A-100을 입력합니다. 일반 서식인 A5에는 =" "&"A-100"을 입력해 앞 공백 1개를 만드세요. 작은따옴표는 텍스트 입력 표시이며 셀 값에는 포함되지 않습니다.
마스터 시트 (A1:B6)
| A열: 거래처코드 | B열: 단가 |
|---|---|
| 00123 | 15000 |
| 00456 | 22000 |
| 00789 | 18500 |
| A-100 | 30000 |
| B-200 | 12500 |
조회 시트 (A1:B5)
| A열: 입력코드 | B열: VLOOKUP 결과 |
|---|---|
| 123 | #N/A 예상 |
| 00123 | 15000 예상 |
| A-100 | 30000 예상 |
| (공백 1개)A-100 | #N/A 예상 (A5 수식으로 입력) |
조회 시트 B2에 아래 수식을 넣고 B5까지 채웁니다. 예상 결과는 정적 검산 기준이며 Excel 실행 검증을 완료했다는 뜻은 아닙니다.
=VLOOKUP(A2,마스터!$A$2:$B$6,2,FALSE)
123을 넣으면 #N/A가 납니다. 00123을 넣으면 15000이 나옵니다. 겉으로 비슷해 보여도 엑셀은 다른 값으로 취급합니다.
원인 1. 찾는 값이 목록에 없음
한계와 주의사항
가장 직관적인 원인입니다. VLOOKUP이 정말로 "없는 값"을 찾으려고 하면 #N/A가 납니다.
먼저 이렇게 확인합니다.
=COUNTIF(마스터!A:A,A2)
COUNTIF는 존재 여부를 살피는 보조 검사입니다. 숫자처럼 보이는 텍스트를 비교하는 방식이 VLOOKUP과 같다고 보장할 수 없으므로 결과만으로 정확일치를 단정하지 마세요. =MATCH(A2,마스터!$A$2:$A$6,0)로 정확일치 위치를 확인하고 양쪽의 ISNUMBER 결과를 함께 비교합니다.
실무에서는 아래 상황이 자주 있습니다.
- 거래처 코드가 ERP에서는
00123인데, 다른 시트에는123으로만 들어옴
- 제품 코드에 하이픈(
A-100)이 있는데, 입력할 때 하이픈을 빼먹음
- 폐기된 코드를 조회하려고 함 — 마스터에서 이미 삭제됨
이때 해결 방향은 두 가지입니다. 마스터에 값을 추가하거나, 조회 쪽 값을 마스터 형식에 맞추는 것입니다. 어느 쪽이 맞는지는 업무 규칙을 봐야 합니다. 코드 체계가 "앞자리 0 필수"라면 조회 쪽을 TEXT로 맞추는 게 맞고, 마스터가 잘못됐다면 마스터를 고칩니다.
원인 2. 범위·열 번호·정확일치(FALSE) 실수
다음 행동 요약
VLOOKUP은 네 번째 인수가 핵심입니다.
=VLOOKUP(찾는값, 범위, 열번호, 정확일치여부)
- FALSE (또는 0): 정확히 일치하는 값만 찾음 — 실무에서 대부분 이걸 씁니다
- TRUE (또는 1): 근사 일치 — 첫 열을 오름차순으로 정렬했을 때 찾는 값 이하의 가장 큰 기준값이 있는 행을 사용합니다. 숫자 차이가 가장 작은 값을 고르는 방식은 아닙니다.
오류가 안 나서 더 위험한 케이스죠. 정확일치가 필요한데 TRUE를 쓰면 "비슷한 값"을 가져올 수 있습니다.
열 번호 실수도 흔합니다.
=VLOOKUP(A2,마스터!A:B,3,FALSE)
범위가 A:B 두 열인데 3번째 열을 가져오라고 하면 #REF!가 납니다. 범위와 열 번호를 같이 봐야 합니다.
범위에는 조회 열과 반환 열이 모두 들어 있어야 합니다. 이 예제는 마스터!$A$2:$B$6을 사용합니다. 전체 열 참조는 수식 수와 데이터 규모에 따라 계산 부담을 늘릴 수 있지만, 중간의 빈 행 자체가 정확일치 검색을 중단시키는 것은 아닙니다. 데이터가 늘면 범위를 확장하거나 Excel 표를 사용하세요.
원인 3. 텍스트·숫자·공백 형식 불일치
실무에서 제일 얄미운 원인입니다. 눈에는 00123과 123이 "같은 코드"처럼 보이는데, 엑셀은 다르게 비교합니다.
먼저 형식을 확인합니다.
=ISNUMBER(A2)
=ISNUMBER(마스터!A2)
한쪽은 숫자, 한쪽은 텍스트면 VLOOKUP이 못 찾을 수 있습니다.
앞자리 0 문제는 이렇게 맞춥니다.
=TEXT(A2,"00000")
또는 마스터 쪽을 텍스트로 통일합니다.
=TEXT(마스터!A2,"00000")
공백이 섞였다면 TRIM을 씁니다.
=VLOOKUP(TRIM(A2),마스터!A:B,2,FALSE)
코드 00123이 숫자 123으로 변환되어 저장되면 앞자리 0 정보가 사라집니다. 표시 형식만 바꾸는 것과 실제 값이 숫자로 변환되는 것은 다릅니다. 비교할 두 셀의 값·TYPE·LEN을 빈 진단 셀에서 함께 확인하세요. 등호 비교 하나만으로 값의 형식이나 오류 원인을 모두 판정하지 않습니다.
숫자를 텍스트로 바꿀 때는 작은따옴표(')가 붙은 경우도 있습니다. 셀을 더블클릭해 보면 '00123처럼 보일 수 있어요.
IFNA·IFERROR — 언제 쓰고 언제 쓰면 안 되나
#N/A를 다른 값으로 바꾸고 싶을 때 쓰는 함수입니다.
=IFNA(VLOOKUP(A2,마스터!A:B,2,FALSE),"없음")
IFNA는 #N/A만 처리하고 #VALUE!, #REF!는 그대로 둡니다. 다만 원본 셀의 #N/A와 조회 실패를 구별하지 않습니다. 새 연습 시트 A1:B1에 키·단가, A2에 텍스트 K001, B2에 =NA()를 입력하세요. 빈 D2의 =MATCH("K001",A2:A2,0)는 1, E2의 =VLOOKUP("K001",A2:B2,2,FALSE)는 #N/A가 기대값입니다. 이때 F2에 =IFNA(E2,"없음")을 넣으면 코드가 있는데도 없음으로 표시됩니다. 원본 오류를 먼저 복구해야 하는 이유입니다. 이 고정 예는 수식 논리를 대조한 것으로 Microsoft Excel 앱 실행 결과는 아닙니다.
IFERROR는 모든 오류를 처리합니다.
=IFERROR(VLOOKUP(A2,마스터!A:B,2,FALSE),"오류")
이 내용은 다음처럼 나눠 확인할 수 있습니다.
- 원인을 알고, "없는 값"만 깔끔히 표시하고 싶을 때 →
IFNA
- 여러 종류 오류를 한꺼번에 처리해야 할 때 →
IFERROR(신중하게)
둘 다 원인 확인 후 마지막 단계에서 씁니다. 먼저 COUNTIF, ISNUMBER, TRIM으로 왜 #N/A가 났는지 좁히고, 보고서용으로 "없음" 표시가 필요할 때만 감싸세요.
월마감 파일에서 IFNA(...,0)으로 0을 넣으면, "값이 없음"과 "단가가 0원"을 구분 못 할 수 있어요. 재무 보고서에서는 "미등록" 같은 문구가 더 안전합니다.
MATCH 단독으로 쓸 때도 #N/A가 납니다. =MATCH(A2,마스터!A:A,0)에서 값이 없으면 오류가 나고, 이걸 INDEX와 묶으면 연쇄적으로 #N/A가 됩니다. MATCH 결과를 먼저 확인한 뒤 INDEX를 쓰는 습관이 좋아요.
XLOOKUP으로 바꿀 때 체크리스트
XLOOKUP을 지원하는 Excel 환경이라면 XLOOKUP 전환을 검토할 수 있습니다. VLOOKUP보다 유연하지만, 설정을 잘못하면 같은 #N/A가 납니다.
=XLOOKUP(A2,마스터!A:A,마스터!B:B,"없음",0)
체크할 것:
- lookup_array와 return_array 크기가 같은지
- match_mode —
0이 정확일치,-1/1은 대략 일치
- if_not_found — 값이 없을 때 표시할 기본값
- search_mode —
1은 첫 번째부터,-1은 뒤에서부터
XLOOKUP의 장점은 왼쪽 열도 참조할 수 있고, 열 번호에 덜 의존한다는 점입니다. 엑셀 INDEX·MATCH·XLOOKUP 실무 글에서 패턴별로 정리해 두었습니다.
다만 다른 Excel 환경과 파일을 공유한다면 XLOOKUP 지원 여부를 먼저 확인하세요.
INDEX와 MATCH를 조합할 때도 #N/A가 납니다. =INDEX(마스터!B:B,MATCH(A2,마스터!A:A,0))에서 MATCH가 실패하면 INDEX까지 연쇄 오류가 나요. MATCH만 따로 옆 열에 두고 결과가 숫자인지 확인한 뒤 INDEX를 감싸는 방식이 디버깅에 편합니다. 엑셀 #VALUE! 오류 완전 해결 글처럼, 찾기 오류와 형식 오류가 겹치면 ISNUMBER와 COUNTIF를 같이 쓰세요.
실무에서 자주 하는 실수
1. IFNA로 바로 덮음
가장 흔합니다. #N/A가 보기 싫어서 IFNA를 먼저 씁니다. 그런데 형식 불일치나 코드 오타가 숨겨집니다. 원인을 모른 채 "없음"으로 바꾸면, 나중에 합계가 틀려도 모릅니다.
2. VLOOKUP에 TRUE(대략 일치)를 씀
정확한 코드 매칭이 필요한데 TRUE를 쓰면 #N/A 대신 틀린 값이 나올 수 있습니다. 거래처 코드, 제품 코드, 사번 조회는 거의 대부분의 경우 FALSE입니다.
3. 앞자리 0을 숫자 서식으로 처리함
00123을 숫자로 입력하면 123이 됩니다. 코드 열은 처음부터 텍스트로 받거나, TEXT 함수로 형식을 맞추세요.
4. 전체 열(A:A)을 범위로 씀
전체 열 참조는 큰 통합 문서에서 계산 부담을 늘릴 수 있습니다. VLOOKUP에는 반환 열까지 포함한 $A$2:$B$500처럼 범위를 지정하세요. 중복 키는 범위를 줄여도 남을 수 있고 정확일치 VLOOKUP은 첫 번째 일치 항목을 반환하므로, 중복 여부는 별도로 검사합니다.
5. 마스터와 조회 파일의 코드 규칙이 다름
한 파일은 ERP에서, 다른 파일은 수기 입력에서 온 경우 형식이 어긋나기 쉽습니다. 코드 입력 규칙을 팀에서 하나로 정하는 게 근본 해결입니다.
자주 확인하는 추가 질문
수식을 바꾸기 전에 찾는 값과 대응하는 마스터 값을 나란히 비교하세요. 조회 시트에서 =A2=마스터!A2가 FALSE이면 두 셀이 같지 않다는 뜻입니다. 값 자체가 다른지, 앞자리 0·공백·숫자와 텍스트 차이 때문인지는 ISNUMBER와 입력줄을 추가로 확인해야 합니다.
또 하나는 VLOOKUP 범위에 머리글을 포함하는 경우입니다. =VLOOKUP(A2,A1:B100,2,FALSE)에서 A1이 "거래처코드"면, 찾는 값이 우연히 머리글과 같을 때 엉뚱한 결과가 나올 수 있습니다. 범위는 A2:B100처럼 데이터만 잡는 습관이 필요합니다.
마지막으로, 여러 시트를 묶은 통합 보고서에서는 마스터 시트가 갱신되지 않은 채 조회만 돌리는 경우가 있습니다. 수식은 맞는데 어제 마감한 마스터를 보고 있으면 신규 코드가 #N/A로 나와요. 조회 전에 마스터 최종 갱신일을 한 번 확인하세요.
특정 행에서만 오류가 나면 찾는 값을 복사해 마스터에서 검색하여 후보 행을 찾을 수 있습니다. 다만 Ctrl + F로 화면의 값을 찾았다고 VLOOKUP의 형식·범위·정확 일치 조건까지 맞는 것은 아닙니다. 후보 행의 키와 반환 셀을 확인하고 MATCH(...,0) 결과로 실제 조회 위치를 다시 대조하세요.
오류별 관련 글
#N/A는 "값을 못 찾음" 오류입니다. 다른 오류와 같이 보면 원인을 더 빨리 잡을 수 있습니다.
- 엑셀 #VALUE! 오류 완전 해결: 숫자인데 계산이 안 될 때
- 엑셀 #REF! 오류 해결: 참조한 셀이나 시트가 사라졌을 때
- 엑셀 #DIV/0! 오류 해결: 분모가 0이거나 빈칸일 때
- 엑셀 INDEX·MATCH·XLOOKUP 실무: VLOOKUP 대안 수식
- VLOOKUP 왼쪽 참조 안 될 때: VLOOKUP 한계를 우회할 때
FAQ
#N/A 오류는 정확히 무슨 뜻인가요?
값을 사용할 수 없음을 나타내는 오류입니다. 조회 함수에서는 키가 없거나 형식이 맞지 않을 때 생길 수 있고, 일치한 행의 반환 셀에 있는 #N/A가 전달될 수도 있습니다. 찾기 성공 여부와 원본 셀 상태를 따로 확인하세요.
값이 있는데 왜 #N/A가 나나요?
눈에는 같아 보여도 텍스트와 숫자, 앞자리 0, 공백 차이로 엑셀은 다른 값으로 취급합니다. =A2=B2와 ISNUMBER로 형식을 확인해 보세요.
IFNA와 IFERROR 중 뭘 써야 하나요?
#N/A만 처리하려면 IFNA가 더 정확합니다. 다른 오류까지 한꺼번에 처리해야 하면 IFERROR를 쓰되, 원인 확인 후 마지막에만 사용하세요.
VLOOKUP에서 FALSE와 TRUE 차이는 뭔가요?
FALSE는 정확 일치를 사용합니다. TRUE는 첫 열이 오름차순이라는 전제에서 찾는 값 이하의 가장 큰 기준값을 사용합니다. 예를 들어 기준값이 5·10·20이고 조회값이 18이면 기준 10의 행을 반환합니다. 18에 더 가까운 20을 고르는 것이 아닙니다. 코드·사번처럼 같은 식별자를 찾아야 할 때는 FALSE를 명시하세요.
XLOOKUP으로 바꾸면 #N/A가 안 나나요?
값이 없으면 여전히 #N/A가 날 수 있습니다. 다만 if_not_found 인수로 "없음" 같은 기본값을 지정할 수 있어서 보고서 정리가 편합니다.
앞자리 0이 있는 코드는 어떻게 처리하나요?
코드 열을 텍스트로 통일하거나, TEXT(값,"00000")처럼 자릿수를 맞춥니다. 숫자 서식으로 입력하면 앞자리 0이 사라집니다.
ERP에서 받은 파일은 왜 #N/A가 자주 나나요?
시스템마다 코드 형식이 다르고, 내려받는 과정에서 숫자·텍스트 변환이 일어나기 때문입니다. 마스터와 조회 파일의 코드 규칙을 맞추는 게 근본 해결입니다.
한 줄 요약
조회 오류를 진단할 때는 키의 존재·형식·범위와 일치한 행의 반환 셀을 차례로 확인합니다. 근사 일치는 정렬된 구간 기준표에만 사용하고, 같은 식별자를 찾을 때는 FALSE를 명시합니다. IFNA는 원인을 고친 뒤 표시를 정리할 때 사용하세요.
관리자 전달: 업무 영향 평가 및 대응
관리자에게 넘길 기준
#N/A 오류가 반복되거나, 업무에 직접적인 영향을 미치는 경우 다음 단계로 진행하세요.
1. 영향 평가
#N/A발생 빈도: 일일/주간 몇 건?- 영향 범위: 특정 시트만? 전체 보고서?
- 데이터 손실 여부: 합계·평균 등 계산 오류?
2. 관리자 대응
- 데이터 마스터 체크: 거래처/제품 코드 목록이 최신인지 확인
- 업무 규칙 검토: ERP에서 내려받은 데이터 형식과 엑셀 시트의 기준 비교
- 자동화 도구 고려: VLOOKUP 대신 XLOOKUP 또는 Power Query 사용 권장
3. 결정 지표
- 보고 기준은 업무 중요도와 팀 규칙으로 정합니다. 예를 들어 주 5건 이상을 내부 기준으로 정할 수 있지만 보편적인 공식 기준은 아닙니다.
- 핵심 데이터(매출·재고)에서 오류가 반복 → 즉시 시스템 검토 요청
4. 관리자 확인 값
=COUNTIF(마스터!A:A, "00123")
목록에 있는지 여부를 확인합니다.
=ISNUMBER(A2)
형식 일치 여부를 확인합니다.
5. 결과 판정
#N/A가 지속되면 → 관리자에게 데이터 마스터 재확인 요청- 오류 발생 시트만 → 해당 파일의 업무 규칙 검토 후 수정
> 주의: IFNA로 숨긴 오류는 합계/보고서 정확성에 영향을 줍니다. 관리자에게 진단 결과와 함께 보고하세요.
참고 문서
#N/A·VLOOKUP 문서 재확인일: 2026-10-01
관련 자료와 다음 행동: 관리자에게 넘길 기준
실습 자료 다운로드
엑셀 #N/A 오류 해결 — VLOOKUP 주요 원인과 IFNA·IFERROR 처리 VLOOKUP·XLOOKUP·INDEX-MATCH 비교 자료
첨부 파일은 예제데이터 시트의 제품코드·제품명 조회 비교 자료입니다. 본문의 마스터·조회 두 시트나 앞자리 0·공백 예제는 포함하지 않으므로 위 입력표로 별도 작성하세요. 파일의 2행은 제품명→코드 조회와 코드→제품명 조회를, 6행은 없는 값의 처리 방법을 비교합니다. 저장된 수식 결과 캐시가 없어 지원되는 Excel에서 재계산이 필요하며, 실행 검증은 완료하지 않았습니다.
파일: 72e738cbdf508bd5-practice.xlsx · 버전 1.0.0 · 3.6 KB · 업데이트 2026-09-06
앞의 진단과 복구 단계를 순서대로 적용한 뒤에도 같은 오류가 남으면 원본을 더 수정하지 말고 사본의 빈 시트에서 같은 입력과 수식으로 한 번 재현합니다. 빈 시트에서는 정상이고 원본에서만 실패하면 통합 문서 구조 문제로 구분해 파일 관리자에게 넘깁니다. 빈 시트에서도 실패하면 사용 환경 또는 수식 조건 문제로 구분해 지원 담당자에게 넘깁니다.
전달할 때는 오류 셀 주소, 사용한 수식, 입력 범위, 예상 결과 범위, 이미 시도한 조치와 재현 결과를 함께 남깁니다. 이 정보가 없으면 담당자가 같은 진단을 처음부터 반복하게 됩니다.
공식 문서
자료 확인일: 2026-08-30
공식 문서 확인 절차
1. Microsoft 문서의 적용 대상 목록에서 현재 사용하는 제품이 포함되는지 확인합니다.
2. 빈 셀에서 문서의 기본 수식을 먼저 실행한 뒤, 본문 예제와 같은 입력값으로 결과를 대조합니다.
3. 함수 이름이 인식되지 않거나 예상값이 다르면 기존 수식을 덮어쓰지 말고 사본에서 중첩 IF 대안을 시험합니다.
4. 공유 파일은 상대방 환경에서도 같은 입력과 결과가 재현될 때만 교체를 완료한 것으로 판단합니다.
메뉴 이름과 옵션은 프로그램 버전마다 다를 수 있으니, 적용 전에 공식 문서나 실제 화면에서 한 번 더 확인하세요.