본문 바로가기

컴퓨터

[엑셀] 날짜의 함정: 날짜를 빼기 했더니 이상한 값이 나오네?

반응형

주차요금 계산 문제를 풀기 위해 hour(출차시간-입차시간), minute(출차시간-입차시간)으로 주차시간을 계산했던 후라이,

근무년수를 구해야 하는 문제에서 똑같이 year(오늘날짜-입사일자)를 하자 엉뚱한 수가 반환되는데!

 

예시.  year( today() - 입사일자 ) = 1901 ???? 도깨비도 아니고 천년을 넘게 일을 해?!

 

똑같은 논리흐름인 것 같은데 왜 날짜는 안 되는 걸까?


엑셀에서 날짜는 각각 일련번호, serial number가 할당되어있다. (1900년 1월 1일부터 일련번호 1로 시작)

날짜의 표시형식을 날짜→일반으로 바꿔보면 해당 날짜의 일련번호를 확인할 수 있다.

사람의 입장에서 보기 편하라고 표면상 날짜의 형태로 보여주는 것이지 엑셀은 날짜를 일련번호를 통해 이해하고 계산한다.

 

그러므로

 

    2024년 10월 8일

) 2023년 10월 8일

          1년                  이 나오는 것이 아니라

 

각 날짜의 일련번호의 차에 해당하는 일련번호를 가진 날짜를 반환하는 것이다.

 

    45573  (2024년 10월 8일)

) 45207  (2023년 10월 8일)

        366  (1900년 12월 31일)

 

기대 : year(2024년 10월 8일 - 2023년 10월 8일) = 1

실제 : year(2024년 10월 8일 - 2023년 10월 8일) = 1900

 

따라서 우리가 원하는 결과를 갖기 위해서는 각각의 날짜에 year()을 씌워 계산해야 한다.

year(2024년 10월 8일) - year(2023년 10월 8일) = 2024 - 2023 = 1

반응형