엑셀 DATEDIF 함수는 두 날짜 사이가 몇 년, 몇 개월, 며칠인지 꽉 찬 단위로 세어 주는 함수입니다. 입사일부터 오늘까지의 근속기간, 생일 기준 만 나이, 계약 시작일부터 지금까지의 개월수처럼 ‘기간을 사람이 말하는 방식으로’ 구해야 할 때 씁니다. 이 글은 Microsoft 365 기준이고, 기준일은 2026-10-27입니다. 예제 수식은 모두 Excel에서 직접 계산해 맞춰 봤습니다.

DATEDIF 한눈에 보기
형식은 =DATEDIF(시작일, 종료일, 단위)이고, 단위는 큰따옴표로 감싼 문자로 넣습니다. 아래 표의 결과는 시작일 2019-03-15, 종료일 2026-10-27로 계산한 값입니다.
| 단위 | 돌려주는 값 | 예제 결과 |
|---|---|---|
| “Y” | 꽉 찬 연수 | 7 |
| “M” | 꽉 찬 총 개월수 | 91 |
| “D” | 총 일수 (종료일 − 시작일과 같음) | 2,783 |
| “YM” | 연수를 뺀 나머지 개월수 | 7 |
| “YD” | 연수를 무시한 일수 차이 | 226 |
| “MD” | 연·월을 무시한 일수 차이 (권장하지 않음) | 12 |
Microsoft 지원 문서도 시작일이 종료일보다 크면 #NUM! 오류가 나며, “MD” 단위는 음수나 부정확한 결과를 낼 수 있다고 안내합니다. 이 함수가 자동 완성 목록에 뜨지 않는 것도 같은 이유입니다. 옛 파일과의 호환용으로만 남아 있기 때문에 이름과 단위를 끝까지 직접 입력해야 합니다.

연수·개월수·일수 기본 공식
입사일이 B2, 기준일이 C2에 있다고 하면 만 연수는 =DATEDIF(B2,C2,"Y"), 총 개월수는 =DATEDIF(B2,C2,"M")입니다. 기준일 자리에 TODAY()를 넣으면 파일을 열 때마다 오늘 기준으로 새로 계산됩니다. 다만 보고용 표처럼 기준일이 고정되어야 할 때는 날짜를 셀에 따로 적어 두는 쪽이 안전합니다.
“꽉 찬”이라는 말이 핵심입니다. 2019-03-15에 입사한 사람이 2026-03-14에 7년째를 채우지 못했다면 아직 6으로 나옵니다. 하루라도 모자라면 올림 없이 버립니다. 그래서 연차나 퇴직금처럼 ‘만 몇 년’ 기준이 필요한 계산과 잘 맞습니다.
근속기간을 N년 M개월 D일로 표시하기
사내 명부에서 가장 많이 쓰는 모양입니다. 연수는 “Y”, 연수를 뺀 나머지 개월은 “YM”으로 구하고, 남은 일수는 아래 방식으로 따로 계산합니다.
| 열 | 내용 | 수식 (2행 기준) |
|---|---|---|
| D | 만 연수 | =DATEDIF(B2,C2,"Y") |
| E | 총 개월수 | =DATEDIF(B2,C2,"M") |
| F | 남은 개월 | =DATEDIF(B2,C2,"YM") |
| G | 남은 일 | =C2-EDATE(B2,E2) |
| H | 표기 | =D2&"년 "&F2&"개월 "&G2&"일" |
예제 결과는 김민수(2019-03-15 입사) 7년 7개월 12일, 이서연(2022-08-10) 4년 2개월 17일, 박지훈(2025-12-01) 0년 10개월 26일입니다. 김민수는 입사일에 91개월을 더한 날짜(2026-10-15)에서 기준일(2026-10-27)까지 12일이 남았다고 읽으면 됩니다.

만 나이 계산하기
생년월일을 시작일, 기준일을 종료일로 두고 “Y”를 쓰면 됩니다. =DATEDIF(B2,C2,"Y")만 입력하면 끝입니다. 같은 기준일(2026-10-27)로 1990-11-05생은 35, 1990-10-27생은 생일 당일이라 36, 2001-01-20생은 25가 나왔습니다. 생일이 지나야 숫자가 오르는 ‘만 나이’와 같은 방식입니다.
연도만 빼는 =YEAR(C2)-YEAR(B2)는 생일 전후를 구분하지 못해 1990-11-05생도 36으로 나옵니다. 나이 계산에서는 이쪽이 더 흔한 실수입니다. 날짜 자체를 계산하는 도구가 필요하면 만 나이 계산기에 날짜만 넣어 확인해도 됩니다.
MD 단위가 틀리는 경우와 대신 쓰는 방법
실제로 틀리는 경우를 Excel에서 확인했습니다. 시작일 2026-01-31, 종료일 2026-03-01에 “MD”를 쓰면 결과가 -2로 나옵니다. 음수 일수는 있을 수 없으니 잘못된 값입니다. 월말에 시작한 기간에서 특히 잘 생깁니다.
남은 일수는 종료일 − EDATE(시작일, 총 개월수)로 구하는 편이 안전합니다. 같은 예에서 총 개월수는 =DATEDIF(시작일,종료일,"M")로 1, EDATE는 1월 31일에 한 달을 더해 2월 28일을 돌려주므로 3월 1일에서 빼면 1일이 됩니다. 앞 절의 G열 수식이 바로 이 방식입니다.
주의할 점이 하나 더 있습니다. 1월 31일에서 2월 28일까지는 DATEDIF 개월수가 0입니다. 시작일의 ‘일’에 해당하는 날이 없는 달에는 한 달이 찼다고 보지 않기 때문입니다. 월말 기준 계산 결과가 의심되면 이 점부터 확인하세요.

#NUM! 오류와 아직 시작 전인 행 처리
시작일이 종료일보다 늦으면 #NUM!이 나옵니다. 입사 예정자가 섞인 명부에서 자주 보는 경우입니다. 오류를 IFERROR로 덮기보다 원인을 구분해서 보여 주는 쪽이 낫습니다.
=IF(B2>C2,"입사 예정",DATEDIF(B2,C2,"Y")&"년")
예제 파일의 ‘오류 처리’ 시트에서 2027-01-04 입사 예정자는 “입사 예정”, 2020-05-18 입사자는 “6년”으로 나옵니다. 빈 칸은 0(1900-01-00)으로 계산되어 엉뚱한 기간이 나오니, 시작일이 비었을 때는 IF(B2="","",…)로 먼저 막아 두세요. 오류 처리가 낯설다면 IFERROR 함수 글을 먼저 보세요.
DATEDIF 말고 다른 함수가 나을 때
| 하고 싶은 일 | 쓸 함수 | 메모 |
|---|---|---|
| 총 일수만 필요 | 종료일 − 시작일 또는 DAYS | DATEDIF의 “D”와 같은 값 |
| 1.6년처럼 소수 연수 | YEARFRAC | 꽉 찬 기간이 아니라 비율로 계산 |
| 주말 제외 근무일수 | NETWORKDAYS | 2026-10-01~10-27은 19일 |
| 기준일을 오늘로 | TODAY | 열 때마다 값이 바뀜 |
| 개월수 빠르게 확인 | 개월수 계산기 | 수식 없이 날짜만 입력 |
연차 발생일수처럼 근속연수를 법정 기준표에 대입하는 계산은 연차 발생 기준에서 표로 정리해 두었습니다. 이 글의 “Y” 결과를 그 표에 넣으면 됩니다.
예제 파일 받기
이 글의 예제와 같은 파일입니다. 근속기간 시트에 연·월·일 분리 수식, 만 나이 시트에 생일 전후 비교, 오류 처리 시트에 입사 예정자 처리 수식이 들어 있습니다. 날짜는 2026-10-27 기준으로 고정했으니 TODAY로 바꾸려면 기준일 열을 수정하세요.

자주 묻는 질문
DATEDIF는 왜 함수 목록에 안 나오나요?
Lotus 1-2-3 시절 파일과 호환하려고 남겨 둔 함수라 함수 삽입 창과 자동 완성에는 나오지 않습니다. 이름을 직접 입력하면 정상적으로 계산됩니다.
DATEDIF에서 #NUM! 오류가 나면 어떻게 하나요?
시작일이 종료일보다 늦을 때 나옵니다. 두 날짜의 순서를 바꾸거나, 아직 시작 전인 행은 IF로 먼저 걸러 내세요.
2월 29일에 태어났거나 입사한 경우는 어떻게 계산되나요?
Excel에서 확인한 결과 2020-02-29를 시작일로 한 만 연수는 2026-02-28 기준 5, 2026-03-01 기준 6으로 나왔습니다. 평년에는 3월 1일에 한 해가 차는 것으로 계산됩니다.
소수점 연수가 필요하면 무엇을 쓰나요?
DATEDIF는 꽉 찬 기간만 세고 나머지는 버립니다. 1.6년처럼 소수가 필요하면 YEARFRAC을 쓰세요.
엑셀 작업 환경에 도움이 되는 제품
아래는 쿠팡 파트너스 링크입니다. 링크로 구매하면 일정 수수료를 받을 수 있으며, 구매 가격에는 영향이 없습니다. 제품을 직접 사용해 본 후기가 아니라 쿠팡 상품 페이지로 연결됩니다.
- 엑셀 함수 대백과 보기 · 날짜 함수를 한 권으로 훑어볼 때
- 메쉬 사무용 의자 보기 · 명부 정리처럼 앉아 있는 시간이 길 때
- 케이블 정리 클립 보기 · 책상 위 선을 정돈하고 싶을 때
공식 자료
- Microsoft 지원, DATEDIF 함수 (기준일 2026-10-27)