[엑셀] 지난 달, 다음 달 입력하기 EDATE() EOMONTH()
가끔 지난 달, 다음 달, 두 달 전, 세 달 전과 같이 날짜 중 월 부분만 필요할 때가 있다.
그럴 땐 EDATE() 나 EOMONTH() 함수를 사용하면 편리하다.
두 함수 모두 두 번째 인자로 변화할 개월 수를 받는데,
한달 전은 -1, 한달 후는 1 과 같이 입력하면 된다.
A5에 TODAY()를 입력하고, 위로 EDATE(셀, -1)을 입력한 결과는 다음과 같다.
한달 전의 같은 날짜를 반환해 주는 것을 알 수 있다.
두달 후의 같은 날짜는 EDATE(셀, 2) 와 같이 입력한다.
월에 해당하는 숫자만 필요하다면 범위를 잡고 Ctrl + 1 을 눌러 셀 서식에 들어간 후
(참고: 2016/09/22 - [엑셀] - [엑셀] 셀 내용에 큰따옴표 넣기 (표시 형식))
사용자 지정에서 M"월" 혹은 MM"월" 을 입력하면
(전자는 1월, 후자는 01월에 해당)
깔끔하게 숫자만 얻을 수 있다.
EOMONTH() 는 EDATE() 와 거의 동일하나, 해당 월의 맨 마지막 날짜를 반환해 준다는 특징이 있다.
즉, 다음과 같이 EDATE()를 EOMONTH() 로 교체하면
지난 달인 6월을 반환해 주는 것은 맞는데, 오늘 날짜가 아니라 6월의 마지막 날을 반환해 주는 것을 알 수 있다.
어차피 날짜 중 월에 해당하는 부분만 뽑아서 사용할 경우에는 크게 차이가 없다고 보아도 되겠다.
혹 EDATE()에서 없는 날짜(예를 들어 7/31의 한 달 전은? 6/31 ??)를 출력해야 할 경우 에러가 나지 않을까 생각할 수 있지만
다음을 보면 EDATE()도 그리 융통성 없이 처리하지는 않는 것을 알 수 있다.
위와 같이 A7 에 2018-07-31을 입력 후 위로 한 달씩 감하도록 수식을 구성할 경우
31일이 없는 달은 자동으로 가장 마지막 날짜를 반환해 주는 것을 알 수 있다.