- 최초 작성일: 1999-10-07
- 최종 수정일: 2026-09-29
- 조회수: 28 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: DATEDIF 함수Ⅰ
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
날짜와 시간의 계산에 대한 질문이 몇 건 있었고 그에 따른 답변을 아주 예전에 드렸습니다.
X0006 강좌에서 였던 걸로 기억나는데 관심있으신 분은 찾아보시기 바랍니다. 아마 엑셀통신강좌_001 파일에 그 내용이 들어있을 것입니다.
| 입사일자 | 현재일자 | 근무기간 |
| 1988-12-10 | 1999-08-01 | 10년 7개월 22일 |
| 1985-11-13 | 1999-08-01 | 13년 8개월 19일 |
year(), month(), day(), or(), and() 등 여러가지 함수들을 조합해서 무슨 암호문같이 복잡한 함수를 소개해 드렸습니다. 참 복잡한 방법이었지요?
오늘은 날짜 계산을 손쉽게 해결할 수 있는 방법을 한가지 알려드립니다.
아마 이 방법이 지난번에 설명드린 방법보다 훨씬 쉬울 것입니다.
DATEDIF 함수Ⅰ
핵심 요약
- DATEDIF 함수는 두 날짜와 계산 단위를 지정해 일수·개월수·연수 차이를 구합니다.
- d, m, y 단위로 전체 차이를 계산하고 yd, ym 같은 단위로 연도나 월을 제외한 차이도 구할 수 있습니다.
- 시작 날짜는 종료 날짜보다 앞서야 하며, 그렇지 않으면 오류가 발생할 수 있습니다.
| 출생일 | 현재일 | |
| 1968-11-13 | 1999-10-07 | 30년10개월24일 |
위와 같이 두 날짜가 있을 경우
| ① 두 날짜간의 일수 차이는? | 11,285 | =DATEDIF(B19,C19,"d") | |
| ② 두 날짜간의 월수 차이는? | 370 | =DATEDIF(B19,C19,"m") | |
| ③ 두 날짜간의 년수 차이는? | 30 | =DATEDIF(B19,C19,"y") |
어떻습니까? 오른쪽 공식에서 볼 수 있듯이 datedif()라는 함수를 사용해서 아주 수월한 방법으로 두 날짜간의 계산을 하였지요?
즉, datedif()함수는 datedif(날짜1, 날짜2, 연산방법)에서 알 수 있듯이 두 개의 날짜를 인수로 입력 받아 지정된 방법으로 연산해서 그 차이를 되돌려주는 함수입니다.
참고: DATEDIF 함수는 함수 삽입 대화상자의 목록과 수식 자동 완성에 나타나지 않으므로 수식을 직접 입력해야 합니다.
연산방법은 크게 다섯 가지로 지정해 줄 수 있습니다.
(1) "d": 두 날짜 사이의 일수를 산출(위 ①번 방법)
(2) "m": 두 날짜 사이의 개월수를 산출(위 ②번 방법)
(3) "y": 두 날짜 사이의 년수를 산출(위 ③번 방법)
이 세가지 방법은 위의 예제 ①, ②, ③에 각각 해당되는 것인데 이해가 되실테고…
(4) "ym": 두 날짜 사이를 같은 년도로 간주하고 개월수 계산
(5) "yd": 두 날짜 사이를 같은 년도로 간주하고 일수 계산
| ④ 두 날짜간의 일수계산Ⅱ | 328일 경과 | =DATEDIF(B19,C19,"yd") & "일 경과" | |
| ⑤ 두 날짜간의 개월수 계산Ⅱ | 10개월 경과 | =DATEDIF(B19,C19,"ym") & "개월 경과" |
①과 ④, ②와 ⑤의 차이점을 아시겠지요?
datedif()함수 사용시 주의할 점! 날짜1과 날짜2가 있을 경우, 날짜1이 날짜2보다 반드시 작아야 합니다. 그렇지 않으면 에러가 납니다.
이런 간단한 방법이 있었으면 진작에 갈쳐주지 왜 이제서야 알려주느냐고 하시는 분께는 죄송!
오늘은 여기까지…
정리 — DATEDIF 함수Ⅰ
| 구분 | 내용 |
|---|---|
| 함수 형식 | DATEDIF(날짜1, 날짜2, 연산방법) |
| d | 두 날짜 사이의 일수 |
| m | 두 날짜 사이의 개월수 |
| y | 두 날짜 사이의 년수 |
| ym | 두 날짜 사이를 같은 년도로 간주하고 계산한 개월수 |
| yd | 두 날짜 사이를 같은 년도로 간주하고 계산한 일수 |
| 예제 | 1968-11-13과 1999-10-07 사이는 11,285일, 370개월, 30년 |
| 주의 | 날짜1이 날짜2보다 반드시 작아야 하며 그렇지 않으면 오류 |
자주 묻는 질문 (FAQ)
Q1. DATEDIF 함수는 무엇인가요?
두 개의 날짜를 인수로 입력받아 지정한 방법으로 연산하여 그 차이를 돌려주는 함수입니다. 형식은 DATEDIF(날짜1, 날짜2, 연산방법)입니다.
Q2. 연산방법으로 무엇을 지정할 수 있나요?
d는 일수, m은 개월수, y는 년수를 구합니다. ym은 두 날짜를 같은 년도로 간주하여 개월수를, yd는 같은 년도로 간주하여 일수를 구합니다.
Q3. 사용할 때 주의할 점은 무엇인가요?
날짜1이 날짜2보다 반드시 작아야 합니다. 그렇지 않으면 오류가 납니다.
마치며
근무기간이나 나이처럼 두 날짜 사이의 기간을 구할 때는 복잡한 조합 대신 DATEDIF 함수를 사용해 보시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.