관리

엑셀 #N/A·#VALUE!·#REF!·#DIV/0! 오류 뜻과 해결 방법

이 글은 AI의 도움을 받아 원문을 번역한 글입니다. 전문 용어와 수식은 원문과 함께 확인해 주세요.

엑셀 오류 값은 문제의 종류를 알려 주는 코드입니다. #N/A는 조회 함수가 일치하는 값을 찾지 못했다는 뜻이고, #VALUE!는 수식에 맞지 않는 형식의 데이터(텍스트나 보이지 않는 공백 등)가 들어갔다는 뜻입니다. #REF!는 참조하던 셀이 사라졌다는 뜻이고, #DIV/0!는 나누는 값이 0이거나 비어 있다는 뜻이며, #NAME?은 엑셀이 알아보지 못하는 글자가 수식에 있다는 뜻입니다. 원인부터 고치고, IFNA나 IFERROR는 목록에 없는 코드처럼 나올 수밖에 없는 오류에만 쓰는 편이 안전합니다.

엑셀 오류 값 8가지의 뜻과 먼저 확인할 것을 정리한 표: #N/A 일치하는 값 없음, #VALUE! 형식이 맞지 않음, #REF! 참조 대상 삭제됨, #DIV/0! 0으로 나눔, #NAME? 알 수 없는 이름, #NUM! 잘못된 숫자 값, #NULL! 교집합 없음, #SPILL! 분산 공간 부족
그림 1. 오류 코드마다 문제의 종류가 정해져 있어서, 코드만 봐도 무엇부터 확인할지 알 수 있습니다.

엑셀 오류 종류 한눈에 보기

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가 나온다면 두 값이 눈에 보이지 않는 부분에서 다른 경우가 대부분입니다. 다음 순서로 확인합니다.

  1. 보이지 않는 공백. 끝에 공백이 붙은 "A-102 "는 "A-102"와 다른 값입니다. TRIM 함수로 여분의 공백을 지울 수 있지만, 웹에서 복사한 텍스트에 자주 섞이는 줄 바꿈 없는 공백(문자 코드 160)은 지우지 못하므로 SUBSTITUTE(A2,CHAR(160)," ")로 먼저 바꿔야 합니다.
  2. 숫자와 텍스트. 숫자 1001과 텍스트 "1001"은 서로 다른 값입니다. 텍스트로 저장된 숫자는 대개 셀 왼쪽에 붙고 모서리에 작은 녹색 삼각형이 표시됩니다. 경고 아이콘 메뉴의 '숫자로 변환' 등으로 양쪽을 모두 숫자나 모두 텍스트로 맞춥니다.
  3. 유사 일치. VLOOKUP의 마지막 인수를 생략하면 기본값이 TRUE(유사 일치)여서, 정렬되지 않은 데이터에서는 #N/A가 나오거나 엉뚱한 행을 가져올 수 있습니다. FALSE를 붙여야 합니다. XLOOKUP은 기본이 정확히 일치입니다.
  4. 정말 없는 값. 코드가 표에 없다면 오류는 사실대로 말하는 것입니다. 대신 무엇을 보여 줄지 정한 뒤, 아래 IFNA 항목처럼 의도적으로 처리합니다.
조회 함수에서 #N/A가 나오는 네 가지 원인 카드: A-102 뒤에 붙은 보이지 않는 공백, 숫자 1001과 텍스트 1001의 차이, FALSE 없이 쓴 VLOOKUP의 유사 일치, 표에 정말 없는 코드 A-205
그림 2. 눈에 보이는 값인데 조회 결과가 #N/A라면, 값이 없다고 결론짓기 전에 숨은 공백, 숫자와 텍스트의 불일치, 유사 일치부터 확인합니다.

#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)로 줄어들어 계속 작동합니다.

열 C 삭제 전후 비교: 결과가 60인 =SUM(B2,C2,D2)는 =SUM(B2,#REF!,C2)로 바뀌어 #REF!가 표시되고, 범위 수식 =SUM(B2:D2)는 =SUM(B2:C2)로 조정되어 40을 표시함
그림 3. 셀을 하나씩 지정한 수식은 열을 삭제하면 #REF!가 되지만, 범위 참조는 자동으로 조정됩니다(예시 수치).

#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!는 그대로 남아 열 번호를 고칠 수 있습니다.

IFERROR는 #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!을 대체하고 IFNA는 #N/A만 대체함을 보여 주는 표와, IFERROR는 #REF!를 0으로 가리지만 IFNA는 그대로 보여 주는 예시
그림 4. IFERROR는 오류 7가지를, IFNA는 #N/A만 가립니다. 조회 수식을 IFNA로 감싸면 진짜 수식 실수는 그대로 보입니다.

실무 원칙은 다음과 같습니다.

  1. 수식이 제대로 동작하는지 먼저 확인합니다. Microsoft도 포괄적 오류 처리는 모든 오류를 가린다고 경고합니다.
  2. 조회 수식은 IFNA나 XLOOKUP의 if_not_found 인수로 값이 없는 경우만 처리해 나머지 오류는 보이게 둡니다.
  3. 0보다 '찾을 수 없음' 같은 문구가 낫습니다. 0은 실제 데이터처럼 보이고 평균을 끌어내립니다.
  4. IFERROR는 어떤 오류든 의미가 같은 표시용 셀에만 쓰고, 먼저 수식을 테스트합니다.

자주 묻는 질문

#####도 오류인가요?

수식 오류가 아닙니다. 대개 열 너비가 좁아 숫자나 날짜를 다 표시하지 못한다는 뜻이므로 열을 넓히면 됩니다. 음수 날짜나 시간 값이 든 셀에도 표시됩니다.

동료 컴퓨터에서만 #NAME?이 나오는 이유는 무엇인가요?

동료의 엑셀에 해당 함수가 없을 가능성이 큽니다. Microsoft는 새 함수를 이전 버전에서 다시 계산하면 #NAME?이 반환된다고 설명합니다. 이전 버전에도 있는 함수로 바꾸거나 해당 함수가 있는 버전에서 파일을 열어야 합니다.

셀 모서리의 작은 녹색 삼각형은 무슨 뜻인가요?

백그라운드 오류 검사가 문제 가능성을 표시한 것으로, 텍스트로 저장된 숫자나 이웃 셀과 다른 수식 등이 해당합니다. 오류 값은 아닙니다. 규칙별 설정은 파일 > 옵션 > 수식에 있습니다.

출처(Microsoft 지원): Excel에서 수식 오류 감지, #REF! 오류를 수정하는 방법, IFERROR 함수, IFNA 함수

함께 읽으면 좋은 글

본문의 이해를 돕기 위해 제작한 설명용 삽화입니다.