본문 바로가기
엑셀

[엑셀] 지난 달, 다음 달 입력하기 EDATE() EOMONTH()

by LightBlogger 2018. 7. 4.

가끔 지난 달, 다음 달, 두 달 전, 세 달 전과 같이 날짜 중 월 부분만 필요할 때가 있다.


그럴 땐 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일이 없는 달은 자동으로 가장 마지막 날짜를 반환해 주는 것을 알 수 있다.




반응형

댓글