엑셀 함수 > 날짜 및 시간 함수 > DATEDIF 함수 - 날짜 사이의 차이값 구하기

DATEDIF 함수 - 날짜 사이의 차이값 구하기

엑셀의 DATEDIF 함수는 두 날짜 사이의 차이 값(연도, 월, 일수)을 구해줍니다. 근속연수를 구할 때 많이 사용하지만 날짜 값에 따라 계산이 잘못되는 버그가 있으니 주의해서 사용해야 합니다.

 

구문(Syntax)

DATEDIF

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 인수 사용 시 차이 값 계산

DATEDIF 함수로 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 인수 사용 시 차이 값 계산

DATEDIF 함수로 MD, YM, YD 인수 사용 시 차이 값 계산

unit 인수가 'MD'(월/연도 무시하고 일 수 반환)일 때 버그가 발생하는 경우

=DATEDIF(B21,C21,"MD") => -2
2022-01-31 ~ 2022-03-01 사이는 월/연도 무시하고 1일이 맞는데도 불구하고 -2가 반환됨(DATEDIF 함수의 버그), 2월에서 3월로 넘어갈 때 발생함

 

 

근속 기간 구하기

실무에서 많이 사용하는 근속 기간을 구하는 예제입니다.

근속 년, 월까지만 구하고 'MD'인수는 버그가 있으므로 근속 일 수는 DATEDIF 함수를 사용하지 않고 수작업으로 계산하는 것이 바람직합니다.

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월로 넘어갈 때 발생

 

 


관련 글

YEARFRAC 함수 사용법 YEARFRAC 함수 사용법 - 엑셀 YEARFRAC 함수의 이름은 Year와 Fraction이 합쳐진 형태입니다. Fraction은 부분, 일부, 분수의 뜻이 있으므로 YEARFRAC은 년 중의 일부분, 즉 비율을…

YEARFRAC 함수 사용법 더 보기 »

DAYS 함수 사용법 DAYS 함수 - 날짜 사이의 일수 구하기 - 엑셀의 DAYS 함수는 두 날짜 사이의 일수를 구해줍니다. 이름이 비슷한 DAY 함수가 있는데 이 함수는 날짜 값에서 날짜 부분만 숫자로…

DAYS 함수 - 날짜 사이의 일수 구하기 더 보기 »

DAYS360 함수 - 360일 기준 날짜사이의 일수 구하기 - 엑셀 DAYS360 함수는 그 이름에서 유추할 수 있듯이 일 년을 360일로 하고 날짜 사이의 일 수를 계산해 줍니다. 1개월을 30일로…

DAYS360 함수 - 360일 기준 날짜사이의 일수 구하기 더 보기 »

 

엑셀웍스 책 출간 안내

그동안 엑셀웍스에 올린 '엑셀 강좌', '함수 사용법', 여러 '실무 예제'에서 핵심만 뽑아 '된다! 엑셀 수식 & 함수' 책으로 출간하였습니다.

엑셀웍스 책 출간안내  자세히 보기

온라인 구매처: 예스24   교보문고   알라딘 

댓글 남기기

Scroll to Top