엑셀 #VALUE! 오류 완전 해결 — 숫자인데 왜 계산이 안 되는지

ERP에서 매출 데이터를 내려받아 합계를 냈는데 #VALUE!가 뜨는 경우가 있습니다. 눈으로 보면 분명히 숫자예요. 125000, 83000, 45000처럼 멀쩡해 보이는데, 수식은 계산을 거부합니다.

저도 분기 마감 전날 이 패턴으로 한 번 크게 막힌 적 있어요. ERP에서 받은 B열이 전부 텍스트 숫자였는데, 합계만 IFERROR로 덮어 두었다가 원인 추적이 늦어졌거든요. 화면에는 숫자로 보이지만, 엑셀 입장에서는 숫자가 아니라 텍스트인 거예요. 여기에 보이지 않는 공백, 날짜 형식, 함수 인수 오류까지 섞이면 #VALUE!가 납니다.

공식 문서에도 나오지만, 현장에서는 텍스트 숫자가 1순위예요. ISNUMBER로 한 칸만 찍어보면 30초 안에 갈립니다.

이 글은 그 진단 순서를 표로 정리해 둔 거예요. 강의 때도 이 표부터 보여줍니다.

먼저 30초 진단표부터 보세요

증상 바로 확인할 것 진단 수식 해결 방향
숫자인데 더하기가 안 됨 텍스트 숫자 =ISNUMBER(A2) VALUE, *1, 선택하여 붙여넣기
앞뒤가 멀쩡한데 계산 안 됨 보이지 않는 공백 =LEN(A2) TRIM, CLEAN
날짜 계산에서 오류 날짜가 텍스트인지 =ISNUMBER(A2) DATEVALUE, 날짜 재입력
배열/동적 배열 수식 오류 범위 크기 범위 행 수 비교 범위 크기 통일
특정 함수에서만 오류 인수 형식 함수 도움말 확인 인수 타입 수정
급하게 표시만 숨김 오류 처리 필요 =IFERROR(수식,"") 원인 확인 후 마지막에 사용

중요한 건 IFERROR를 맨 앞에 쓰지 않는 겁니다. IFERROR는 오류를 보기 좋게 덮어주는 도구이지, 원인을 고치는 도구는 아닙니다. Microsoft 공식 문서도 IFERROR가 #VALUE!를 포함한 여러 오류를 다른 값으로 바꿀 수 있다고 설명하지만, 오류를 숨기는 방식은 주의해야 한다고 안내합니다.

따라 할 예제 데이터

아래 표를 새 시트에 입력해 보세요.

A열: 항목 B열: 금액 C열: 일자 D열: 수량
강의료 120000 2026-07-01 3
교재비 45000 2026.07.02 2
장비대여 80,000 7월 3일 1
출장비 오만원 2026-07-04 1

겉으로는 B열이 전부 금액처럼 보입니다. 하지만 실제로는 다릅니다.

  • 120000: 숫자일 수도 있고 텍스트일 수도 있음
  • 45000: 앞에 공백이 숨어 있음
  • 80,000: 쉼표가 텍스트로 들어왔을 수 있음
  • 오만원: 숫자로 바꿀 수 없는 텍스트

여기에 =SUM(B2:B5) 또는 =B2+B3+B4+B5를 넣으면 환경에 따라 #VALUE!가 날 수 있습니다.

원인 1. 텍스트로 저장된 숫자

가장 흔한 원인입니다. 셀 왼쪽 위에 초록색 삼각형이 있으면 “숫자인 척하는 텍스트”일 가능성이 큽니다.

먼저 이렇게 확인합니다.

=ISNUMBER(B2)

결과가 TRUE면 숫자, FALSE면 텍스트입니다.

텍스트 숫자는 아래 방식으로 바꿀 수 있습니다.

=VALUE(B2)

또는 실무에서는 이렇게 간단히 강제 변환하기도 합니다.

=B2*1
=B2+0

다만 저는 강의에서는 VALUE를 먼저 보여줍니다. 이유가 분명해서요. “이 값을 숫자로 바꾼다”는 의도가 수식에 남습니다. 나중에 다른 사람이 파일을 봐도 이해하기 쉽습니다.

여러 셀을 한 번에 바꾸려면 선택하여 붙여넣기도 좋습니다.

  1. 빈 셀에 1을 입력합니다.
  2. 그 셀을 복사합니다.
  3. 텍스트 숫자 범위를 선택합니다.
  4. 선택하여 붙여넣기에서 곱하기를 선택합니다.

이러면 선택한 값들이 숫자로 강제 변환됩니다. 단, 원본 파일은 꼭 복사본에서 테스트하세요.

원인 2. 보이지 않는 공백과 특수 문자

실무에서 제일 얄미운 원인입니다. 눈에는 45000인데 실제로는 앞에 공백이 붙어 있는 경우예요.

=LEN(B3)

기대값보다 글자 수가 길면 공백이나 숨은 문자가 들어간 겁니다.

기본 공백은 TRIM으로 정리합니다.

=TRIM(B3)

숨은 문자까지 의심되면 CLEAN을 같이 씁니다.

=TRIM(CLEAN(B3))

그리고 숫자로 써야 한다면 마지막에 VALUE를 감쌉니다.

=VALUE(TRIM(CLEAN(B3)))

ERP에서 내려받은 파일은 이 조합이 꽤 자주 필요합니다. 복사해서 붙여넣은 값 안에 사람이 눈으로 못 보는 문자가 끼어드는 경우가 있거든요.

원인 3. 쉼표가 포함된 금액 텍스트

80,000은 엑셀 설정에 따라 숫자로 인식되기도 하지만, 외부 시스템에서 내려받으면 텍스트로 들어올 때가 많습니다.

이때는 쉼표를 제거한 뒤 숫자로 바꿉니다.

=VALUE(SUBSTITUTE(B4,",",""))

여기서 순서는 중요합니다.

  1. SUBSTITUTE(B4,",","")로 쉼표를 제거합니다.
  2. VALUE(...)로 숫자로 변환합니다.

금액 열에 원화 기호까지 섞여 있다면 이렇게 확장할 수 있습니다.

=VALUE(SUBSTITUTE(SUBSTITUTE(B4,"원",""),",",""))

단, 오만원처럼 한글로 적힌 값은 이 방식으로 바뀌지 않습니다. 이런 값은 규칙을 정해야 합니다. “오만원”을 50000으로 바꾸는 매핑표를 만들거나, 입력 단계에서 숫자만 받도록 데이터 유효성 검사를 걸어야 합니다.

원인 4. 날짜처럼 보이는 텍스트

날짜 계산에서 #VALUE!가 난다면 날짜가 진짜 날짜인지 먼저 확인하세요.

=ISNUMBER(C2)

엑셀에서 날짜는 내부적으로 숫자입니다. 그래서 진짜 날짜라면 TRUE가 나옵니다. FALSE라면 날짜처럼 보이는 텍스트입니다.

기본 변환은 DATEVALUE입니다.

=DATEVALUE(C2)

그런데 날짜 텍스트는 지역 설정 영향을 받습니다. Microsoft 공식 문서도 DATEVALUE의 #VALUE! 오류는 시스템 날짜/시간 설정과 텍스트 날짜 형식이 맞지 않을 때 발생할 수 있다고 설명합니다.

그래서 회사 파일에서는 날짜 형식을 하나로 맞추는 게 안전합니다.

좋은 입력 예:

2026-07-01
2026/07/01

피하고 싶은 입력 예:

7월 1일
2026.7.1
2026년 7월 1일

불가피하게 2026.07.02 같은 값이 들어온다면 구분자를 바꾼 뒤 변환합니다.

=DATEVALUE(SUBSTITUTE(C3,".","/"))

원인 5. 배열 수식과 범위 크기 불일치

수식이 점점 길어지면 범위 크기가 안 맞아서 #VALUE!가 나기도 합니다.

예를 들어 아래 수식은 위험합니다.

=A2:A10+B2:B5

앞쪽은 9행, 뒤쪽은 4행입니다. 서로 크기가 다르죠.

범위는 같은 크기로 맞춰야 합니다.

=A2:A5+B2:B5

Microsoft 365의 동적 배열을 쓰는 경우에는 예전보다 수식이 유연해졌지만, 모든 범위 불일치를 알아서 해결해 주지는 않습니다. 특히 구버전 Excel 2016/2019 파일과 함께 쓰는 회사라면 범위를 더 보수적으로 맞추는 게 좋습니다.

원인 6. 함수 인수 형식이 맞지 않음

함수마다 기대하는 값의 종류가 있습니다.

예를 들어 DATEDIF는 날짜를 기대합니다.

=DATEDIF("오늘","2026-12-31","D")

이런 식으로 넣으면 오류가 날 수 있습니다. “오늘”이라는 글자는 날짜가 아니니까요.

대신 셀에 실제 날짜를 넣고 참조하는 편이 안전합니다.

=DATEDIF(A2,B2,"D")

수학 함수도 마찬가지입니다.

=SQRT("숫자")

이건 제곱근을 구할 수 없습니다. SQRT는 숫자를 기대하는데 텍스트가 들어갔기 때문입니다.

빠른 해결 순서

#VALUE!가 보이면 아래 순서대로 보세요.

  1. 수식이 참조하는 셀이 숫자인지 확인합니다.
=ISNUMBER(A2)
  1. 글자 수가 이상하게 긴지 확인합니다.
=LEN(A2)
  1. 공백과 숨은 문자를 제거합니다.
=TRIM(CLEAN(A2))
  1. 숫자로 변환합니다.
=VALUE(TRIM(CLEAN(A2)))
  1. 날짜라면 날짜 값인지 확인합니다.
=ISNUMBER(A2)
  1. 마지막에만 오류 표시를 정리합니다.
=IFERROR(수식,"확인 필요")

저는 IFERROR(수식,"")처럼 빈칸으로 숨기는 방식은 조심해서 씁니다. 보고서에서는 깔끔해 보이지만, 실제로는 오류가 있었는지 사라져버립니다. 재무 파일에서는 차라리 "확인 필요"라고 남기는 편이 안전합니다.

실무에서 자주 하는 실수

1. 오류를 바로 IFERROR로 덮음

가장 흔합니다. 결과표를 예쁘게 만들고 싶어서 IFERROR를 먼저 씁니다. 그런데 원인을 모른 채 덮으면 숫자가 틀려도 모릅니다.

IFERROR는 마지막 단계입니다. 먼저 ISNUMBER, LEN, TRIM, CLEAN, VALUE로 원인을 확인하세요.

2. 셀 서식만 숫자로 바꿈

셀 서식을 숫자로 바꿨는데도 계산이 안 되는 경우가 있습니다. 이미 텍스트로 들어온 값은 서식만 바꿔도 바로 숫자가 되지 않을 때가 많습니다.

그럴 땐 VALUE, *1, 선택하여 붙여넣기-곱하기 같은 변환 작업이 필요합니다.

3. 공백을 스페이스바로만 생각함

보이지 않는 특수 공백은 스페이스바 공백과 다릅니다. TRIM만으로 안 지워지는 경우도 있습니다. 이럴 때 CLEAN이나 SUBSTITUTE가 필요합니다.

4. 날짜를 텍스트로 섞어 입력함

한 열 안에 2026-07-01, 7월 1일, 2026.7.1이 섞이면 날짜 계산이 불안정해집니다. 날짜 열은 입력 규칙을 하나로 정하세요.

5. 원본 데이터를 바로 덮어씀

변환 수식을 원본 위에 바로 덮어쓰면 되돌리기 어렵습니다. 특히 붙여넣기 변환은 원본 복사본에서 먼저 테스트하세요.

강의에서 자주 나오는 추가 질문

수강생이 #VALUE!를 보면 가장 먼저 하는 실수는, 수식을 바꾸기 전에 원본 데이터를 확인하지 않는 것입니다. 셀을 더블클릭해 보면 앞뒤에 공백이 붙어 있거나, 숫자 앞에 아포스트로피(')가 붙어 있는 경우가 많아요. 저도 재무팀 시절 ERP 파일을 받으면 먼저 LENISNUMBER로 샘플 5개만 찍어보는 습관을 들였습니다. 30초면 원인 범위가 절반으로 줄어요.

또 하나는 여러 열을 한꺼번에 고치려다 되돌리기 어려워지는 경우입니다. A열 금액, C열 날짜, E열 수량이 동시에 깨져 있으면 한 수식으로 전부 덮어쓰고 싶어지죠. 그런데 열마다 원인이 다릅니다. 금액은 VALUE, 날짜는 DATEVALUE, 공백은 TRIM·CLEAN이 맞아요. 열별로 옆 열에 변환 수식을 만들고, 각 열 결과를 ISNUMBER로 확인한 뒤 값 붙여넣기로 확정하는 순서가 안전합니다.

마지막으로, 보고서용 파일에서는 0으로 바꿔 버리는 처리를 조심해야 합니다. 텍스트 숫자를 IFERROR(VALUE(A2),0)처럼 처리하면 오류는 사라지지만, 실제로는 입력 누락인지 형식 문제인지 구분이 안 됩니다. 월마감 파일에서는 “0”이 “실적 없음”으로 읽혀 버릴 수 있어요. 그래서 저는 오류가 난 셀 옆에 =IF(ISNUMBER(A2),"OK","형식확인") 같은 진단 열을 잠깐 두고, 원인을 좁힌 다음에 본 수식을 고칩니다.

오류별 관련 글

#VALUE!는 데이터 형식 문제에 가깝습니다. 다른 오류와 같이 보면 원인을 더 빨리 잡을 수 있습니다.

FAQ

#VALUE! 오류는 정확히 무슨 뜻인가요?

수식이나 참조한 셀의 값 형식이 맞지 않는다는 뜻입니다. 숫자를 기대하는 자리에 텍스트가 있거나, 날짜가 텍스트로 들어왔거나, 함수 인수 형식이 맞지 않을 때 자주 납니다.

숫자처럼 보이는데 왜 계산이 안 되나요?

눈에는 숫자처럼 보여도 엑셀 내부에서는 텍스트일 수 있습니다. =ISNUMBER(셀)로 확인해 보세요. FALSE가 나오면 숫자가 아니라 텍스트입니다.

VALUE와 곱하기 1 중 뭐가 더 좋나요?

둘 다 쓸 수 있습니다. 다만 설명용 파일이나 공유 파일에서는 VALUE가 더 읽기 좋습니다. “텍스트를 숫자로 바꾼다”는 의도가 분명하기 때문입니다.

TRIM만 쓰면 공백 문제가 다 해결되나요?

항상 그렇지는 않습니다. 일반 공백은 TRIM으로 많이 해결되지만, 숨은 문자나 특수 공백은 남을 수 있습니다. 이때는 CLEAN, SUBSTITUTE를 함께 써야 합니다.

IFERROR로 감싸면 해결된 건가요?

표시만 정리된 겁니다. 원인이 사라진 건 아닙니다. 계산 결과가 중요한 파일에서는 먼저 원인을 고치고, 마지막에 필요한 경우에만 IFERROR를 쓰세요.

ERP에서 받은 파일은 왜 오류가 자주 나나요?

시스템에서 내려받는 과정에서 숫자, 날짜, 코드가 텍스트로 저장되는 일이 많기 때문입니다. 쉼표, 원화 기호, 앞뒤 공백, 숨은 문자도 같이 들어올 수 있습니다.

회사 파일에서 가장 안전한 처리 방식은 뭔가요?

원본은 그대로 두고, 옆 열에 변환 수식을 만든 뒤 결과를 검산하세요. 문제가 없을 때 값 붙여넣기로 확정하는 방식이 안전합니다.

한 줄 요약

#VALUE!는 대부분 “숫자처럼 보이는 텍스트”, “보이지 않는 공백”, “날짜 형식 불일치”, “범위 크기 불일치”, “함수 인수 오류”에서 시작합니다. ISNUMBERLEN으로 먼저 진단하고, TRIM·CLEAN·VALUE·DATEVALUE로 원인을 고친 뒤, IFERROR는 마지막 정리용으로만 쓰세요.

참고 문서

작성자 소개