엑셀에서 입사일부터 현재까지의 근속연수를 계산하거나 생년월일을 기준으로 만 나이를 구해야 할 때, 날짜를 일일이 계산하면 번거롭습니다. 이럴 때 사용할 수 있는 함수가 DATEDIF 함수입니다.
DATEDIF는 두 날짜 사이의 기간을 연수, 개월 수, 일수로 계산하는 함수입니다. 인사관리 자료의 근속기간 계산, 고객의 나이 확인, 계약기간 및 이용기간 정리처럼 날짜를 다루는 업무에서 활용할 수 있습니다.
DATEDIF 함수의 기본 문법부터 근속연수, 만 나이, 전체 개월 수, 남은 일수 계산까지 예제를 통해 정리합니다. 계산 결과가 예상과 다를 때 확인할 사항도 함께 살펴보겠습니다.
1. 엑셀 DATEDIF 함수란?
DATEDIF 함수는 시작 날짜와 종료 날짜 사이의 차이를 지정한 단위로 계산하는 함수입니다. 날짜 사이의 기간을 연도, 월, 일 기준으로 구할 수 있습니다.
예를 들어 입사일이 2020년 3월 15일이고 기준일이 2026년 10월 13일이라면, DATEDIF를 이용해 근속연수와 추가 개월 수, 남은 일수를 각각 계산할 수 있습니다.
=DATEDIF(시작일, 종료일, 단위)
- 시작일: 기간 계산을 시작하는 날짜
- 종료일: 기간 계산을 끝내는 날짜
- 단위: 연수, 개월 수, 일수 중 어떤 방식으로 계산할지 지정
DATEDIF는 엑셀의 함수 자동완성 목록이나 일반적인 함수 도움말에서 바로 보이지 않을 수 있지만, 지원되는 엑셀 버전에서는 수식에 직접 입력해 사용할 수 있습니다.
2. DATEDIF 함수의 단위 알아보기
DATEDIF 함수에서 결과를 결정하는 핵심은 세 번째 인수인 단위입니다. 큰따옴표 안에 아래와 같은 문자를 입력합니다.
| 단위 | 계산 결과 | 활용 예시 |
|---|---|---|
"Y" |
완료된 연수 | 만 나이, 근속연수 |
"M" |
완료된 전체 개월 수 | 이용기간, 계약 개월 수 |
"D" |
전체 일수 | 경과 일수 |
"YM" |
완료된 연수를 제외한 개월 수 | 몇 년 몇 개월 계산 |
"YD" |
완료된 연수를 제외한 일수 | 연수를 제외한 일수 확인 |
"MD" |
완료된 개월 수를 제외한 일수 | 남은 일수 표시 |
DATEDIF의 "Y", "M", "D"는 서로 다른 기준으로 계산됩니다. 특히 "M"은 날짜에 포함된 달의 개수를 단순히 세는 것이 아니라 완료된 전체 개월 수를 계산합니다.
3. 근속연수를 계산하는 방법
직원의 입사일로부터 기준일까지 몇 년을 근무했는지 확인하려면 단위를 "Y"로 설정합니다.
예를 들어 A2 셀에 입사일이 입력되어 있고, B2 셀에 기준일인 2026년 10월 13일이 입력되어 있다고 가정하겠습니다.
=DATEDIF(A2,B2,"Y")
입사일부터 기준일까지 완료된 연수를 정수로 반환합니다.
입사일이 2020년 3월 15일이라면 2026년 10월 13일 기준으로 완료된 근속연수는 6년입니다. 아직 7년이 되는 입사일이 지나지 않았기 때문입니다.
실무에서 근속기간을 표시할 때는 연수만 보여주는 것보다 추가 개월 수까지 함께 표시하면 이해하기 쉽습니다.
=DATEDIF(A2,B2,"Y")&"년 "&DATEDIF(A2,B2,"YM")&"개월"
결과 예시: 6년 6개월
여기서 A2는 입사일, B2는 기준일입니다. 기준일을 별도 셀에 입력해 두면 여러 직원의 근속기간을 같은 날짜 기준으로 계산하기 편리합니다.
4. 생년월일로 만 나이를 계산하는 방법
DATEDIF는 생년월일을 기준으로 만 나이를 계산할 때도 활용할 수 있습니다. 만 나이는 출생일을 기준으로 생일이 지날 때마다 한 살씩 증가하므로, 단순히 현재 연도에서 출생 연도를 빼는 방식보다 정확하게 계산해야 합니다.
A2 셀에 생년월일이 입력되어 있다면 다음 수식을 사용할 수 있습니다.
=DATEDIF(A2,TODAY(),"Y")
TODAY()가 현재 날짜를 가져오므로 파일을 열거나 다시 계산할 때 기준 날짜에 따라 나이가 갱신됩니다.
예를 들어 생년월일이 1995년 12월 20일이고 기준일이 2026년 10월 13일이라면 만 나이는 30세입니다. 2026년 생일이 아직 지나지 않았기 때문입니다.
직원이나 고객의 생년월일을 다룰 때는 필요한 정보만 보관하고, 파일 공유 및 접근 권한을 적절히 관리하는 것이 좋습니다.
5. 두 날짜 사이의 전체 개월 수 계산하기
계약기간, 서비스 이용기간, 할부기간처럼 두 날짜 사이에 완료된 개월 수를 계산할 때는 단위를 "M"으로 지정합니다.
=DATEDIF(A2,B2,"M")
A2의 시작일부터 B2의 종료일까지 완료된 전체 개월 수를 계산합니다.
예를 들어 시작일이 2025년 1월 10일이고 종료일이 2026년 4월 9일이라면, 완료된 전체 개월 수는 14개월입니다. 15개월이 되는 날짜인 2026년 4월 10일이 아직 지나지 않았기 때문입니다.
개월 수 계산은 월말 날짜가 포함된 경우에도 단순한 달력상의 월 차이와 결과가 다를 수 있습니다. 따라서 계약이나 정산 자료에 적용할 때는 회사 또는 계약서에서 정한 기간 산정 기준과 일치하는지 확인해야 합니다.
6. 날짜 차이를 년·개월·일로 한 번에 표시하기
근속기간이나 이용기간을 보고서에 표시할 때는 총 연수만 보여주는 것보다 '몇 년 몇 개월 며칠' 형태로 표시하는 편이 직관적입니다.
A2 셀에 시작일, B2 셀에 종료일이 입력되어 있다면 다음 수식을 사용할 수 있습니다.
=DATEDIF(A2,B2,"Y")&"년 "&DATEDIF(A2,B2,"YM")&"개월 "&DATEDIF(A2,B2,"MD")&"일"
결과 예시: 6년 6개월 28일
이 수식은 연수, 연수를 제외한 개월 수, 완료된 개월을 제외한 일수를 연결해 하나의 문장처럼 보여줍니다. 실제 결과는 시작일과 종료일에 따라 달라집니다.
다만 "MD" 단위는 월말 날짜가 포함된 특정 조합에서 예상과 다른 결과를 낼 수 있습니다. 중요한 급여·퇴직금·법정 기간 계산에는 이 수식의 결과를 그대로 확정값으로 사용하지 말고, 해당 업무에 적용되는 산정 기준을 별도로 확인해야 합니다.
7. 오늘 날짜를 기준으로 자동 계산하기
종료일이 정해져 있지 않고 오늘까지의 근속기간이나 경과 기간을 확인하고 싶다면 종료일 자리에 TODAY() 함수를 사용할 수 있습니다.
=DATEDIF(A2,TODAY(),"Y")
=DATEDIF(A2,TODAY(),"D")
=DATEDIF(A2,TODAY(),"M")
TODAY()는 컴퓨터의 현재 날짜를 기준으로 동작합니다. 따라서 보고서를 특정 날짜 기준으로 고정해야 한다면 TODAY() 대신 기준일을 별도 셀에 입력하는 방법이 더 적합합니다.
예를 들어 B1 셀에 기준일을 입력하고 모든 계산식에서 B1을 종료일로 사용하면, 기준일을 한 번만 수정해 전체 결과를 갱신할 수 있습니다.
8. DATEDIF 함수에서 오류가 발생할 때
DATEDIF 수식을 입력했는데 오류가 표시되거나 결과가 예상과 다르다면 날짜 데이터와 수식의 순서를 먼저 확인하는 것이 좋습니다.
- #NUM! 오류: 종료일이 시작일보다 빠른 경우 발생할 수 있습니다. 두 날짜의 순서를 확인합니다.
- #VALUE! 오류: 날짜가 텍스트로 저장되어 있거나 인수에 올바르지 않은 값이 들어갔는지 확인합니다.
- 개월 수가 예상과 다름: DATEDIF의 "M"은 달력상의 월 차이가 아니라 완료된 전체 개월 수를 계산합니다.
- 수식이 계산되지 않음: 셀 서식이 '텍스트'로 지정되어 있거나 수식 앞에 작은따옴표가 들어갔는지 확인합니다.
- 결과가 0으로 표시됨: 두 날짜 사이에 완료된 연수나 개월 수가 없는 경우 정상적으로 0이 나올 수 있습니다.
- 시작일과 종료일이 실제 엑셀 날짜 값인지 확인합니다.
- 종료일이 시작일보다 빠르지 않은지 확인합니다.
- 단위가 "Y", "M", "D" 등 큰따옴표 안에 입력되었는지 확인합니다.
- 월말 날짜가 포함된 경우 실제 날짜를 기준으로 계산 결과를 검증합니다.
9. DATEDIF 함수 사용 시 주의할 점
DATEDIF는 날짜 차이를 빠르게 구할 수 있지만, 모든 날짜 관련 업무를 대신하는 함수는 아닙니다. 사용 목적에 따라 결과를 해석해야 합니다.
- 시작일과 종료일 순서: 일반적으로 시작일이 종료일보다 빠르거나 같아야 합니다.
- 날짜 데이터 형식: 셀에 '2026-10-13'처럼 보이더라도 실제로는 텍스트일 수 있습니다. 계산이 안 된다면 날짜 형식을 확인합니다.
- 오늘 날짜의 자동 변경: TODAY()를 사용하면 계산 기준일이 계속 바뀔 수 있으므로 과거 보고서에는 고정된 기준일이 더 적합할 수 있습니다.
- 포함 일수 계산: DATEDIF의 "D"는 두 날짜의 차이입니다. 시작일과 종료일을 모두 포함해 세는 업무라면 별도의 기준이 필요할 수 있습니다.
- 법률·급여·정산 업무: 근속기간, 퇴직금, 계약 일수 등의 공식 산정 기준은 업무별 규정에 따라 다를 수 있으므로 엑셀 함수 결과만으로 확정하지 않습니다.
실제 업무에서는 먼저 간단한 날짜 두 개로 결과를 검증한 뒤, 여러 행에 수식을 복사하는 방식이 안전합니다. 기준일을 별도 셀에 두면 나중에 기간을 다시 계산할 때도 관리하기 편리합니다.
10. 실무에서 바로 활용하는 수식 정리
자주 사용하는 DATEDIF 수식을 목적별로 정리했습니다. A2에는 시작일 또는 생년월일, B2에는 종료일 또는 기준일이 입력되어 있다고 가정합니다.
| 목적 | 수식 |
|---|---|
| 완료된 연수 | =DATEDIF(A2,B2,"Y") |
| 전체 개월 수 | =DATEDIF(A2,B2,"M") |
| 전체 일수 | =DATEDIF(A2,B2,"D") |
| 연수를 제외한 개월 수 | =DATEDIF(A2,B2,"YM") |
| 년·개월·일 표시 | =DATEDIF(A2,B2,"Y")&"년 "&DATEDIF(A2,B2,"YM")&"개월 "&DATEDIF(A2,B2,"MD")&"일" |
| 오늘 기준 만 나이 | =DATEDIF(A2,TODAY(),"Y") |
여러 행에 적용할 때는 첫 번째 행에 수식을 입력한 뒤 채우기 핸들을 아래로 드래그하면 됩니다. 다만 기준일이 들어 있는 셀을 고정해서 사용하려면 $B$1처럼 절대참조를 적용하는 방법도 유용합니다.
자주 묻는 질문 Q&A
Q1. DATEDIF 함수가 엑셀 함수 목록에 나오지 않습니다. 사용할 수 없는 건가요?
DATEDIF는 일반적인 함수 자동완성 목록에 표시되지 않을 수 있습니다. 지원되는 엑셀 환경이라면 수식 입력줄에 직접 입력해 사용할 수 있습니다.
Q2. DATEDIF로 만 나이를 계산할 수 있나요?
네. 생년월일이 A2에 있다면 =DATEDIF(A2,TODAY(),"Y")를 사용할 수 있습니다. 생일이 지났는지까지 고려해 완료된 연수를 계산합니다.
Q3. DATEDIF의 "M"과 "YM"은 무엇이 다른가요?
"M"은 두 날짜 사이의 완료된 전체 개월 수를 계산합니다. "YM"은 완료된 연수를 제외하고 남은 개월 수를 계산합니다.
Q4. 두 날짜 사이의 일수를 구하려면 어떤 수식을 사용하나요?
=DATEDIF(A2,B2,"D")를 사용하면 두 날짜 사이의 차이를 일수로 구할 수 있습니다. 시작일과 종료일을 모두 포함해야 하는 업무라면 별도의 포함 기준을 확인해야 합니다.
Q5. DATEDIF 결과가 실제 근속기간이나 계약기간과 다를 수 있나요?
가능합니다. 함수는 지정한 단위에 따라 날짜 차이를 계산하지만, 실제 급여·퇴직금·계약 정산에는 별도의 규정이나 포함 일수 기준이 적용될 수 있습니다. 공식 자료에 사용하기 전에는 해당 기준과 계산 결과가 일치하는지 확인하는 것이 좋습니다.
마무리
엑셀 DATEDIF 함수는 근속연수, 만 나이, 계약기간, 날짜 차이를 계산할 때 유용합니다. 핵심은 계산 목적에 맞는 단위를 선택하는 것입니다.
- 연수 계산은
"Y" - 완료된 전체 개월 수는
"M" - 전체 일수는
"D" - 연수를 제외한 개월 수는
"YM"
처음에는 날짜 두 개를 입력해 결과를 확인하고, 원하는 값이 나오는지 검증한 다음 실제 자료에 적용해 보세요. 기준일과 날짜 형식을 올바르게 관리하면 반복적인 날짜 계산 업무를 더 간편하게 처리할 수 있습니다.

댓글 쓰기