티스토리 뷰
엑셀을 사용하다 보면 근속년수 계산 등 날짜와 날짜사이 연, 월, 일 의 날짜 차이 계산을 해야할 경우가 종종 발생 합니다.
그럴 경우 엑셀 함수 중 DATEDIF 함수를 사용하여 연, 월, 일 사이의 날짜 차이를 계산해 낼 수가 있습니다.
만으로 계산하기 때문에 1년에 못미치면 0이 되고, 30일, 31일을 채우지 못하면 1달로 인식하지 못합니다.
이런 경우 N을 사용하여 값을 보정할 수 있습니다.
1.DATEDIF 함수
=DATEDIF(시작일, 종료일, "단위")
시작일은 처음 시작된 날짜를 지정합니다. 당연히 종료일보다 작아야 겠죠.
종료일은 마지막 종료된 잘짜를 지정합니다.
"단위"는 연, 월, 일에 해당하는 "Y, M, D, YM, MD, YD" 등을 지정합니다. 단위를 입력하실때는 "쌍따옴표"를 꼭 해주셔야 합니다.
Y는 연도를 계산하고,
M은 개월수를 계산하고,
D는 일자를 계산하고,
YM은 연을 무시하고 남은 월수만 계산,
MD는 연과 월을 무시하고 남은 일수만 계산,
YD는 연을 무시하고 남은 일수만 계산 합니다.

단위별로 세부적으로 설명 드리겠습니다.
"Y"는 연도를 계산합니다.
만으로 계산하기 때문에 1년이 나오게 됩니다.
함수는 =DATEDIF(B3,C3,"Y")
결과값은 1년 이겠죠.

"M"은 개월수를 계산합니다. 마찬가지로 만으로 계산하므로 23개월이 나오게 됩니다.
함수는 =DATEDIF(B3,C3,"M")
결과값은 23개월 입니다.

"D"는 일수를 계산합니다.
함수는 =DATEDIF(B3,C3,"D")
결과값은 729일 입니다.

"YM"은 연을 무시하고 남은 개월수를 계산합니다.
1년은 버리고 남은 개월수인 11개월만 표시하는 것입니다.
함수는 = DATEDIF(B3,C3,"YM"). 결과값은 11입니다.

"MD"는 연과 월을 무시하고 남은 일수만 계산합니다.
1년 11개월을 버렸으니 남은 일수 30일만 표시합니다.
함수는 =DATEDIF(B3,C3,"MD"). 결과값은 30입니다.

"YD"는 연을 무시하고 남은 일수를 계산합니다.
1년을 버리고 남은 기간 364일을 일수로 표시하는 것입니다.
함수는 =DATEDIF(B3,C3,"YD"). 결과값은 364입니다.

2. N 함수 + DATEDIF 함수
서두에 잠깐 언급 했듯이 DATEDIF 함수는 만으로 날짜를 계산하기 때문에 1년에 가깝게 예를들어 11개월 28일이어도 0년으로 인식합니다.
이럴경우 N함수를 중첩 사용하여 원하는 날짜 이상이 경과시 1일, 1달, 1년으로 인식 시킬 수 있게 됩니다.
아래표에서 시작일이 2017년 1월 1일, 종료일이 2017년 12월 31일 입니다.
DATEDIF 함수를 사용하여 개월수를 구해보면 표에서와 같이 11개월로 인식하게 됩니다.
이와같은 상황에서 날짜가 n일 이상이면 1달로 인식시키고 싶을 경우 N함수를 사용합니다.
그렇게 되면 12개월로 값이 변하게 되겠죠.

=DATEDIF(B3,C3,"M")+N(DATEDIF(B3,C3,"D")>=360)
먼저 =DATEDIF(B,3C3,"M")을 입력하여 달을 구하고, 뒤에 더하기를 하여 N함수를 입력합니다.
N(DATEDIF(B3,C3,"D")>=360) 시작일과 종료일의 일자를 구해서 그 일자가 360일 이상이거나 같으면 1의 값을 나타내라는 의미 입니다.
2017년 1월 1일 부터 2017년 12월 31일까지는 364일이므로 360일 이상이 되어서 1의 값이 나타날 것입니다.
결과적으로 11개월 + 1이 더해져 12개월이 되는 것입니다.
만약 N(DATEDIF(B3,C3,"D")>=400) 이라고 입력했다면 400일보다 값이 큰 경우 1의 값이 나타나므로 0이 표시될 것입니다.

값이 12개월로 표시되었습니다.

이상으로 엑셀 DATEDIF 함수를 사용하여 연, 월, 일 날짜 차이를 계산해 보았고, N 함수를 중첩하여 사용하는 방법에 대하여 소개해 드렸습니다.
