숫자 1은 왜 1899년 12월 31일일까?
엑셀이나 구글 시트, 태블로에서 날짜를 숫자로 변환하면 1이라는 값이 특정 날짜를 의미하게 됩니다. 그런데 엑셀에서는 1 = 1900년 1월 1일인 반면, 구글 시트와 태블로에서는 1 = 1899년 12월 31일로 표시됩니다. 같은 숫자임에도 날짜가 다르게 나오는 이유는 무엇일까요?
날짜를 숫자로 계산하는 방식
스프레드시트 프로그램에서는 날짜를 계산 가능하도록 기준일로부터의 일수(시리얼 넘버)로 변환합니다. 예를 들어:
- 엑셀:
1 = 1900-01-01,2 = 1900-01-02 - 구글 시트:
1 = 1899-12-31,2 = 1900-01-01
이처럼 두 프로그램은 기준일이 서로 다르며, 그 차이는 1900년 2월 29일이라는 ‘존재하지 않는 날짜’에서 비롯됩니다.
엑셀: 윤년 오류를 포함한 역사적 호환성
엑셀은 초기 스프레드시트인 Lotus 1-2-3와의 호환성을 유지하기 위해 1900년을 윤년으로 잘못 간주했습니다. 실제로는 윤년이 아님에도, 1900-02-29라는 날짜를 포함하고 있는 것입니다.
이로 인해 엑셀의 날짜 시리얼 넘버는 1900년 3월 1일 이전까지는 하루씩 밀린 값을 반환합니다.
구글 시트: 정확한 그레고리력 기준 적용
반면 구글 시트는 이 윤년 오류를 제거하고, 실제 달력에 맞춘 기준을 사용합니다. 따라서 시리얼 넘버 60은 1900년 2월 28일이고, 61은 1900년 3월 1일입니다. 이로 인해 기준점 자체가 엑셀보다 하루 빠른 1899년 12월 31일로 설정되어 있습니다.
| 시리얼 넘버 | 엑셀 날짜 | 구글 시트 날짜 |
|---|---|---|
| 1 | 1900-01-01 | 1899-12-31 |
| 59 | 1900-02-28 | 1900-02-27 |
| 60 | 1900-02-29 (존재하지 않음) | 1900-02-28 |
| 61 | 1900-03-01 | 1900-03-01 |
💡
엑셀과 구글 시트의 날짜는 1900년 3월 1일 이후부터는 동일하게 계산됩니다.