엑셀 #VALUE! 오류 완전 해결 — 숫자인데 왜 계산이 안 되는지
숫자로 보이는 셀이 합계에서 빠지거나 #VALUE!를 내면, 표시 형식과 실제 저장 값을 나누어 확인해야 합니다. SUM(범위)는 참조 범위의 텍스트를 무시하므로 오류 없이 작은 합계나 0이 나올 수 있습니다. 반면 해석할 수 없는 문자를 직접 산술 연산에 사용하면 오류가 날 수 있습니다. 이 글은 가상 입력인 금액 네 개를 보조 열에서 정리하고 숫자로 변환한 뒤 333000과 대조하는 예제입니다.

1. 재현용 입력과 관찰할 증상
이 가상 입력에서 재현할 증상은 B2:B5의 금액 텍스트가 합계에서 빠져 SUM 결과가 0으로 표시되는 것입니다. 숫자 서식만 적용했는데도 결과가 작다면 원본 저장 유형을 확인하세요. 이 절차는 Excel에서 이미 관찰했다는 실행 기록이 아니라, 아래 네 문자열을 입력했을 때 대조할 기대 증상입니다.
첨부 변환 시트의 B2:B5는 원 단위가 붙은 금액 텍스트입니다. B4는 원 단위 뒤에 줄 바꿈 없는 공백(U+00A0)이 들어 있는 예외입니다. 이 입력 규칙에서만 단위 원을 제거하며 다른 통화나 식별자에는 그대로 적용하지 않습니다.
| 행 | 항목 | B열 원본의 실제 내용 | 예상 숫자 |
|---|---|---|---|
| 2 | 강의료 | 125000원이라는 텍스트 | 125000 |
| 3 | 교재비 | 앞뒤 일반 공백이 있는 83000원 | 83000 |
| 4 | 장비대여 | 45000원 뒤에 U+00A0 공백 | 45000 |
| 5 | 출장비 | 80,000원이라는 텍스트 | 80000 |
네 셀을 모두 텍스트로 넣었다면 =SUM(B2:B5)의 기대값은 0입니다. 금액이 실제로 0인 것이 아니라 범위의 텍스트가 합산되지 않은 상태입니다. =ISNUMBER(B2)는 FALSE이고 =ISTEXT(B2)는 TRUE여야 합니다. ISNUMBER가 FALSE라는 사실만으로 텍스트라고 단정하지 않습니다. 빈 셀이나 다른 비숫자 값도 따로 구분합니다.
2. 원본을 남기고 공백을 정리하기
B열에 바로 덮어쓰지 말고 C열을 정리텍스트, D열을 변환숫자, E열을 숫자여부, F열을 예상숫자, G열을 대조로 만듭니다. C2에 다음 수식을 입력하고 C5까지 복사합니다.
=TRIM(SUBSTITUTE(SUBSTITUTE(B2,CHAR(160)," "),"원",""))
Microsoft 문서는 TRIM만으로 문자 코드 160의 줄 바꿈 없는 공백을 제거할 수 없다고 설명합니다. 이 예제는 해당 문자를 일반 공백으로 바꾸고 원 단위를 제거한 다음 TRIM을 적용합니다. TRIM은 숫자 변환 함수가 아니므로 C열은 여전히 정리된 텍스트입니다. 보이지 않는 모든 문자가 이 방법 하나로 제거된다는 뜻도 아닙니다.
B2·B3·B4·B5의 초기 LEN은 각각 7·8·7·7입니다. C2:C5는 125000, 83000, 45000, 80,000이 되어야 합니다. 길이가 같다는 이유만으로 올바른 금액이라고 판정하지 말고 실제 내용도 대조합니다. 식별자나 계좌번호에는 이런 금액 변환을 적용하지 않습니다.

다른 환경에서는 U+00A0을 직접 지정하기
Microsoft CHAR 설명에 따르면 CHAR는 컴퓨터의 문자 집합을 사용합니다. 따라서 CHAR(160)이 모든 환경에서 같은 문자를 뜻한다고 가정하면 안 됩니다. 이 예제처럼 U+00A0을 정확히 대상으로 삼으려면 UNICHAR로 지정하는 다음 식을 C2에 넣고 C5까지 복사할 수 있습니다.
=TRIM(SUBSTITUTE(SUBSTITUTE(B2,UNICHAR(160)," "),"원",""))
첨부 XLSX의 기존 수식은 CHAR(160)을 사용합니다. 위 식은 본문에 추가한 대안이므로 파일을 열었다고 자동으로 바뀌지는 않습니다. 사본에서 필요한 셀만 수정하고, C2:C5의 기대 문자열 125000·83000·45000·80,000을 먼저 대조하세요. 이 대안의 Microsoft Excel 앱 실행은 확인하지 않았으며, 모든 숨은 문자를 제거하는 식도 아닙니다.
3. 소수점과 그룹 구분자를 지정해 숫자로 변환
D2에 다음 수식을 넣고 D5까지 복사합니다.
=IF(C2="","입력 필요",NUMBERVALUE(C2,".",","))
이 입력 규칙에서는 마침표가 소수점, 쉼표가 천 단위 그룹 구분자입니다. Microsoft의 NUMBERVALUE 문서는 구분자를 지정하여 로캘에 독립적으로 텍스트를 숫자로 변환하는 구문을 제공합니다. 따라서 80,000은 80000으로 변환합니다. 쉼표가 소수점인 다른 자료에는 같은 규칙을 임의로 적용하지 않습니다.
공백 정리 뒤 빈 문자열이면 입력 필요를 표시합니다. 빈 셀은 0원 셀과 다른 값으로 남겨 두세요. 검토중 같은 금액이 아닌 문구는 숫자로 바꾸지 못하므로 원본을 확인합니다. IFERROR(...,0)으로 덮어 합계를 맞추지 않습니다. 통화 단위나 다른 문자가 붙은 자료는 허용된 입력 규칙을 정한 뒤 별도로 처리해야 합니다.
4. 셀별 숫자 여부와 전체 합계 검산
F2:F5에는 예제 입력표에서 확인한 기대값 125000, 83000, 45000, 80000을 숫자로 넣습니다. 이 열은 초기 실습 데이터의 대조값이며 입력 금액을 바꾸면 원본 증빙을 다시 확인해 갱신해야 합니다.
E2: =ISNUMBER(D2)
G2: =IF(ISNUMBER(D2),D2=F2,FALSE)
위 두 식을 각 열의 5행까지 복사합니다. E2:E5와 G2:G5는 모두 TRUE여야 합니다. =COUNT(D2:D5)는 4, =SUM(D2:D5)는 333000, =SUM(F2:F5)도 333000이어야 합니다. 산술은 125000+83000+45000+80000=333000입니다. 합계가 같아도 서로 다른 행의 금액이 뒤바뀔 수 있으므로 G열의 행별 대조를 함께 봅니다.

추가 시험은 B3을 잠깐 빈 셀로 바꾸는 것입니다. D3은 입력 필요, E3와 G3은 FALSE, 숫자 개수는 3이 되어야 합니다. 나머지 금액의 합계 250000은 일부 행만 계산한 값이므로 완료로 판정하지 않습니다. 이 가상 입력의 B3 셀에 앞뒤 일반 공백이 있는 83000원을 복원한 뒤 숫자 4개와 합계 333000으로 돌아오는지 대조하세요.
검산 기대값은 위 가상 입력의 계산 결과입니다. 제작 과정에서 Microsoft Excel 앱을 직접 실행한 기록은 없으며, 파일을 연 뒤 본인의 Excel에서 위 결과와 빈 셀 시험을 확인해야 합니다.
5. 아직 계산되지 않을 때의 복구
먼저 원본 B열과 보조 열을 보관합니다. D열에서 오류가 생긴 행만 골라 실제 문자와 변환 구분자를 확인합니다. 값이 아니라 =NUMBERVALUE(...) 같은 수식 문자열 자체가 보이면 수식을 넣은 셀이 텍스트 형식이었는지 확인하고 일반 형식으로 바꾼 뒤 수식을 다시 입력합니다. 셀 표시 형식만 숫자로 바꾼다고 기존 텍스트 값이 자동으로 숫자가 되지는 않습니다.
숫자 변환에는 성공했지만 합계가 예상과 다르면 SUM이 실제 D2:D5를 참조하는지, 누락된 입력·중복 행·음수가 있는지 확인합니다. C2가 100이고 D2가 숫자 100으로 변환됐다면 그 값이 포함된 합계가 이유 없이 0이 된다고 설명하지 않습니다. 나머지 입력이나 참조 범위를 확인해야 합니다.
이 절차는 공백과 그룹 구분자가 섞인 금액 텍스트에 대한 예제입니다. 날짜 텍스트의 지역별 해석, 배열 크기 불일치, 다른 함수의 잘못된 인수 등 모든 #VALUE! 원인을 해결하는 공통 수식은 아닙니다. 새 파일에서도 같은 입력으로 재현되는지 확인하고, 해결되지 않으면 오류 셀·원본 문자·수식·예상값·Excel 버전을 기록해 파일 담당자에게 전달합니다.
공식 문서
출처 원문 수집일: S1 2026-09-23; S2 2026-09-23; S3 2026-09-23; S4 2026-09-23. 범위 합산, 공백의 종류, 숫자 변환과 형식 진단을 각각 구분해 확인했습니다.