목차▾
엑셀 DATEDIF 함수란?
엑셀 DATEDIF 함수는 두 날짜 사이의 차이를 연·월·일 단위로 계산하는 함수입니다. 만 나이·근속 기간·임신 주차·결혼 N주년·정년 퇴직까지 남은 기간 등 "시간이 얼마나 지났나?" 형식의 모든 계산에 사용됩니다. 가장 큰 특징은 단위 6종(Y·M·D·YM·MD·YD)으로 다양한 관점의 차이를 한 함수로 얻을 수 있다는 점이에요.
한 가지 알아둘 점은 DATEDIF가 "숨겨진" 함수라는 것. Lotus 1-2-3 호환성을 위해 추가됐고 Excel 함수 마법사(fx)에 표시되지 않으며 자동완성도 약합니다. 그러나 정상 작동하는 공식 함수이므로 수동 입력으로 사용하면 됩니다. 구문은 =DATEDIF(시작일, 종료일, 단위)로 3인수.
단위 6종 완전 정리 — Y·M·D·YM·MD·YD
DATEDIF의 진가는 6가지 단위에서 나옵니다. 예시는 모두 2020-03-15 ~ 2026-06-25 기준.
| 단위 | 의미 | 예시 결과 |
|---|---|---|
| "Y" | 두 날짜 사이의 만 년수 (정수) | 6 |
| "M" | 총 개월수 (정수) | 75 |
| "D" | 총 일수 (정수) | 2293 |
| "YM" | 연을 무시한 남은 개월수 (0~11) | 3 |
| "MD" | 월을 무시한 남은 일수 ⚠️ 버그 가능 | 10 |
| "YD" | 연을 무시한 남은 일수 (0~365) | 102 |
핵심 조합 — "N년 M개월 D일":
=DATEDIF(A1,B1,"Y") & "년 " & DATEDIF(A1,B1,"YM") & "개월 " & DATEDIF(A1,B1,"MD") & "일"
→ "6년 3개월 10일"
"MD"의 알려진 버그 + 안전한 대안
Microsoft가 공식 인정한 버그가 있습니다. 시작 날짜의 일(day)이 종료 날짜의 일보다 클 때 음수 또는 잘못된 값을 반환합니다.
- 문제 예:
=DATEDIF("2025-01-31", "2025-03-01", "MD")→ 잘못된 결과 - 안전한 대안:
=B1-EDATE(A1, DATEDIF(A1,B1,"M"))— EDATE로 정확한 월 더한 뒤 일수 차이
정확도가 중요한 작업(만 나이 표시, 근속 일수 계산 등)이라면 "MD" 대신 위 대안 공식을 사용하세요. 단순 "N년 M개월" 정도만 표시하면 "Y"+"YM"만 써도 충분합니다.
실전 사용 시나리오 10가지
DATEDIF가 실제 업무·일상에서 어떻게 쓰이는지.
- 만 나이 —
=DATEDIF(생년월일, TODAY(), "Y")— 2023년부터 한국 만 나이 통일 - N년 M개월 —
=DATEDIF(A,B,"Y")&"년 "&DATEDIF(A,B,"YM")&"개월" - N년 M개월 D일 (풀) — Y + YM + MD 조합 (MD 버그 주의)
- 근속 일수 —
=DATEDIF(입사일, TODAY(), "D")— 퇴직금·연차 계산 - 임신 주차 —
=INT(DATEDIF(LMP, TODAY(),"D")/7)&"주 "&MOD(DATEDIF(LMP, TODAY(),"D"),7)&"일" - 결혼 N주년·연애 N일째 —
=DATEDIF(시작일, TODAY(), "D")+1&"일째" - 만 18세 성인 여부 —
=IF(DATEDIF(생년월일, TODAY(),"Y")>=18, "성인", "미성년자") - 만기 D-Day —
=DATEDIF(TODAY(), 만기일, "D") - 정년 퇴직까지 남은 기간 —
=DATEDIF(TODAY(), DATE(YEAR(생년월일)+60, MONTH(생년월일), DAY(생년월일)), "Y") - 두 시점 중간 날짜 —
=A1 + DATEDIF(A1, B1, "D")/2
자주 발생하는 오류·함정 6가지
- #NUM! — 날짜 순서 반대 — start_date > end_date. 인수 순서 확인 (DATEDIF는 strict, ABS 우회 안 됨)
- #VALUE! — 날짜가 텍스트 — "2026-06-25"가 텍스트형. 해결:
DATEVALUE(A1)로 변환 - #NAME? — 오타 — DATEDIFF (F 두 개), DATE_DIF 등. 정확히
DATEDIF(F 1개) - "MD" 음수 결과 — Microsoft 인정 버그. 대안:
B1-EDATE(A1, DATEDIF(A1,B1,"M")) - "Y" 결과가 1년 적음 — 만 나이라 생일 안 지났으면 빼고 계산. 정상 동작. (예: 1990-12-31 생, 오늘 2026-06-25 → 35)
- 시간 포함 차이 — 시간이 다르면 날짜만 보고 계산. 명시적이려면 INT(A1)·INT(B1)
DATEDIF vs YEARFRAC vs DAYS 비교
날짜 차이 함수들 사이의 선택 기준.
| 함수 | 용도 | DATEDIF와 차이 |
|---|---|---|
| YEARFRAC | 두 날짜를 소수 연수 (6.27년) | DATEDIF는 정수만 / YEARFRAC은 보험·금융 이자에 적합 |
| DAYS | 총 일수 (Excel 2013+) | DATEDIF "D"와 동일, 단 음수도 허용 |
| NETWORKDAYS | 주말·휴일 제외 영업일수 | DATEDIF는 모든 날짜 / 휴일 무시 |
| EDATE | 시작일에서 N개월 더한 날짜 | DATEDIF 보조 — "MD" 버그 대안에 활용 |
선택 기준: 정수 차이는 DATEDIF, 소수 연수는 YEARFRAC, 음수 허용은 DAYS, 영업일은 NETWORKDAYS. 만 나이·근속 같은 일반 표시는 DATEDIF가 가장 적합합니다.
자주 묻는 질문
Q. DATEDIF 함수 사용법은?
=DATEDIF(시작일, 종료일, 단위) 형식입니다. 단위는 큰따옴표로 감싼 6종("Y", "M", "D", "YM", "MD", "YD") 중 하나. 예를 들어 만 나이는 =DATEDIF(생년월일, TODAY(), "Y"). 종료일이 시작일보다 크거나 같아야 하며, 작으면 #NUM! 오류가 납니다.
Q. DATEDIF는 왜 자동완성이 안 되나요?
Lotus 1-2-3 호환성을 위해 Excel에 추가된 "숨겨진" 함수라 함수 마법사(fx)에도 표시되지 않고 자동완성 목록에도 없습니다. 그러나 정상 작동하는 공식 함수이므로 수동으로 정확히 입력하면 됩니다 (F 1개, DATEDIFF 아님).
Q. "Y", "M", "D"와 "YM", "MD", "YD"는 뭐가 다른가요?
대문자 1글자(Y/M/D)는 총 차이, 2글자(YM/MD/YD)는 나머지입니다. 예를 들어 2020-03-15 ~ 2026-06-25는 "Y"=6년, "M"=75개월, "YM"=3개월(연 무시한 남은 개월), "MD"=10일(월 무시한 남은 일). 보통 "N년 M개월 D일" 표시는 Y + YM + MD 조합으로 만듭니다.
Q. "MD"가 음수로 나오거나 이상한데요?
Microsoft가 공식 인정한 버그입니다. 시작 날짜의 일이 종료 날짜의 일보다 클 때 잘못된 값이 반환됩니다. 대안 공식: =B1-EDATE(A1, DATEDIF(A1,B1,"M"))을 사용하세요. EDATE로 정확한 월을 더한 뒤 일수 차이를 계산해서 안전합니다.
Q. 만 나이를 정확히 계산하려면?
=DATEDIF(생년월일, TODAY(), "Y")로 정확합니다. 한국식 나이(세는 나이)를 원하면 =YEAR(TODAY())-YEAR(생년월일)+1, 한국 만 나이(생일 안 지났으면 -1)는 DATEDIF "Y"와 동일합니다. 2023년부터 한국도 만 나이 통일이라 DATEDIF "Y"가 표준입니다.
Q. 두 날짜 사이가 "N년 M개월 D일"로 표시되게 하려면?
세 DATEDIF를 & 연산자로 연결합니다: =DATEDIF(A1,B1,"Y")&"년 "&DATEDIF(A1,B1,"YM")&"개월 "&DATEDIF(A1,B1,"MD")&"일". 단 "MD"에 버그가 있을 수 있어서 정확도가 중요하면 EDATE 대안 공식으로 일 부분만 별도 계산하세요.
Q. DATEDIF와 YEARFRAC의 차이는?
DATEDIF는 정수 결과(만 6년), YEARFRAC은 소수 결과(6.27년)입니다. 보험·금융 이자 계산처럼 소수 연수가 필요하면 YEARFRAC, 일반 만 나이·근속 표시는 DATEDIF가 적합합니다.
Q. 구글 스프레드시트에서도 동일하게 작동하나요?
네. Google Sheets에서 동일한 6종 단위와 문법으로 작동합니다. LibreOffice Calc, 한컴 한셀, WPS Spreadsheets 에서도 동일합니다. 단 Apple Numbers는 DATEDIF를 지원하지 않으니 다른 함수로 우회해야 합니다.
본 페이지는 Microsoft Support 공식 DATEDIF·EDATE·YEARFRAC 문서를 기준으로 작성되었습니다. 정확한 동작은 Excel 버전·환경에 따라 달라질 수 있으니 중요한 작업 전에는 실제 환경에서 확인하세요.