파일 다운로드 : abyul_Formula_datedif.xls
▲ 질문에 대한 답변 | |||||||||||
질문 : http://www.abyul.com/zbxe/67407 | |||||||||||
작성자 : 아별닷컴(http://abyul.com/) 주인장 오주원 | |||||||||||
입사일 | 2007-08-14 | ||||||||||
퇴사일 | 2009-11-25 | ||||||||||
▲ 근무기간(단계별 표시) | |||||||||||
* 2년 3개월 11일을 근무함 | |||||||||||
년 | 2 | Y | =DATEDIF($C$6,$C$7,"Y") | ||||||||
월 | 3 | YM | =DATEDIF($C$6,$C$7,"YM") | ||||||||
일 | 11 | MD | =DATEDIF($C$6,$C$7,"MD") | ||||||||
▲ 근무기간(누적으로 표시) | |||||||||||
* 만 2년 근무, 만 27개월 근무, 834일 근무함 | |||||||||||
년 | 2 | Y | =DATEDIF($C$6,$C$7,"Y") | ||||||||
월 | 27 | M | =DATEDIF($C$6,$C$7,"M") | ||||||||
일 | 834 | D | =DATEDIF($C$6,$C$7,"D") | ||||||||
▲ DATEIF 함수 도움말 | |||||||||||
=DATEDIF 함수는 워크시트 함수로 두 날짜사이의 기간을 계산하는 함수다. | |||||||||||
이상하게도 이 함수는 엑셀의 내장함수 임에도 불구하고 함수 리스트 및 도움말에 나오지 않는다. | |||||||||||
=DATEDIF 의 구문 구성은 다음과 같다. | |||||||||||
=DATEDIF (Date1, Date2, Interval) | |||||||||||
여기서 | |||||||||||
Date1 : 첫 번째 날짜로 엑셀의 표준 일련번호 형식이다. | |||||||||||
Date2 : 두 번째 날짜로 엑셀의 표준 일련번호 형식이다. | |||||||||||
Interval : 함수의 결과 값으로 반환할 시간단위 | |||||||||||
Date1은 Date2보다 앞 선 날짜이어야 한다. 그렇지 않으면 이 함수는 #NUM!에러를 낸다. | |||||||||||
Date1이나 Date2가 날짜가 아니면 #VALUE! 에러가 난다. | |||||||||||
Interval은 아래의 항목중 하나여야 한다. | |||||||||||
< Interval Code 설명 > | |||||||||||
코드 | 의 미 | 해 설 | |||||||||
"m" | Month | 두 날짜 사이의 개월 수 | |||||||||
"d" | Days | 두 날짜 사이의 일 수 (날짜수) | |||||||||
"y" | Years | 두 날짜 사이의 연 수 | |||||||||
"ym" | Months Excluding Year | 두 날짜 사이의 월 수로, 두 날짜가 같은 해에 있다고 가정 | |||||||||
"yd" | Days Excluding Year | 두 날짜 사이의 날짜 수로, 두 날짜가 같은 해에 있다고 가정 | |||||||||
"md" | Days Excluding Months And Years | 두 날짜 사이의 날짜 수로, 두 날짜가 같은 해, 같은 월에 있다고 가정 | |||||||||
=DATEDIF 함수에 Interval인수를 문자열로 입력을 하려면 아래의 예와 같이 따옴표를 사용해야 한다. | |||||||||||
예) =DATEDIF(A1, NOW(), "d") | |||||||||||
그러나 Interval 인수가 워크시트의 셀에 들어 있다면 해당 셀 주소를 입력하면 된다. | |||||||||||
예) =DATEDIF(A1, NOW(), C1) | |||||||||||
▲ DATEIF 함수의 버그.. 오류.. | |||||||||||
이 함수는 도움말에도 안 나오는 버림받은 함수지요..
기존 스프레드시트프로그램과의의 호환성 때문에 있다고 하지요..
따라서 몇가지 버그가 있습니다.
한달이라고 인식하는 기준의 문제인데요.. 특히 윤달, 2월달, 31일이 만땅인 달과 30일이 만땅인 달에 대한 계산 차이.. 등등
이러한 문제점을 알고 있어야 혹시모를 실수를 방지할 수 있습니다.
간단한 예를 들어보겠습니다.
* 3월 31일부터 4월 30일까지의 기간을 1달로 인식하지 않습니다.
시작일 |
종료일 |
개월수 | |
2009-03-30 |
2009-04-30 |
1 | |
2009-03-31 |
2009-04-30 |
0 |
시작일 |
종료일 |
개월수 |
일 수 |
2009-01-30 |
2009-02-28 |
0 |
29 |
2009-02-01 |
2009-03-01 |
1 |
28 |
댓글 '5'
엑셀의 Datedif 함수의 도움말은 없으나..
참고할 만한 Visual Basic의 DateDiff함수를 참고해보세요..
http://msdn.microsoft.com/ko-kr/library/b5xbyt6f(v=vs.90).aspx