과연 엑셀은 어떤 식으로 날짜와 시간을 처리할까? '처리'라는 단어가 익숙하지 않을 수 있다. 엑셀이 날짜를 다루는 방법에 대한 학습을 하는 시간이다.

날짜!

  1. A1셀에 2015-05-31 을 입력
  2. A1셀의 서식을 '일반'으로 변경

서식을 일반으로 변경 42155 확인!

A1셀의 42155 를 확인할 수 있다. 2015-05-3142155 는 어떤 관계일까? 정답부터 얘기하면 엑셀의 날짜는 숫자와 1:1 대응하게 구성되어 있다. 1900-01-01 부터 1씩 증가하도록 되어 있다.

  • 1900-01-01 : 1 (최소)
  • 1900-01-02 : 2
  • 날짜 하루마다 숫자도 1씩 증가한다.
  • 2015-05-31 : 42155
  • 9999-12-31 : 2958465 (최대)

이런 형태로 구성되어 있다. 기억해야 할 것은 간단하다. 날짜는 숫자이다. 숫자는 날짜로 표현 될 수 있다. 예를 들어 숫자 3을 써놓고 서식을 날짜로 바꿔보자. 1900-01-03 이라고 나올 것이다. 문제를 풀어보자!

2015-05-31 다음날인 2015-06-01을 구하려면?
[A1] = 2015-05-31
[A2] = A1 + 1
아래 수식처럼 입력하면 A3 셀의 값은 12가 된다. 왜 12가 나오는지 설명해보자.
[A1] = 2015-05-24
[A2] = 2015-06-05
[A3] = A2 - A1
결국은 숫자의 뺄셈의 결과이다. 그리고 날짜는 연속된 숫자로 표현되기 때문에 두 날짜의 차이를 구할 수 있다.
[A1] = 2015-05-24 = 42,148
[A2] = 2015-06-05 = 42,160
[A3] = A2 - A1 = 42,160 - 42,148 = 12
년, 월을 입력 받고, 말일을 출력하는 함수를 작성해보자.
두 셀에 2015, 7 이 각각 입력되어 있으면 세 번째 셀에 2015-07-31 이라고 출력되면 된다.
Date 함수 사용법은 추후 다룰 예정이지만, 앞으로 자주 방문할 사이트 를 참조하길 바란다. 이 방법 말고도 많은 방법이 있겠지만 나는 아래 함수가 가장 좋아 보인다.
[A1 (년)] = 2015
[A2 (월)] = 5
[A3 (정답1)] = Date(A1, A2 + 1, 1) - 1 // 이번 시간에서 배운 정석. 날짜를 구한 뒤 1을 뺀다.
[A4 (정답2)] = Date(A1, A2 + 1, 0) // 내가 주로 사용하는 방법
1900-01-01 이전의 날짜를 처리하려면 어떻게 해야 할까?
구글에 검색해 보았다. 특별히 좋은 방법은 없는 것 같다. 상황에 맞게 적절히 응용해서 사용하면 될 것 같아 보인다.

시간

시간에 대한 설명은 짧게 하고 넘어가려고 한다. 절대 글 쓰기 힘들어서 그러는 것은 아니다. 날짜가 정수의 영역이라면 시간은 실수의 영역이다. 표현이 적절한진 모르겠다. 0 ~ 1 사이의 값이 시간을 나타낸다. 원리는 날짜와 같다. 하루는 86,400 초이다. 따라서 엑셀의 시간의 1초 = 1 / 86,400 ≒ 0.0000115741 이다. 0.5 라면 정오를 의미한다. 밤 11시 59분 59초는 0.999988425925926 으로 표현되는 것 같다.

  • 1초 = 1 / 86,400 ≒ 0.0000115741
  • 2초 = 2 / 86,400
  • 1분 = 60 / 86,400
  • 2시 3분 15초 = 7,395 / 86,400
  • 낮 12시 = 43,200 / 86,400 = 0.5
  • 23시 59분 59초 = 86,399 / 86,400 ≒ 0.9999884259
86,399 / 86,400는 23시 59분 59초로 표현 될 수 있다고 하였다. 그렇다면 1초 증가한 86,400 / 86,400이 의미하는 것은 무엇일까?
정수가 되는 순간 날짜로 인식 된다. 1은 1900년 1월 1일을 의미한다.

마무리

경험상 시간보다는 날짜를 더 많이 접하게 될 것이다. 사실 엑셀을 사용하면서 숫자-날짜의 관계를 알아야만 하는 경우는 많지 않다. 하지만 난 이 사실을 꼭 알아야 한다고 생각한다. 그 이유는 가끔 발생하는 당황스러운 일들을 잘 대처하기 위해서이다. 자주 봤던 당황스러운 경우는 숫자를 입력하고 싶은데 자꾸 숫자가 날짜로 바뀌어서 보이는 경우이다. 나는 45를 입력했는데, 1900-02-14로 바뀌는 경우를 말하는 것이다. 이럴 때 숫자-날짜의 관계를 모르면 엑셀을 껐다 켜보기도 하고 다른 셀을 복사해서 붙여 넣는 식으로 해결하기도 한다. 그저 셀서식을 일반으로 바꾸면 되는 것을...