오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
날짜 및 시간
DATEDIF 함수
함수 요약

엑셀 DATEDIF 함수는 두 날짜 사이의 기간을 연도, 월, 일 등 다양한 단위로 계산하는 함수입니다.

함수 구문
=DATEDIF(시작일, 종료일, 단위)
시작일
-
기간을 계산할 시작 날짜입니다.
종료일
-
기간을 계산할 종료 날짜입니다.
단위
-
기간을 계산할 단위입니다.
  • Y : 연도, M : 월, D : 일
  • MD : 월과 연도를 무시한 순수 일차이
    → 2018-01-01 과 2018-02-03 사이의 "MD" 계산값은 '2' 를 반환
  • YM : 일과 연도를 무시한 개월 차이
    → 2018-01-01과 2019-04-01 사이의 "YM"은 '3'를 반환
  • YD : 연도를 무시한 날짜차이
    → 2018-01-01과 2019-02-03 사이의 "YD"는 '33'을 반환
  • "MD" 인수는 잘못된 결과를 반환할 수 있어 사용하지 않는 것을 권장합니다.
상세 설명

엑셀 DATEDIF 함수는 시작일과 종료일 사이의 기간을 연도, 월, 일 등 다양한 단위로 계산하는 함수입니다. 원래는 LOTUS1-2-3에서 사용되던 함수였으나 호환성을 위해 엑셀에서 추가로 지원하고 있습니다.
* LOTUS1-2-3 의 호환성 함수이므로 함수 목록에는 표시되지 않으며, 함수의 인수도 자동으로 완성되지 않습니다.

엑셀 datedif 함수
인수 자동 완성을 제공하지 않습니다.

DATEDIF 함수는 두 날짜 사이의 꽉찬 기간을 계산(꽉차지 않을 경우 내림)합니다. 따라서 근속 년수, 나이, 감감상각 기간등 시작일을 기준으로 값이 증가하는 경우 DATEDIF 함수를 사용할 수 있습니다.

=DATEDIF("2022-01-01","2023-02-01","Y")
/ / 결과로 1을 반환합니다. (1년이 꽉차지 않을 경우 내림)
=YEARFRAC("2022-01-01", "2023-02-01")
/ / 1.08333을 반환합니다. (꽉차지 않은 1년은 소수점 처리)

만약 두 날짜 사이의 정확한 기간을 계산해야 할 경우 YEARFRAC 함수를 사용하면 편리합니다. 또한 두 날짜 사이의 공휴일과 주말을 제외한 근무일수를 계산할 경우에는 NETWORKDAYS 함수를 사용합니다.


DATEDIF 함수 사용시 주의사항은 아래 1분 영상강의를 참고하세요!


DATEDIF 함수 간단 예제
1) 직원의 근속 연수 계산하기
=DATEDIF("2021-03-01", TODAY(), "Y")
/ / 2021년 3월 1일에 입사한 직원의 근속 연수를 계산합니다.
2) 프로젝트 진행 개월 수 구하기

A2셀에 프로젝트 시작일, B2셀에 종료일이 작성된 경우 아래 함수는 두 날짜사이의 개월 차이를 계산합니다.

=DATEDIF(A2, B2, "M")
/ / 두 날짜 사이의 개월 수를 구합니다.

DATEDIF 함수 상세 가이드
1) DATEDIF vs YEARFRAC 함수 비교

DATEDIF 함수는 꽉 찬 기간을 계산하지만, YEARFRAC 함수는 두 날짜 사이의 정확한 기간을 계산합니다.

=DATEDIF("2022-01-01", "2022-12-31", "Y")
/ / 결과: 0
=YEARFRAC("2022-01-01", "2022-12-31")
/ / 결과: 0.997267760 (약 0.997년)

따라서, 두 날짜 사이의 정확한 기간 계산이 필요한 경우 YEARFRAC 함수를 사용하는 것이 좋습니다.


그 외 주의사항

DATEDIF 함수는 LOTUS1-2-3 함수 호환성함수로 함수 목록에 표시되지 않으며, 인수 자동 완성 기능을 지원하지 않습니다.

"MD"(월과 연도를 무시한 일차이) 단위의 경우 부정확한 결과가 나올 수 있으므로 사용 시 주의가 필요합니다.

시작일이 종료일 보다 늦을 경우 함수는 #NUM! 오류를 반환합니다.

DATEIDF 함수는 꽉찬 기간만을 계산합니다. 정확한 소수점 단위의 계산이 필요한 경우에는 YEARFARC 함수를 사용합니다.

공휴일과 주말을 제외한 근무일수 계산에는 NETWORKDAYS 함수를 사용합니다.


댓글 22
4.9 (11개 평가)
배지수
배지수 2020.02.13 13:33
회사 오피스는 office 365 pro plus를 쓰고 있는데 datedif 함수가 없는데 혹시 가장 최신 버전에서는 해당 함수는 사라졌나요?
오빠두엑셀
오빠두엑셀 작성자 2020.02.13 21:06
안녕하세요~^^* 셀에 =datedif ( <- 요 괄호까지 포함해서 입력해보시겠어요?
  • daedif 함수는 예전 Lotus에서 제공하던 함수로 엑셀 기본함수가 아니기 때문에, 괄호까지 입력하셔야 함수가 표시됩니다.
  • 또한 인수설명이 보이지 않기 때문에, 해당 포스트에 적어드린 인수설명 또는 예제파일을 참고하셔서 수식을 작성해보시면 도움이 되실겁니다.^-^
제 답변이 도움이 되셨길 바랍니다. 감사합니다.
datedif
굴레악
굴레악 2020.07.10 22:56
아 이 함수 있다는 것은 알고 있었는데 막상 날짜 함수 사용할 때 함수 안내 목록에 없어서 실제로 사용해보질 못했네요. 아 이제 사용법 숙지. 날짜 계산 필요로 했는데 DATEDIF함수 사용하면 되겠네요.
kgr****
kgr**** 2020.08.04 17:41
Datedif 함수는 date difference 를 의미하는 걸까요? 감동적인 설명입니다. 감사합니다. 예제에서 한 가지 고민이 있습니다. 시작일과 종료일이 주어진 어떤 기간내에서 특정기간에 해당하는 일수를 계산하는 방법 좀 알려주세요. 예를 들어 2018.12.15~2021.5.14 간881일의 주어진 기간중에서 다음 각각의 기간에 해당하는 일수를 계산하는 함수나 계산식 방법을 알고 싶어요 1) 2018.11.1~2019.10.31 2) 2019.11.1~2020.10.31 3) 2020.11.1~2021.10.31
오빠두엑셀
오빠두엑셀 작성자 2020.08.05 02:03
안녕하세요? COUNTIFS 함수를 사용해보세요. =COUNTIFS(날짜범위,">="&DATE(2018,11,1),날짜범위,"<="&DATE(2019,10,31))
kgrhome
kgrhome 2020.08.05 10:06
안녕하세요 신속한 답변에 너무 감사합니다. 답변을 활용해 보니, countifs 함수라 셀의 갯수를 구해줬지만, 일수를 계산하지는 못합니다. 댓글에 올린대로, 주어진 기간내에서 특정 조건(연도별일정기간)에 맞는 일수를 계산하고 싶습니다. ㅜㅜ
오빠두엑셀
오빠두엑셀 작성자 2020.08.05 20:48
그러시다면 주어진 기간의 최대값과 최소값을 구해서 빼주면 되지 않을까 생각됩니다. :) 아래 공식을 사용해보세요.
=MAX(IF((날짜범위=<날짜1)*(날짜범위>=날짜2),날짜범위))-MIN(IF((날짜범위=<날짜1)*(날짜범위>=날짜2),날짜범위))
mksong
mksong 2022.09.13 16:43
좋은 강의 감사합니다
핼2
핼2 2022.12.07 13:52
시작일이 종료일보다 늦을 경우 1. 시작일 2022-02-14, 종료일 2022-02-10 2.시작일 2022-06-30, 종료일 2022-05-31 #NUM! 이 뜨는데요, 이 값을 숫자 0으로 표현할 수 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2022.12.11 19:54
안녕하세요. IFERROR 함수를 사용해보세요.
=IFERROR(DATEDIF(..),0)
Hyo7
Hyo7 2023.03.21 18:15
예제로 제시 해 주신 =DATEDIF("2019-03-01","2021-01-01","Y")의 결과가 2가 아닌 1로 나오는데요, DATADIF라는 함수는 순수하게 연도만 계산 된 것이 아닌 날짜까지 고려한.. 우리 나라 만 나이 같은 개념인건가요? 추가 설명 한번만 부탁 드립니다
오빠두엑셀
오빠두엑셀 작성자 2023.03.24 00:55
네. 꽉찬 년수입니다. 만 나이와 같은 개념이 맞습니다.
팔팔이
팔팔이 2023.06.27 08:23
안녕하세요 매번 좋은 강의 잘 보고 있습니다! 질의사항이 있어서요 datedif함수에서 시작날짜가 빈셀, 즉 "0" 일 경우 종료날짜까지 계산 할때 1900-1-1 계산되더라구요 혹시 빈셀로 시작할 경우, 오류가 나거나 하게 계산하는 방법은 없을까요??
오빠두엑셀
오빠두엑셀 작성자 2023.06.27 13:42
안녕하세요. IF 함수를 사용하면 됩니다.
=IF(시작일="","",DATEDIF(...))
형태로 수식을 작성해보세요.
팔팔이
팔팔이 2023.06.27 15:54
감사합니다!!
이지훈 덕천
이지훈 덕천 2024.01.19 15:58
시작일이 종료일보다 뒤에일 경우 어떻게 사용해야하나요? 지금 ("시작일","오늘날짜","M") 이렇게 사용해서 진행일수를 자동으로 작성중입니다. 근데 이게 시작일이 오늘일자보다 뒤에일 경우는 오류가 떠서... 안되는데 이거 해결할 방법이 없을까요? -로 계산이 되던가 +로 계산이 되던가 하면 좋을거 같은데... 부탁드립니다.
오빠두엑셀
오빠두엑셀 작성자 2024.01.19 18:31
시작일은 반드시 종료일보다 앞에 있어야 합니다. 시작일이 종료일보다 늦을 경우, 먼저 위치를 바꿔서 함수를 적용한 후, -1을 곱해서 음수로 사용해보세요. 감사합니다.
이진석
이진석 2024.07.24 12:57
사진 첨부 함수 결과값이 1년10월을 1년11월로 나타나게 할수 있는지?
함수계산
오빠두엑셀
오빠두엑셀 작성자 2024.07.28 19:24
안녕하세요. 오빠두엑셀입니다. 뒤의 DATEDIF 함수 뒤에 +1 을 더해보시길 바랍니다. 감사합니다.
강민준🤗
강민준🤗 2024.08.09 18:12
좋은 강의 감사합니다🙇‍♂️