본문 바로가기
self.발표자료 준비

[Excel] 날짜 계산하는 방법(더하기, 빼기, 한 달 더하기 함수, 윤달)

by 톤토니 2023. 7. 9.
반응형

 

엑셀 날짜계산방법

 

이번 시간에는 날짜에서 일, 월, 년을 더하거나 빼는 것을 알아보자.

 

 

엑셀이 날짜를 숫자로 취급한다는 것은 저번 글을 간단하게 통해 알 수 있었다.

아직 못보신 분들은 아래 링크의 글을 먼저 확인하고 오는 것을 추천한다.

 

 

 

엑셀에서는 하루를 1로 취급하니 당연히 하루를 더하거나 뺄때는 간단하게 날짜셀  ±1을 해주면 아주 간단하다.

왼쪽 - 현재 날짜에 +1 결과 / 오른쪽 현재 날짜에 -1 결과

 

그렇다면 한 달은 당연히 한 달만큼에 해당하는 일 수를, 일 년은 365로 계산해주면 된다.

 

왼쪽 - 현재 날짜에 +31 결과 / 오른쪽 - 현재 날짜에 -365 결과

 

 

그런데 여기서 아주 약간의 문제점을 발견했을 수 있다.

바로 한 달을 계산할 때 이 한 달은 모든 달에서 동일하지 않다는 것이다.

보통 30일과 31일이 번갈아 가면서 나타나고 28일이라는 특수한 달도 있다.

 

매번 계산하고 싶은 달이 몇일까지 있는 지 확인하고 30을 더할 지 31을 뺄 지를 결정하는 것은 매우 번거롭고 귀찮다.

그리고 그것은 엑셀을 쓰는 의미가 없다.

 

엑셀에서는 이러한 문제를 해결해 줄 좋은 함수가 존재한다.

 

 

1. EDATE 함수로 달(Month) 더하기

아래 그림에서 보는 것처럼 Edate함수는 "Start_Date"와 "Months" 두 가지의 인수를 입력해야 된다.

Start_Date는 계산에 사용된 날짜셀을 입력해주면 되고

Months는 몇달을 더할건지는 써주면 된다.

아래 그림에서는 현재 날짜에 한 달을 더해주었다.

왼쪽 - Edate 사용법 / 오른쪽 - Edate(날짜, 1) 결과

 

 

과연 한 달을 구성하는 일 수가 다를 때에도 잘 적용되는지 확인해보면 정확히 계산됐다.

2달을 더하고 싶다면 당연히 "1"이 아닌 "2"를 넣어주면 된다.

 

왼쪽 - Edate(날짜, 1) 결과 / 오른쪽 -  Edate(날짜, 2) 결과

 

 

 

2. EDATE 함수로 달(Month) 빼기

그렇다면 한 달 또는 몇 달을 빼는 것은 어떻게 할까?

아주 쉽게 빼고 싶은 달 숫자 앞에 "-"기호를 추가하면 된다.

 

2023-01-01에서 한 달을 뺐을 때, 2022-12-01의 결과값을 보여주며 정확히 계산된 것을 알 수 있다.

 

왼쪽 - Edate(날짜, -1) 결과 / 오른쪽 -  Edate(날짜, -3) 결과

 

 

 

 

 

3. EDATE 함수로 연도(Year) 더하기, 빼기

Edate로 달을 더하거나 빼는 것을 잘 알아보았다.

그렇다면, Edate로 연도를 더하거나 빼는 방법은 무엇일까?

 

1년은 12개월로 되어있다. 그렇다면 2년은 24개월, 3년은 36개월로 12개월의 배수로 되어있으니

더하거나 빼고 싶은 연도 수에 곱하기 12를 하면 된다.

 

1년 더하기 => 12*1   / 1년 빼고 => -12*1

2년 더하기 => 12*2   / 1년 빼고 => -12*2

3년 더하기 => 12*3   / 1년 빼고 => -12*3

 

 

왼쪽 - Edate(날짜, 12*1) 결과 / 오른쪽 -  Edate(날짜, -12*4) 결과

 

 

 

 

4. 번외 : EDATE 함수는 윤달을 어떻게 계산할까?

우선 연도를 계산할 때 윤달을 잘 반영해서 결과값을 표시한다.

결과값이 윤달이 없는 해인 경우는 2월 28일로 윤달이 있는 해는 그대로 2월 29일로 표시된다.

 

 

윤달이 있는 해에서 Edate 계산 결과

 

 

윤달이 없는 해에서 윤달인 척 계산을 하면 어떻게 될까?

윤달이 있는 해인 2024-01-29일에서 1달을 더했을 경우 2월 29일 결과를 보여주지만

윤달이 없는 해인 2023년도에 2023-02-29로 기입하고 한달을 더해서

윤달이 있는 2024-02-29를 나타낼 거라고 생각했지만 오류표시가 된다.

결과값이 맞게 표현되도록 Edate함수를 써도 Start_Date가 잘못된다면 Edate함수는 오류가 난다는 것을 알 수 있다.

 

 

반응형

댓글