텍스트로 저장된 날짜, 왜 계산이 안 될까
여러 부서에서 취합한 자료를 열어보면 분명 날짜처럼 보이는데 날짜 계산이 되지 않거나 함수 결과로 #VALUE! 오류가 뜨는 경우가 있습니다. 원인은 해당 값이 실제 날짜가 아니라 텍스트 형식으로 입력되어 있기 때문입니다. 엑셀은 날짜를 내부적으로 숫자로 저장하는데, 텍스트로 굳어버린 값은 이 숫자 체계에 편입되지 않아 YEAR·MONTH·DATEDIF 같은 날짜 함수가 인식하지 못합니다.
문제를 해결하려면 텍스트를 실제 날짜 값으로 되돌려야 합니다. 방법은 크게 두 갈래인데, 원본 데이터의 형태가 일정한지에 따라 선택이 달라집니다. 아래에서 상황별로 나눠 정리합니다.
날짜 함수가 오류를 내는 이유
엑셀의 날짜 함수는 셀 값이 날짜 일련번호(숫자)일 때만 정상 작동합니다. 텍스트 형식 날짜는 이 조건을 충족하지 못하므로 YEAR·MONTH·DATE 같은 함수에 넣으면 #VALUE! 오류가 출력됩니다.
참고 자료에서도 이 상황을 명확히 짚고 있습니다. 여러 부서 자료를 취합하는 과정에서 "분명히 날짜처럼 보이는 값인데 날짜 계산이 되지 않거나 함수 결과로 #VALUE! 오류가 출력되는" 사례가 종종 발생하며, 그 원인은 텍스트 형식 날짜에 있다는 설명입니다. 즉 화면에 보이는 모양과 셀의 실제 값이 다르다는 점이 핵심입니다.

| 구분 | 화면 표시 | 실제 값 |
|---|---|---|
| 정상 날짜 | 2026-11-13 | 숫자(일련번호) |
| 텍스트 날짜 | 2026-11-13 | 문자열 |
| 함수 결과 | 정상 계산 | #VALUE! 오류 |
위 표처럼 겉모습은 같아도 속성이 다르면 계산 결과가 갈립니다.
원본 형태에 따라 갈리는 변환 방법
텍스트 날짜를 실제 날짜로 바꾸는 방법은 데이터가 어떤 형태로 들어왔는지에 따라 달라집니다.
- 연도·월·일이 각각 다른 열에 분리되어 있다면 DATE 함수로 하나의 날짜를 조합합니다.
- 하나의 셀에 "2026-11-13" 같은 문자열로 붙어 있다면 값 자체를 날짜로 재입력하거나 변환 과정을 거칩니다.
- 표시 형태만 바꾸고 싶다면 사용자 지정서식으로 화면 표시만 조정합니다.
참고 자료는 분리된 값을 합치는 상황을 이렇게 설명합니다. 연도(2017, 2018…)와 월(1, 2, 3…)이 각각 다른 열에 나뉘어 있을 때 이를 "2017/1/1, 2017/2/1…"과 같은 하나의 날짜 값으로 합치는 작업에 DATE 함수가 활용된다는 것입니다.
DATE 함수로 분리된 연월일 합치기
연도·월·일이 따로 입력된 표라면 DATE 함수가 가장 확실합니다. DATE 함수는 연도, 월, 일 세 인수를 받아 하나의 날짜 일련번호를 반환합니다.
작업 순서는 다음과 같습니다.
- 연도·월·일이 각각 들어 있는 열을 확인합니다.
- 빈 열에
=DATE(연도셀, 월셀, 일셀)형태로 수식을 입력합니다. - 수식을 아래로 채워 전체 행에 적용합니다.
- 결과 열의 서식을 날짜 형식으로 지정합니다.
이렇게 만들어진 값은 실제 날짜이므로 이후 YEAR·MONTH·DATEDIF 등 모든 날짜 함수에서 정상 작동합니다. 반대로 날짜에서 연·월·일을 분리해야 할 때는 YEAR·MONTH 함수를 쓰면 됩니다.
표시만 바꾸려면 서식, 값 자체가 필요하면 TEXT
날짜를 요일이나 특정 형태로 보여주고 싶을 때 선택지가 갈립니다. 참고 자료는 이 차이를 분명히 설명합니다.
사용자 지정서식을 활용하면 셀에 입력된 실제 값은 날짜로 유지된 채 화면에 표시되는 형태만 바뀝니다. 이 방식은 해당 셀을 다른 수식에서 참조해 날짜 계산을 그대로 이어갈 수 있다는 장점이 있어, 일반적인 실무에서는 사용자 지정서식을 권장합니다.
반면 "월", "화", "수"처럼 텍스트 자체가 필요한 경우에는 TEXT 함수로 요일 문자열을 직접 만들어야 합니다. 사용자 지정서식으로 요일을 표시하더라도 셀의 실제 값은 여전히 날짜(숫자)이기 때문입니다.

| 목적 | 권장 방법 | 결과 값 |
|---|---|---|
| 계산 이어가기 | 사용자 지정서식 | 날짜(숫자) |
| 요일 문자열 추출 | TEXT 함수 | 텍스트 |
변환 후 바로 쓸 수 있는 날짜 함수들
텍스트를 실제 날짜로 되돌리고 나면 그동안 막혀 있던 계산이 열립니다. 참고 자료에서 다루는 대표적인 함수들은 다음과 같습니다.
- EDATE: 지정한 날로부터 특정 개월이 지난 날짜를 계산합니다. 교체주기에 따른 다음 교체일 산출에 쓰입니다.
- EOMONTH: 특정 달의 마지막 날을 계산합니다. 급여·대금 결산처럼 월말 기준 처리가 필요한 업무에 활용됩니다.
- NETWORKDAYS.INTL: 특정 요일 휴무와 공휴일까지 반영해 실제 근무일수를 계산합니다. 엑셀 2010 이후 버전에서 사용 가능합니다.
- DATEDIF: 근속 년수와 개월수를 하나의 함수로 계산합니다.
- WEEKDAY: 요일을 숫자로 반환합니다. 요일별 가중치 계산에 편리합니다.
이 함수들은 모두 인수가 실제 날짜 값이어야 정상 작동합니다. 텍스트 상태로는 오류가 나거나 엉뚱한 결과가 나오므로, 변환 작업이 선행되어야 합니다.
자주 묻는 질문
Q. 텍스트 날짜를 변환했는데 여전히 계산이 안 됩니다.
변환 후 셀 서식이 텍스트로 남아 있는 경우가 있습니다. 값이 날짜 일련번호로 바뀌었는지 확인하고, 서식을 날짜 또는 일반으로 지정해 보시기 바랍니다.
Q. 사용자 지정서식과 TEXT 함수 중 무엇을 써야 하나요?
이후 계산에 그 셀을 참조해야 한다면 사용자 지정서식이 안전합니다. 요일 이름 같은 텍스트 자체를 다른 셀에 넣어야 한다면 TEXT 함수를 씁니다.
Q. 분리된 연·월·일을 합칠 때 DATE 함수만으로 충분한가요?
연도·월·일이 각각 숫자로 입력되어 있다면 DATE 함수 하나로 충분합니다. 다만 각 열이 텍스트로 저장되어 있으면 먼저 숫자로 바꿔야 합니다.
Q. NETWORKDAYS.INTL 함수가 안 보입니다.
엑셀 2010 이후 버전에서 사용 가능한 함수입니다. 그 이전 버전에서는 지원되지 않습니다.