이게 뭔가요?
엑셀에서 날짜가 45292 같은 숫자로 보일 때 실제 날짜로 바꿔줍니다. 반대로 날짜를 넣어 엑셀이 쓰는 숫자를 얻을 수도 있습니다.
엑셀은 날짜를 숫자로 저장합니다
엑셀에게 날짜는 1900년 1월 1일부터 며칠째인지를 뜻하는 숫자입니다.
| 일련번호 | 날짜 |
|---|---|
| 1 | 1900-01-01 |
| 45292 | 2024-01-01 |
| 45658 | 2025-01-01 |
셀 서식을 ’날짜’로 지정하면 엑셀이 알아서 날짜로 보여주지만, 서식이 풀리거나 CSV로 내보내거나 다른 프로그램으로 넘기면 숫자가 그대로 드러납니다.
소수부는 하루 중의 시각입니다. 0.5는 정오, 0.75는 오후 6시죠.
1900년 윤년 버그
엑셀에는 유명한 결함이 하나 있습니다. 1900년을 윤년으로 잘못 알고 있습니다.
1900년은 100으로 나눠떨어지지만 400으로는 안 되므로 윤년이 아닙니다. 그런데 엑셀 달력에는 존재하지 않는 1900년 2월 29일(일련번호 60)이 들어 있습니다.
초창기에 시장을 장악하고 있던 로터스 1-2-3이 이 버그를 갖고 있었고, 엑셀은 그 파일과 호환하려고 일부러 같은 결함을 따라 만들었습니다. 지금까지도 고치지 않은 이유는, 고치면 기존 파일의 1900년 초 날짜가 전부 하루씩 밀리기 때문입니다.
이 도구는 그 차이를 반영합니다. 일련번호 59 이하와 61 이상은 기준일이 하루 다릅니다.
1900 체계와 1904 체계
| 체계 | 0이 뜻하는 날 | 쓰는 곳 |
|---|---|---|
| 1900 | 1899-12-31 (사실상) | 윈도우 엑셀 기본 |
| 1904 | 1904-01-01 | 옛 맥 엑셀 |
맥에서 만든 오래된 파일을 열었더니 날짜가 4년 하루쯤 어긋나 보인다면, 1904 체계 파일일 가능성이 큽니다.
엑셀 안에서 고치려면
값 몇 개를 확인하는 게 아니라 열 전체를 고쳐야 한다면 엑셀에서 직접 하는 게 빠릅니다.
- 숫자가 보이는 셀을 선택
Ctrl + 1로 셀 서식 열기- 범주에서 날짜 선택
이 도구는 엑셀 밖에서 숫자를 만났을 때 — CSV, 데이터베이스, 프로그램 코드 — 쓰기 좋습니다.
주의할 점
- 변환은 브라우저 안에서만 이뤄집니다.
- 구글 스프레드시트도 같은 1900 체계를 쓰지만, 윤년 버그는 재현하지 않습니다. 1900년 초 날짜만 하루 차이가 날 수 있습니다.
- 파이썬·자바스크립트에서 엑셀 날짜를 다룰 때는 기준일을 1899-12-30으로 잡는 게 관례입니다. 일련번호 61 이상에서 맞아떨어지기 때문입니다.