이 글의 목적은 구글 스프레드시트에서 자주 발생하는 #VALUE! 오류의 의미와 대표 원인들을 정리하고, 실무에서 바로 적용할 수 있는 단계별 해결 방법과 예제를 제공하는 것이다. 단순히 원인을 나열하는 수준이 아니라, 오류가 발생한 상황을 스스로 진단하고 재발을 줄이는 체크리스트까지 정리하는 것을 목표로 한다.
#VALUE! 오류가 의미하는 것과 기본 개념 정리
구글 스프레드시트에서 #VALUE! 오류는 “값이 잘못되었다”는 매우 일반적인 신호이다. 보통 다음과 같은 경우에 나타난다.
- 숫자를 기대하는 자리에 텍스트가 들어간 경우이다.
- 함수 인수가 부족하거나 형식이 잘못된 경우이다.
- 배열 또는 범위 처리 방식이 잘못되어 계산할 수 없는 경우이다.
- 지역 설정(소수점, 구분기호) 문제로 인수를 제대로 인식하지 못하는 경우이다.
| 구분 | 설명 | 대표 예시 |
|---|---|---|
| 데이터 형식 오류 | 숫자, 날짜, 시간 등이어야 하는 자리에 텍스트가 들어간 경우이다. | =A1+B1에서 A1은 숫자, B1은 “3일”과 같은 텍스트인 경우이다. |
| 함수 인수 오류 | 함수에서 인수 개수가 부족하거나 타입이 맞지 않는 경우이다. | =DATE("2024","01","01")처럼 숫자 대신 텍스트를 넣은 경우이다. |
| 배열/범위 처리 문제 | 한 칸에 하나의 값만 들어갈 수 있는데 여러 값을 돌려주려는 경우이다. | =A1:A3 + B1:B2 처럼 크기가 다른 범위를 더한 경우이다. |
| 지역 설정 문제 | 구분 기호(쉼표/세미콜론)나 소수점 기호가 설정과 다른 경우이다. | 함수 인수 사이에 ;가 아닌 ,를 사용하거나 그 반대인 경우이다. |
| 사용자 정의 함수/애드온 | 스크립트 또는 애드온에서 잘못된 값을 반환하는 경우이다. | App Script로 만든 함수가 null 또는 잘못된 타입을 돌려주는 경우이다. |
#VALUE!는 “셀 주소가 잘못되었다”는 의미의 #REF! 오류와 다르다. #REF!는 참조 자체가 끊어진 경우이고, #VALUE!는 참조는 존재하지만 그 안의 값이 계산에 적합하지 않은 경우라고 이해하면 된다.#VALUE! 오류를 빠르게 진단하는 3단계 체크리스트
실무에서 가장 중요한 것은 오류의 원인을 빠르게 좁혀 나가는 것이다. 다음 3단계 순서를 습관화하면 대부분의 #VALUE! 오류를 몇 분 안에 해결할 수 있다.
| 단계 | 확인 포인트 | 도움 되는 기능 |
|---|---|---|
| 1단계: 데이터 형식 확인 | 셀을 더블클릭하거나 서식을 확인하여 텍스트/숫자/날짜를 구분한다. | “표시 형식” 메뉴, ISTEXT, ISNUMBER 함수이다. |
| 2단계: 범위/배열 크기 확인 | 서로 다른 크기의 범위를 연산하고 있지 않은지 확인한다. | 범위 선택 시 좌하단에 뜨는 행·열 개수, ROWS, COLUMNS 함수이다. |
| 3단계: 함수 인수/기호 확인 | 인수 개수, 구분 기호(쉼표/세미콜론), 소수점 기호를 점검한다. | 수식 입력 줄, 지역 설정(파일 > 설정)이다. |
#VALUE! 오류의 대표 원인 1: 텍스트로 저장된 숫자
가장 흔한 원인은 숫자처럼 보이지만 실제로는 텍스트로 저장된 셀을 사칙연산에 사용하는 경우이다. 특히 시스템에서 내려받은 CSV, ERP 출력물, 은행/카드 거래내역 파일에서 많이 발생한다.
1-1. 증상과 예시
| 셀 | 값(화면) | 실제 형식 |
|---|---|---|
| A1 | 100 | 숫자 |
| B1 | 200 | 텍스트(왼쪽 정렬, 앞에 작은 따옴표가 있거나 CSV에서 가져온 값) |
| C1 | =A1+B1 |
결과가 #VALUE!로 표시된다. |
위와 같이 숫자와 텍스트를 더하려 하면 스프레드시트는 두 값을 동시에 숫자로 인식하지 못하고 #VALUE! 오류를 반환한다.
1-2. 숫자 텍스트를 진짜 숫자로 바꾸는 방법
실무에서 자주 쓰는 변환 방법을 정리하면 다음과 같다.
| 방법 | 설명 | 예시 수식 |
|---|---|---|
| 1) VALUE 함수 사용 | 숫자 모양의 텍스트를 숫자로 강제 변환한다. | =A1 + VALUE(B1) |
| 2) 1을 곱하기 | 텍스트에 숫자 연산을 한 번 걸어 실제 숫자로 만든다. | =A1 + (B1*1) |
| 3) 더하기 0 | 숫자처럼 더하기 연산으로 형식을 정리한다. | =A1 + (B1+0) |
| 4) 배열 변환 | ARRAYFORMULA와 함께 전체 열을 한 번에 변환한다. |
=ARRAYFORMULA(VALUE(B1:B)) |
예시
원본 데이터: B열에 텍스트 숫자 "100", "200", "300"이 있다고 가정한다.
C1 셀:
=ARRAYFORMULA(VALUE(B1:B))
→ C열에 100, 200, 300이 숫자 형식으로 채워져 더하기, 평균 등의 연산이 가능해진다.
셀을 더블클릭했을 때 커서가 숫자 바로 앞에 붙어 있거나, 셀 서식이 “일반 텍스트”로 되어 있다면 텍스트로 저장된 숫자일 가능성이 매우 높다.
#VALUE! 오류의 대표 원인 2: 서로 크기가 다른 범위 연산
두 개 이상의 범위를 더하거나 빼는 경우, 행·열 개수가 서로 다르면 #VALUE! 오류가 발생할 수 있다. 특히 구글 스프레드시트의 “자동 배열(스필)” 특성 때문에 계산 결과를 한 칸에 넣으려 할 때 문제가 된다.
2-1. 크기가 다른 범위를 더하는 예
| 범위 | 범위 크기 | 설명 |
|---|---|---|
| A1:A3 | 3행 × 1열 | 매출 수량 데이터이다. |
| B1:B2 | 2행 × 1열 | 단가 데이터인데 마지막 행이 누락된 상태이다. |
| C1 셀 수식 | =A1:A3 * B1:B2 → #VALUE! 오류 발생이다. |
|
이 경우 스프레드시트는 세 개의 값에 두 개의 값만 곱하라고 지시받은 상태이므로 계산을 수행할 수 없어 #VALUE!를 반환한다.
2-2. 범위 크기를 먼저 맞추는 것이 핵심이다
- 행 개수, 열 개수를
ROWS,COLUMNS함수로 비교한다. - 누락된 행이나 열을 채우거나, 의도적으로 필요한 범위만 다시 선택한다.
- 불완전한 데이터는 0으로 처리할지, 제외할지 정책을 정한 뒤 수식을 설계한다.
예시: 누락된 단가는 0으로 간주하려는 경우
=ARRAYFORMULA(A1:A3 * IF(LEN(B1:B3)=0, 0, B1:B3))
→ B열에서 값이 비어 있으면 0으로 대체하여 곱셈을 수행한다.
#VALUE! 오류의 대표 원인 3: 함수 인수 개수/형식 오류
함수의 인수 형식이 잘못되었을 때도 #VALUE! 오류가 자주 발생한다. 특히 DATE, IF, TEXT 함수에서 많이 실수한다.
3-1. DATE 함수 예시
| 수식 | 설명 | 결과 |
|---|---|---|
=DATE(2024, 1, 1) |
연, 월, 일을 숫자로 정확히 입력한 올바른 예이다. | 2024-01-01 |
=DATE("2024", "01", "01") |
지역 설정 및 버전에 따라 텍스트 인수를 허용하지 않아 #VALUE!가 발생할 수 있다. |
#VALUE! 가능성이 있다. |
=DATE(2024, 13, 1) |
월이 13으로 잘못 지정되어 논리적으로 맞지 않는 날짜이다. | #VALUE! 또는 자동 보정 실패 가능성이 있다. |
3-2. IF 함수 예시
IF 함수에서 조건식이 논리값이 아니라 텍스트가 되는 경우에도 문제가 생길 수 있다.
잘못된 예:
=IF("A1>10", "크다", "작다")
→ 조건식이 문자열이므로 제대로 평가되지 않아 #VALUE!로 이어질 수 있다.
올바른 예:
=IF(A1>10, "크다", "작다")
3-3. TEXT, VALUE 함수 조합
텍스트 서식을 먼저 적용하고 다시 숫자로 바꾸려는 과정에서 형식이 꼬이면 #VALUE!가 발생한다.
예시 1: 형식을 인식하지 못하는 경우
=VALUE(TEXT(A1, "yyyy-mm-dd"))
→ TEXT 결과가 지역 설정에서 인식하는 날짜 형식이 아니면 VALUE에서 #VALUE!가 발생한다.
예시 2: 안전한 접근
=DATE(YEAR(A1), MONTH(A1), DAY(A1))
→ 날짜 성분을 직접 추출하여 다시 DATE로 조합하면 VALUE 오류를 피하기 쉽다.
#VALUE! 오류의 대표 원인 4: 지역 설정(구분기호, 소수점) 문제
한국어 환경과 영어(미국) 환경은 함수 인수 구분기호, 소수점 기호가 다를 수 있다. 이 차이를 무시하고 다른 사람의 수식을 그대로 붙여넣으면 바로 #VALUE! 오류가 발생한다.
4-1. 인수 구분기호 차이
| 환경 | 인수 구분기호 | 예시 |
|---|---|---|
| 일부 한국/유럽 설정 | 세미콜론(;) |
=SUM(A1;A2;A3) |
| 미국/영어 설정 | 쉼표(,) |
=SUM(A1,A2,A3) |
환경이 ;를 기대하는데 ,로 인수를 나누면 전체 수식을 하나의 인수로 인식하여 #VALUE! 오류가 발생할 수 있다.
4-2. 소수점 기호 차이
- 어떤 환경은 소수점을
.로 사용한다. - 다른 환경은
,를 소수점 기호로 사용한다.
외부 예제나 매뉴얼에서 가져온 수식은 자신의 스프레드시트 파일의 지역 설정과 맞추어 수정해야 한다.
파일 > 설정 메뉴에서 “일반” 탭의 위치(지역)를 확인하고, 해당 지역에서 사용하는 구분기호에 맞춰 수식을 수정해야 한다.
#VALUE! 오류의 대표 원인 5: 날짜/시간 데이터 혼합
날짜와 시간을 숫자 또는 텍스트와 섞어서 계산할 때도 #VALUE! 오류가 잘 발생한다. 구글 스프레드시트에서 날짜와 시간은 내부적으로 “일수”와 “일수의 분수” 형태의 숫자로 저장된다.
5-1. 날짜 + 텍스트의 예
A1: 2024-01-01 (날짜 형식)
B1: "1일" (텍스트)
C1: =A1 + B1 → #VALUE!
위 예에서는 텍스트 “1일”을 숫자 1로 자동 변환하지 못해 #VALUE!가 된다. 이 경우 VALUE나 SUBSTITUTE 등을 사용하여 순수 숫자를 추출해야 한다.
=DATEVALUE("2024-01-01") + VALUE(SUBSTITUTE(B1, "일", ""))
5-2. 시간 계산에서의 #VALUE! 방지
- 시간을 텍스트로 입력하지 말고
01:30과 같은 형식으로 입력한다. - 시간의 합계를 구할 때는
SUM으로 더한 뒤 표시 형식을 “시간”으로 지정한다. - 텍스트 형태의 시간은
TIMEVALUE로 숫자로 변환한다.
예시
A1: "01:30" (텍스트)
=TIMEVALUE(A1)
→ 내장 시간 숫자로 변환되며 다른 시간과의 덧셈/뺄셈이 가능해진다.
실무에서 자주 보는 #VALUE! 오류 상황별 해결 예제
지금부터는 실제 업무에서 자주 만나는 구체적인 상황을 가정하고 수식과 함께 해결 과정을 단계별로 정리한다.
예제 1: 텍스트 숫자가 섞인 합계 계산
아래와 같은 매출 데이터가 있다고 가정한다.
| 셀 | 매출액(표시) | 비고 |
|---|---|---|
| A2 | 10000 | 숫자 |
| A3 | 20000 | 숫자 |
| A4 | "30000" | 텍스트(시스템에서 가져온 값) |
A2:A4 합계를 구하려고 =SUM(A2:A4)를 입력했는데, A4가 텍스트라 #VALUE! 또는 예상과 다른 결과가 나올 수 있다. 가장 안전한 방식은 전체 범위를 숫자로 강제 변환한 뒤 합계를 구하는 것이다.
=SUM(ARRAYFORMULA(VALUE(A2:A4)))
이렇게 하면 숫자로 인식되지 않던 텍스트 숫자도 정상적으로 합계에 포함된다.
예제 2: IF와 텍스트 비교로 인한 #VALUE!
다음과 같은 구조에서 조건 분기 시 #VALUE!가 발생하는 경우를 보자.
| 셀 | 값 | 설명 |
|---|---|---|
| A2 | 15 | 점수 |
| B2 | =IF("A2>10","합격","불합격") |
조건을 문자열로 감싼 잘못된 수식이다. |
위 수식은 조건식이 문자열이므로 올바르게 동작하지 않고 #VALUE!로 이어질 수 있다. 올바른 수식은 다음과 같다.
=IF(A2>10, "합격", "불합격")
조건식 안의 셀 참조와 연산자는 문자열로 감싸지 않아야 한다.
예제 3: FILTER, ARRAYFORMULA에서의 #VALUE! 오류
배열 함수는 한 번에 여러 값을 반환하기 때문에, 결과를 받을 셀의 범위와 충돌하거나 인수 범위가 맞지 않으면 #VALUE!가 발생한다.
잘못된 예:
=FILTER(A2:A10, B2:B9>0)
→ 첫 번째 인수는 9개 행, 조건 범위는 8개 행으로 크기가 다르다.
이 경우 FILTER는 조건 범위의 크기를 맞출 수 없으므로 #VALUE! 오류를 낸다. 아래처럼 범위를 정확히 맞추어야 한다.
올바른 예:
=FILTER(A2:A10, B2:B10>0)
예제 4: IMPORTRANGE와 #VALUE! (권한 문제 포함)
IMPORTRANGE 함수는 다른 스프레드시트에서 범위를 가져오는데, 권한 승인이나 범위 문자열 형식이 올바르지 않으면 #VALUE! 오류를 반환한다.
=IMPORTRANGE("문서ID", "시트1!A1:B10")
- 처음 사용하는 문서라면 셀에
#REF!또는#VALUE!와 함께 “연결 허용” 메시지가 표시될 수 있다. - 이때 허용을 누르지 않으면 계속 오류가 유지된다.
- 범위 문자열에서 시트명, 느낌표, 범위 형식이 정확한지 다시 확인해야 한다.
예제 5: 사용자 정의 함수(UDF)에서의 #VALUE!
App Script로 만든 사용자 정의 함수는 내부에서 예외를 던지거나 반환 형식이 잘못되면 #VALUE!를 반환할 수 있다. 이 경우 스크립트 코드를 점검하여 항상 스칼라 값 또는 적절한 배열을 반환하도록 수정해야 한다.
함수가 한 셀에서 평가된다면 “그 셀에 들어갈 수 있는 한 개의 값” 또는 스필이 가능한 정상 배열만 반환해야 한다.
중간에
undefined, null, NaN 같은 값을 무심코 돌려주면 #VALUE!로 연결되기 쉽다.#VALUE! 오류를 줄이는 설계 습관
단순히 발생한 오류를 고치는 것에서 그치지 않고, 애초에 #VALUE! 오류가 발생할 여지를 줄이는 설계 습관을 가지는 것이 중요하다.
1) 데이터 입력 단계에서 형식 강제하기
- 숫자를 입력할 열은 “숫자”, “통화” 등의 형식으로 미리 지정한다.
- 날짜 열은 “날짜” 형식으로 지정하여 사용자가 텍스트로 입력하지 않도록 유도한다.
- 데이터 유효성 검사(데이터 > 데이터 유효성)를 사용해 허용 범위를 제한한다.
2) 방어적인 수식 사용
예상치 못한 형식의 값이 들어왔을 때를 대비하여 IFERROR, IF, ISTEXT, ISNUMBER 등을 함께 사용하는 방식이다.
예시: 숫자 또는 빈칸만 허용하는 합계
=SUM(
ARRAYFORMULA(
IF(
ISNUMBER(A2:A100),
A2:A100,
0
)
)
)
→ 숫자가 아닌 값은 0으로 처리하여 #VALUE!를 방지한다.
3) 중간 계산 결과를 나누어 검증하기
- 복잡한 수식 한 줄에 모든 계산을 넣기보다, 단계별로 보조 열을 만들어 중간 값을 확인한다.
- 어느 단계에서
#VALUE!가 처음 나타나는지 발견하기 쉽다. - 보조 열은 나중에 숨기거나 별도 시트로 옮겨 관리하면 된다.
4) 지역 설정을 프로젝트 시작 시에 맞춰두기
여러 사람이 공동 편집하는 파일이라면, 처음에 지역 설정과 함수 구분기호, 날짜 형식을 프로젝트 기준으로 문서화해 두면 좋다. 외부에서 수식을 가져와 붙여넣을 때 이 기준을 참고하면 #VALUE! 오류를 줄일 수 있다.
#VALUE! 오류 상황별 요약표
| 상황 | 주요 원인 | 빠른 확인 방법 | 대표 해결책 |
|---|---|---|---|
| 사칙연산에서 #VALUE! | 숫자/텍스트 혼합이다. | 셀 두 번 클릭, 표시 형식 확인, ISTEXT 테스트이다. |
VALUE 사용, *1, +0으로 숫자 변환한다. |
| 배열/범위 연산에서 #VALUE! | 범위 크기 불일치이다. | ROWS, COLUMNS로 행·열 개수 비교이다. |
범위 다시 선택, 누락 행·열 보완, IF로 예외 처리한다. |
| 함수 사용 시 #VALUE! | 인수 개수/형식 오류이다. | 함수 도움말, 툴팁 확인, 인수 하나씩 테스트이다. | 인수 형식 수정(텍스트→숫자, 날짜 형식 등), 불필요한 따옴표 제거한다. |
| 외부 수식 복사 후 #VALUE! | 지역 설정, 구분기호 불일치이다. | 파일 설정의 위치 확인, 구분기호(, / ;) 비교이다. | 구분기호 일괄 치환, 소수점 기호 맞춤한다. |
| 날짜/시간 계산에서 #VALUE! | 텍스트 날짜/시간 혼합이다. | 셀 형식 “날짜/시간” 여부 확인이다. | DATEVALUE, TIMEVALUE, DATE 재조합으로 변환한다. |
| IMPORTRANGE/FILTER에서 #VALUE! | 권한 미승인, 범위 문자열 오류, 조건 범위 크기 불일치이다. | 권한 허용 메시지 여부, 범위 문자열 다시 확인이다. | 접근 권한 허용, 범위 문자열 및 크기 수정한다. |
FAQ: 구글 스프레드시트 #VALUE! 오류 관련 자주 묻는 질문
Q1. #VALUE! 오류가 나는 셀을 한 번에 찾는 방법이 있는가?
A1. 조건부 서식 또는 필터를 사용하면 된다. 예를 들어 전체 범위를 선택한 뒤 “형식 > 조건부 서식”에서 “텍스트가 정확히 다음과 같음” 조건에 #VALUE!를 입력하면 이 오류가 있는 셀만 색칠할 수 있다. 또, 필터 뷰에서 해당 열에 필터를 적용하고 “조건”에서 “텍스트가 정확히 다음과 같음”으로 #VALUE!를 선택하면 오류가 있는 행만 모아서 볼 수 있다.
Q2. #VALUE! 오류를 빈칸으로 숨기고 싶다. 어떻게 해야 하는가?
A2. IFERROR 함수를 사용하면 된다. 예를 들어 기존 수식이 =A1+B1였다면 =IFERROR(A1+B1, "")처럼 감싸면 오류가 날 경우 빈 문자열을 표시한다. 단, 이렇게 숨기면 오류 원인을 확인하기 어려울 수 있으므로, 작업 단계에서는 오류를 보이게 두고 최종 출력 시트에서만 IFERROR를 사용하는 것이 좋다.
Q3. #VALUE!와 #REF!, #N/A의 차이를 어떻게 구분하면 좋은가?
A3. #REF!는 참조하는 셀이 삭제되거나 범위가 잘못되어 “주소 자체가 유효하지 않다”는 의미이고, #N/A는 주로 VLOOKUP, INDEX/MATCH 등에서 “찾는 값을 찾을 수 없다”는 의미이다. 반면 #VALUE!는 값의 형식 또는 타입이 수식이 기대하는 것과 달라 연산을 할 수 없다는 의미이다. 세 오류를 구분해서 보면 원인 추적이 훨씬 빨라진다.
Q4. 공동 작업 중인데, 어떤 사람은 정상이고 어떤 사람은 #VALUE!가 뜬다. 왜 이런가?
A4. 파일을 여는 사람의 계정별 지역 설정 또는 인터페이스 언어가 다를 수 있다. 예를 들어 한 사람은 인수 구분기호로 쉼표를 쓰고, 다른 사람은 세미콜론을 써야 하는 환경일 수 있다. 이 경우 프로젝트 시작 전에 기준 지역을 정하고, 설정 및 수식 스타일을 통일하는 것이 좋다.
Q5. #VALUE! 오류를 무시하고 계산을 이어갈 수 있는가?
A5. IFERROR로 감싸서 오류일 때 0 또는 다른 기본값을 사용하도록 만들 수 있다. 예를 들어 =SUM(IFERROR(A2:A100,0))처럼 작성하면 A2:A100 범위 안에서 오류가 있는 셀은 0으로 간주하고 합계를 구한다. 하지만 이렇게 할 경우 실제 데이터가 잘못되어 발생한 오류도 그대로 덮일 수 있으므로, 중요한 보고서에서는 먼저 오류 원인을 파악한 뒤 필요한 경우에만 제한적으로 사용하는 것이 안전하다.
'#2 엑셀 오류 가이드' 카테고리의 다른 글
| 구글 스프레드시트 자동채우기 안될 때 (0) | 2026.01.13 |
|---|---|
| 구글 스프레드시트 합계가 이상하게 나와요 (0) | 2026.01.07 |
| 엑셀에서 셀 서식 복사기(형식 복사) 오류 해결 (0) | 2025.12.29 |
| 구글 스프레드시트 숫자가 날짜로 바뀌어요 (0) | 2025.12.17 |
| 엑셀에서 연속된 셀 데이터 자동 채우기가 안될 때 (0) | 2025.12.08 |