엑셀 #N/A·#VALUE!·#REF!·#DIV/0! 오류 뜻과 해결 방법
이 글은 AI의 도움을 받아 원문을 번역한 글입니다. 전문 용어와 수식은 원문과 함께 확인해 주세요.
엑셀 오류 값은 문제의 종류를 알려 주는 코드입니다. #N/A는 조회 함수가 일치하는 값을 찾지 못했다는 뜻이고, #VALUE!는 수식에 맞지 않는 형식의 데이터(텍스트나 보이지 않는 공백 등)가 들어갔다는 뜻입니다. #REF!는 참조하던 셀이 사라졌다는 뜻이고, #DIV/0!는 나누는 값이 0이거나 비어 있다는 뜻이며, #NAME?은 엑셀이 알아보지 못하는 글자가 수식에 있다는 뜻입니다. 원인부터 고치고, IFNA나 IFERROR는 목록에 없는 코드처럼 나올 수밖에 없는 오류에만 쓰는 편이 안전합니다.
엑셀 오류 종류 한눈에 보기
Microsoft 문서에는 기본 오류 값 7가지와, Microsoft 365와 Excel 2021 이후 버전의 동적 배열 수식에서 나타나는 #SPILL!이 정리되어 있습니다.
| 오류 | 엑셀이 알려 주는 것 | 대표적인 원인 | 먼저 할 일 |
|---|---|---|---|
| #N/A | 사용할 수 있는 값이 없음 | 조회할 값을 찾지 못함 | 공백·데이터 형식·정확히 일치 확인 |
| #VALUE! | 데이터 형식이 맞지 않음 | 텍스트나 공백이 든 셀로 계산 | 셀 정리, +보다 SUM 사용 |
| #REF! | 잘못된 셀 참조 | 참조하던 행·열 삭제 | 실행 취소 또는 참조 재지정 |
| #DIV/0! | 0으로 나눔 | 나누는 값이 0이거나 빈 셀 | IF로 나누는 값 먼저 검사 |
| #NAME? | 알 수 없는 텍스트 | 함수 철자 오류, 따옴표 없는 텍스트, 없는 이름 | 철자 수정 또는 따옴표 추가 |
| #NUM! | 잘못된 숫자 값 | 음수의 SQRT, 결과를 못 찾는 IRR | 입력값 수정, 다른 추정값 시도 |
| #NULL! | 범위가 겹치지 않음 | 두 범위 사이의 공백 | 콜론(:)이나 쉼표(,) 사용 |
| #SPILL! | 결과를 놓을 자리가 없음 | 분산 범위가 비어 있지 않음 | 방해하는 셀 지우기·옮기기 |
원인이 잘 보이지 않으면 오류가 난 셀을 선택하고 수식 탭의 수식 계산을 실행합니다(Windows용 엑셀 기준). 수식을 한 부분씩 계산해 보여 주므로 오류가 처음 나타나는 지점을 짚을 수 있습니다.
#N/A 오류: 조회 함수가 값을 찾지 못했을 때
VLOOKUP, XLOOKUP, MATCH, XMATCH 같은 조회 함수에서 #N/A는 조회 값과 같은 항목이 없다는 뜻입니다. 표에 분명히 보이는 값인데도 #N/A가 나온다면 두 값이 눈에 보이지 않는 부분에서 다른 경우가 대부분입니다. 다음 순서로 확인합니다.
- 보이지 않는 공백. 끝에 공백이 붙은 "A-102 "는 "A-102"와 다른 값입니다. TRIM 함수로 여분의 공백을 지울 수 있지만, 웹에서 복사한 텍스트에 자주 섞이는 줄 바꿈 없는 공백(문자 코드 160)은 지우지 못하므로 SUBSTITUTE(A2,CHAR(160)," ")로 먼저 바꿔야 합니다.
- 숫자와 텍스트. 숫자 1001과 텍스트 "1001"은 서로 다른 값입니다. 텍스트로 저장된 숫자는 대개 셀 왼쪽에 붙고 모서리에 작은 녹색 삼각형이 표시됩니다. 경고 아이콘 메뉴의 '숫자로 변환' 등으로 양쪽을 모두 숫자나 모두 텍스트로 맞춥니다.
- 유사 일치. VLOOKUP의 마지막 인수를 생략하면 기본값이 TRUE(유사 일치)여서, 정렬되지 않은 데이터에서는 #N/A가 나오거나 엉뚱한 행을 가져올 수 있습니다. FALSE를 붙여야 합니다. XLOOKUP은 기본이 정확히 일치입니다.
- 정말 없는 값. 코드가 표에 없다면 오류는 사실대로 말하는 것입니다. 대신 무엇을 보여 줄지 정한 뒤, 아래 IFNA 항목처럼 의도적으로 처리합니다.
#VALUE!와 #NAME? 오류: 데이터 형식과 오타 점검
#VALUE!는 수식이 받은 데이터를 쓸 수 없을 때 나타납니다. 대표적인 경우는 비어 보이지만 실제로는 공백 문자가 들어 있는 셀로 계산하거나 숫자 사이에 엉뚱한 문자가 섞인 경우입니다. +나 * 같은 연산자는 텍스트를 만나면 오류가 되지만 SUM 같은 함수는 텍스트를 건너뛰므로, Microsoft는 =A2+B2+C2 대신 =SUM(A2:C2)를 쓰라고 안내합니다.
#NAME?은 입력한 내용 가운데 엑셀이 알아보지 못하는 것이 있다는 뜻입니다. 흔한 원인은 다음과 같습니다.
- 함수 철자 오류. =VLOKUP(...)처럼 글자가 빠진 경우입니다. 자동 완성 목록에서 함수를 고르면 예방됩니다.
- 큰따옴표 없는 텍스트. =IF(A2>B2,"초과","정상")은 문제없이 계산되지만 "초과"의 따옴표를 빼면 #NAME?이 나옵니다.
- 정의하지 않았거나 철자가 틀린 이름. 수식 > 이름 관리자에서 확인합니다.
- XLOOKUP 같은 새 함수가 든 파일을 그 함수가 없는 이전 버전 엑셀에서 연 경우.
#REF!와 #DIV/0! 오류: 사라진 참조와 비어 있는 나누는 값
#REF!는 수식이 더 이상 존재하지 않는 셀을 가리킬 때 나타납니다. Microsoft 설명서의 예에서는 열 C를 삭제하자 =SUM(B2,C2,D2)가 =SUM(B2,#REF!,C2)로 바뀝니다. 삭제한 직후라면 Ctrl+Z로 열을 복구하고, 이미 늦었다면 깨진 참조를 다시 입력해야 합니다. 예방은 간단합니다. =SUM(B2:D2)처럼 범위로 지정하면 범위 안쪽의 열을 삭제해도 =SUM(B2:C2)로 줄어들어 계속 작동합니다.
#REF!는 VLOOKUP의 열 번호가 표의 열 수보다 클 때(4열짜리 범위에서 5번째 열을 요청하는 경우 등)와 INDIRECT가 닫힌 통합 문서를 가리킬 때도 나타납니다.
#DIV/0!는 나누는 값이 0이거나 빈 셀일 때 나타납니다. 나누기 전에 검사하면 됩니다. =IF(C2,B2/C2,"")는 C2가 비어 있거나 0인 동안은 빈칸으로 두고 값이 들어오면 나눗셈을 계산합니다. AVERAGEIF도 조건에 맞는 셀이 하나도 없으면 #DIV/0!를 반환합니다.
#NUM!, #NULL!, #SPILL! 오류: 덜 흔한 세 가지
- #NUM!: 숫자 인수가 올바르지 않거나 결과를 구할 수 없을 때 나타납니다. =SQRT(-4)가 대표적이고, IRR은 20번을 시도해도 결과를 찾지 못하면 #NUM!을 반환하는데 Microsoft는 다른 추정값을 시도해 보라고 안내합니다.
- #NULL!: 두 참조 사이의 공백은 교집합 연산자입니다. =SUM(A1:A5 C1:C5)는 두 범위가 함께 가진 셀을 구하라는 뜻인데 겹치는 셀이 없어 #NULL!이 됩니다. 떨어진 두 범위는 쉼표로 =SUM(A1:A5,C1:C5)처럼, 이어진 하나의 블록은 콜론으로 지정합니다.
- #SPILL!: FILTER, UNIQUE, SORT 같은 동적 배열 수식이 여러 결과를 반환하는데 놓을 곳이 없을 때 나타납니다. 대개 분산 범위에 이미 무언가 있는 경우이므로, 경고 아이콘에서 장애 셀 선택을 고르면 방해하는 셀로 이동합니다. 엑셀 표(테이블) 안, 병합된 셀 위, 시트 끝을 넘는 열 전체 참조에서도 실패합니다.
IFERROR와 IFNA 차이: 오류를 숨겨도 되는 경우
두 함수 모두 수식과 오류 대신 보여 줄 값을 받습니다. IFERROR(value, value_if_error)는 #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!의 7가지 오류를 대체하고, IFNA(value, value_if_na)는 #N/A만 대체합니다. #SPILL!은 IFERROR 목록에 없으며, 막힌 수식을 감싸도 결과가 놓일 자리가 생기지 않으므로 분산 범위를 비워야 합니다.
예를 들어 4열짜리 가격표(Prices)에 대한 예시 수식 =IFERROR(VLOOKUP(A2,Prices,5,FALSE),0)에서는 5열이 없는데도 모든 행에 0이 표시되어 합계가 그럴듯해 보입니다. 반면 =IFNA(VLOOKUP(A2,Prices,5,FALSE),"찾을 수 없음")에서는 #N/A만 '찾을 수 없음'으로 바뀌고 #REF!는 그대로 남아 열 번호를 고칠 수 있습니다.
실무 원칙은 다음과 같습니다.
- 수식이 제대로 동작하는지 먼저 확인합니다. Microsoft도 포괄적 오류 처리는 모든 오류를 가린다고 경고합니다.
- 조회 수식은 IFNA나 XLOOKUP의 if_not_found 인수로 값이 없는 경우만 처리해 나머지 오류는 보이게 둡니다.
- 0보다 '찾을 수 없음' 같은 문구가 낫습니다. 0은 실제 데이터처럼 보이고 평균을 끌어내립니다.
- IFERROR는 어떤 오류든 의미가 같은 표시용 셀에만 쓰고, 먼저 수식을 테스트합니다.
자주 묻는 질문
#####도 오류인가요?
수식 오류가 아닙니다. 대개 열 너비가 좁아 숫자나 날짜를 다 표시하지 못한다는 뜻이므로 열을 넓히면 됩니다. 음수 날짜나 시간 값이 든 셀에도 표시됩니다.
동료 컴퓨터에서만 #NAME?이 나오는 이유는 무엇인가요?
동료의 엑셀에 해당 함수가 없을 가능성이 큽니다. Microsoft는 새 함수를 이전 버전에서 다시 계산하면 #NAME?이 반환된다고 설명합니다. 이전 버전에도 있는 함수로 바꾸거나 해당 함수가 있는 버전에서 파일을 열어야 합니다.
셀 모서리의 작은 녹색 삼각형은 무슨 뜻인가요?
백그라운드 오류 검사가 문제 가능성을 표시한 것으로, 텍스트로 저장된 숫자나 이웃 셀과 다른 수식 등이 해당합니다. 오류 값은 아닙니다. 규칙별 설정은 파일 > 옵션 > 수식에 있습니다.
출처(Microsoft 지원): Excel에서 수식 오류 감지, #REF! 오류를 수정하는 방법, IFERROR 함수, IFNA 함수
함께 읽으면 좋은 글
본문의 이해를 돕기 위해 제작한 설명용 삽화입니다.