본문 바로가기
Excel/엑셀 함수

엑셀] 날짜 표시하고 계산하기 - DATE

by excelnote2 2014. 1. 19.


엑셀에서 많이 사용하는 데이터 형식 중 하나가 날짜이다. 


날짜 관련 함수 중에서 NOW( )는 현재 시간을, TODAY( )는 현재 날짜를 나타내는데, 

아직까지 실무에서 별 도움이 안되는 함수 같다. ^^;;


왜냐하면 TODAY( )함수로 날짜를 입력 한 경우

그 셀은 매번 엑셀 파일을 연 날짜를 보여주기 때문이다. 

(표에 오늘의 날짜는? 이런 식으로 표현하면 도움이 될지도 모르지만..)




위 표처럼 TODAY()함수를 써서 저장하고 내일 파일을 열어보면 저 날짜 부분은 내일 날짜로 바뀌어 있을테니까....


오히려 날짜 입력에 있어서는 오늘 날짜를 입력하는 단축키가 더 실용적이다. 


Ctrl + ;(세미콜론) 은 현재 위치에 오늘 날짜를 입력하는 단축키이다. 





현재의 시간을 입력하는 단축키는 Ctrl + :(콜론) 인데 :을 입력하기 위해서는 Shift를 사용해야 하기 때문에

그냥 Ctrl + Shift + ;(세미콜론)으로 기억해도 괜찮다. 








날짜에서 제일 많이 사용하는 함수는 DATE( ), YEAR( ), MONTH( ), DAY( )  네가지이다. 


YEAR( ), MONTH( ), DAY( )는 각각의 년, 월, 일을 인수로 하나씩 받고

DATE( ) 함수는 연, 월, 일.. 세가지를 인수로 받는다. 





위 그림처럼 YEAR, MONTH, DAY는 날짜 형식으로부터 년, 월, 일 데이터를 추출해서 보여준다. 


DATE는 년, 월, 일에 해당하는 데이터를 사용하거나, YEAR( ), MONTH( ), DAY( )로 필요한 데이터를 추출하여 사용한다. 


다음은 DATE( )함수로 각 직원이 입사한 월의 첫날을 계산한 것이다. 

년과 월은 입사일 셀(B열)로부터 구하고 DAY는 1일로 입력했다.






그렇다면 입사한 월의 마지막 날은 어떻게 구할까?


DATE 함수는 인수로 자연수 범위 뿐 아니라 0이나 음수도 입력 가능하다. 

0은 숫자 하나를 빼는 것과 같은 의미이고, -1은 둘을 빼는 것과 같다. 

직접 확인해보면 다음과 같다.






DATE(2014, 1, 1) 은 예상한 것처럼 2014-01-01을 반환한다.

그 아래 DATE(2014, 1, 0)은 2014-01-01에서 하루 전날인 2013-12-31을 반환한다. 

이처럼 DAY 부분의 0은 하루 전날을 의미한다.

그래서 DAY 인수에서 -1은 이틀전인 2013-12-30을 반환하는 것이다. 


MONTH 인수에서의 0은 한 달 전을 의미한다.


이런 DATE 함수의 특성을 이용해서 

입사한 달의 마지막 날을 구하면 아래와 같다. 





날짜는 마지막 날이 30일, 31일 등 불규칙적이기 때문에 그 다음달을 구하고 거기서 하루를 빼는 방법으로 계산한다.

그래서 YEAR는 입사일로부터 그대로 받아오고, MONTH는 입사한 달 +1, DAY는 0을 입력해서 하루를 뺐다.





댓글