엑셀의 DATEDIF 함수는 두 날짜 사이의 차이 값(연도, 월, 일수)을 구해줍니다. 근속연수를 구할 때 많이 사용하지만 날짜 값에 따라 계산이 잘못되는 버그가 있으니 주의해서 사용해야 합니다.
구문(Syntax)
DATEDIF(start_date, end_date, unit)
두 날짜 사이의 차이 값(일, 월, 연도 수)을 구해준다.
인수
- start_date : 시작일
- end_date : 종료일
- unit : 반환 값 종류
Y – 연도 수
M – 개월 수 (버그가 있으므로 사용 시 주의 필요)
D – 일 수
MD – 일 수(월/연도 무시, 버그가 있으므로 사용 시 주의 필요)
YM – 개월 수(일/연도 무시)
YD – 일 수(연도 무시)
함수 사용 시 주의사항
- DATEDIF 함수는 Lotus 1-2-3부터 사용되는 함수로 호환성을 위해 지원되지만, 공식적으로 문서화되어 있지 않아 함수 입력시 인수가 표시되지 않습니다.
- unit 인수 M과 MD 사용 시 입력되는 날짜 값에 따라서 잘못된 결과가 반환될 수 있으므로 가능하면 M, MD 인수는 사용하지 않는 것이 좋습니다.
- 두 날짜 사이의 차이를 구할 때, 예를 들어 =DATEDIF("2022-01-01","2022-01-03","D")를 입력하면 2일이 반환되는데 2일을 그대로 사용할 것인지 1을 더해서 3일로 할 것인지는 업무의 규칙에 따라 달라질 수 있습니다. 예를 들어 기간으로 급여를 지급하는데 근무일수를 시작일부터 종료일까지 3일로 계산해야 한다면 수식의 결과에 1을 더해 주어야 합니다.
사용 예
Y, M, D 인수 사용 시 차이 값 계산
unit 인수가 'M'(개월 수 반환)일 때 버그가 발생하는 경우
=DATEDIF(B11,C11,"M") => 0
2022-01-31 ~ 2022-02-28 사이는 만 기준 1개월인데도 불구하고 0이 반환됨(DATEDIF 함수의 버그)
시작일의 날짜 값(31)이 종료일의 날짜값(28)보다 큰 경우에 발생(종료월이 2, 6월 등 1개월이 28, 30일로 짧은 달인 경우)
MD, YM, YD 인수 사용 시 차이 값 계산
unit 인수가 'MD'(월/연도 무시하고 일 수 반환)일 때 버그가 발생하는 경우
=DATEDIF(B21,C21,"MD") => -2
2022-01-31 ~ 2022-03-01 사이는 월/연도 무시하고 1일이 맞는데도 불구하고 -2가 반환됨(DATEDIF 함수의 버그), 2월에서 3월로 넘어갈 때 발생함
근속 기간 구하기
실무에서 많이 사용하는 근속 기간을 구하는 예제입니다.
근속 년, 월까지만 구하고 'MD'인수는 버그가 있으므로 근속 일 수는 DATEDIF 함수를 사용하지 않고 수작업으로 계산하는 것이 바람직합니다.
=DATEDIF(B31,C31,"Y") => 3
2019-01-31 ~ 2022-03-01 사이는 만 기준 3년
=DATEDIF(B31,C31,"YM") => 1
2019-01-31 ~ 2022-03-01 사이는 일/연도 무시하고 1개월
=DATEDIF(B31,C31,"MD") => -2
2019-01-31 ~ 2022-03-01 사이는 월/연도 무시하고 1일이 맞는데도 불구하고 -2가 반환됨(DATEDIF 함수의 버그), 2월에서 3월로 넘어갈 때 발생
관련 글