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

엑셀] 날짜 차이 구해서 년, 개월, 일 형식으로 계산하기 - DATEDIF

by excelnote2 2014. 1. 19.


엑셀에서 날짜간의 차이를 구하는 방법은 기본적으로 뺄셈이다.




엑셀은 1900년 1월 1일을 숫자 1로 시작해서 그 이후의 날짜를 숫자 형태로 기억하고 있다.




1부터 5까지 숫자를 쭉 입력하고 셀서식으로 날짜로 바꾸면 1900년 1월 1일부터 하나씩 늘어나는 것을 볼 수 있다.

(2014년 1월 19일은 1900년 1월1일로부터 41658번째 날이다)


그러면 근속년수를 00년 00개월 00일 형태로 표현하려면 어떻게 해야 할까??


퇴직일로부터 입사일을 빼면 근무일이 나오고

그 근무일수를 셀서식에서 00년 00개월 00일로 나타나도록 하면 될까???




17년 3개월 19일 ...이라는 계산결과가 맞는 것 같기도 하다. 정말 맞을까???





2014년 1월 1일 입사후 하루만 근무하고 2014년 1월 2일 퇴사한 경우를 생각하고 그대로 계산해보면 이상한 결과가 나온다.


1개월 1일. 즉 31일을 근무한 결과를 보여주는데.... 


결과가 이렇게 나오는 이유는 2014년 1월 2일에서 2014년 1월 1일을 뺀 결과값 "1"에 대해서 

셀서식으로 00년 00개월 00일로 바꾸면, 

보이는 형태만 그렇게 보일 뿐 

데이터는 "1" 을 1900년 1월 1일의 형태로 인식하고 

년도 부분을 뺀 "1월 1일"을 다만 "1개월 1일"의 형태로 바꿔서 보여주기 때문에 

원하는 결과를 얻을 수 없는 것이다. 






날짜의 차이를 00년 00개월 00일로 표현하기 위해서 사용하는 함수가

DATEDIF( ) 함수이다. 

(이 함수는 로터스같은 스프레드시트에서 쓰던 함수를 엑셀에서 사용하기 위해 제공하는 함수로,

마이크로소프트에서 정식으로 제공하는 함수가 아니기 때문에 도움말에도 안 나온단다. ^^;;)

(<수정> 전에는 도움말에 안보였는데 엑셀 2014 온라인 도움말에서는 보인다.)


DATADIF( )함수는 첫번째 인수로 시작일, 두번째 인수로 종료일, 세번째 인수로 표시방법에 대한 옵션을 표시한다. 

옵션은

"Y" - 두 날짜 차이의 년도만 표시

"M" - 두 날짜 차이를 개월로 표시(나머지 버림)

"D" - 두 날짜 차이를 날짜로 표시

"YM" - 년도로 계산한 부분은 제외하고 개월에 대한 나머지 표시

"MD" - 년도와 개월까지 계산한 부분은 제외하고 나머지 날짜 표시





DATEDIF 함수를 사용하면 처음 원했던 근무일수를 00년 00개월 00일 형태로 얻을 수 있다

(다만, 위 그림을 자세히 보면 알 수 있듯이 좀 야박(?)하게도 시작한 당일은 계산에 포함시키지 않는다.

1월1일 입사해서 1월2일 퇴사해야 근무일이 1일로 나온다. 

이런 경우 결과값으로 2가 필요하다면 맨 마지막 일수에 +1을 해야 한다)





댓글