날짜가 적힌 셀에 그냥 1을 더하면 무슨 일이 벌어질까? 신기하게도 결과는 정확히 '다음 날 날짜'가 된다. 문자처럼 보이는 날짜에 어떻게 숫자를 더했는데 날짜가 하루 늘어날 수 있을까. 답은 간단하다. 엑셀에서 날짜는 애초에 문자가 아니라 숫자이기 때문이다.
날짜가 숫자로 저장된다는 사실 확인하기
날짜가 입력된 셀의 서식을 '일반'으로 바꿔보면 그 정체가 바로 드러난다. 2026-01-15라고 표시되던 셀이 갑자기 46037 같은 숫자로 바뀐다. 이 숫자가 바로 엑셀이 내부적으로 이 날짜를 저장하고 있는 실제 값, 즉 시리얼 넘버(일련번호)다. 화면에 "2026-01-15"라고 보이는 것은 앞서 TEXT 함수 편에서 다룬 것처럼, 이 숫자 위에 날짜 서식이라는 표시 규칙이 덧씌워진 결과일 뿐이다.
1900년을 기준으로 세는 시리얼 넘버 시스템
엑셀은(윈도우 버전 기준) 1900년 1월 1일을 시리얼 넘버 1로 정하고, 그날부터 하루가 지날 때마다 숫자를 1씩 늘려가는 방식으로 날짜를 표현한다. 46037이라는 숫자는 곧 "1900년 1월 1일로부터 46,037번째 되는 날"이라는 뜻이다. 날짜에 숫자를 더하거나 빼는 계산이 자연스럽게 되는 이유가 바로 여기에 있다. 날짜끼리의 덧셈·뺄셈은 사실 이 일련번호끼리의 평범한 산술 연산일 뿐이다.
=DATE(2026,1,15) + 30이 수식은 2026년 1월 15일의 시리얼 넘버에 30을 더한 것과 같으므로, 결과는 정확히 30일 뒤의 날짜인 2026년 2월 14일이 된다.
시간은 어떻게 표현될까 — 소수점 이하가 하루의 몇 분의 몇인지
날짜가 정수로 표현된다면, 시간은 그 정수의 소수점 이하 부분으로 표현된다. 하루 24시간을 1로 놓았을 때, 낮 12시는 하루의 정확히 절반이므로 0.5가 된다. 예를 들어 46037.5라는 값은 "2026년 1월 15일 낮 12시"를 의미한다. 날짜와 시간이 함께 입력된 셀을 다룰 때 정수 부분은 날짜를, 소수 부분은 시간을 나타낸다는 원리를 알아두면 INT나 MOD 같은 함수로 날짜와 시간을 분리해내는 것도 어렵지 않다.
실전에서 자주 쓰는 계산
=B2-A2 '두 날짜 사이의 일수 차이
=WEEKDAY(A2) '요일을 숫자로(1=일요일)
=TODAY() '오늘 날짜의 시리얼 넘버두 날짜의 차이를 구하는 계산이 별도의 특수한 함수 없이 그냥 빼기만으로 가능한 이유도, 결국 두 날짜가 각각 하나의 숫자이기 때문이다.
1900년 기준 시스템이 남긴 유명한 함정
이 시리얼 넘버 시스템에는 역사적으로 알려진 작은 버그가 하나 있다. 1900년은 실제로는 윤년이 아니었는데, 엑셀은 계산 편의를 위해 1900년 2월 29일이라는 존재하지 않는 날짜를 시리얼 넘버 60번으로 포함시켜버렸다. 이는 오래전 다른 소프트웨어와의 호환성을 맞추려다 생긴 의도적인 결함으로, 지금까지도 그대로 유지되고 있다. 1900년대 초반의 날짜를 다루는 특수한 상황이 아니라면 실무에 거의 영향을 주지 않지만, "엑셀 날짜 계산의 유명한 함정"으로 종종 언급되는 이야기다.
Q. 매킨토시용 엑셀도 같은 기준을 쓰나요?
기본적으로 매킨토시 버전은 1904년을 기준(0)으로 삼는 다른 시스템을 쓴다. 윈도우와 맥에서 만든 파일을 주고받을 때 날짜가 어긋나 보인다면 이 기준 차이가 원인일 수 있다.
Q. 음수 날짜도 가능한가요?
기준일(1900년 1월 1일) 이전의 날짜는 표현할 수 없다. 그 이전 날짜를 입력하면 엑셀은 이를 날짜가 아닌 일반 텍스트로 인식해버린다.
마무리
날짜가 결국 하나의 숫자라는 사실을 알고 나면, 날짜 관련 함수 대부분이 왜 그렇게 동작하는지 훨씬 명확하게 이해된다. 다음 글에서는 이 원리 위에서 두 날짜 사이의 차이를 구하는 DATEDIF 함수가, 단위(년·월·일)를 다루는 과정에서 어떤 함정을 만들어내는지 살펴본다.