살다 보면 누구나 날짜 계산을 해야 할 때가 생깁니다. 시작하는 연인이나 아이를 갓 낳은 부모는 아이 100일이 언제인지 궁금할 테고, 역사적 사건이 며칠 전에 일어났는지 알고 싶을 때도 있습니다. '날짜계산기'라는 키워드로 구글링을 하면 검색 결과가 654만 개나 나오는 게 우연이 아니라는 말씀.
마이크로소프트(MS) 엑셀도 기본적으로 날짜 처리가 가능한 계산기이기 때문에 날짜 계산 기능도 제공합니다. 예를 들어 오늘부터 100일이 지난 날짜를 알고 싶으면 그냥 셀 한 곳에 2019-06-30이라고 입력한 다음 +100을 하면 됩니다.
두 날짜 사이에 며칠이나 차이가 나는지도 빼기로 알아볼 수 있습니다. 예를 들어 지난해 오늘과 올해 오늘은 365일 차이가 나겠죠? 이를 알아보려면 그냥 한 셀에서 다른 셀을 빼면 됩니다.
따라서 생년월일을 넣고 오늘 날짜를 넣으면 자신이 태어난지 며칠이나 지났는지도 확인할 수 있을 겁니다. 이건 직접 한번 해보세요.
그런데 이렇게 나이를 표시할 때는, 그러니까 주로 최연소 또는 최고령 기록을 표시할 때는 그저 며칠이 아니라 '몇 년, 몇 개월, 며칠'처럼 표시하는 걸 흔히 볼 수 있습니다. 예컨대 한국 프로야구에서 최연소로 노히트 노런을 기록한 건 1993년 4월 30일 김원형이었는데 그는 당시 20세 9개월 25일이었습니다.
이런 계산을 할 때는 datedif 함수 도움이 필요합니다. 이 함수는 기본적으로 이렇게 씁니다.
=datedif(시작 날짜, 끝 날짜, "표시 속성")
여기서 표시 속성에는 △y(연도) △m(개월) △d(일자) △ym(연도를 계산하고 남은 개월) △yd(몇년을 계산하고 남은 일자) △md(개월을 계산하고 남은 일자) 등 6가지가 있습니다.
복잡합니다. 이럴 때는 오히려 실제 예제가 더 쉬울 수 있습니다. 계속 김원형 사례를 만져볼까요? 김원형은 1972년 7월 5일생이고, 노히트노런 날짜는 1993년 4월 30일입니다. 두 날짜를 A1, A2셀에 넣고 각각 어떤 결과가 나오는지 알아보겠습니다.
우리가 원하는 결과는 위에서 보신 것처럼 '20세 9개월 25일'이었습니다. 이를 토대로 알아보면 우리에게 필요한 표시 속성은 y, ym, md라는 걸 알 수 있습니다.
다른 속성도 의미가 없는 건 아닙니다. 김원형은 태어난지 249개월 또는 7604일 또는 20년 299일 만에 노히트노런을 기록했다고 써야 할 때가 있는 법이니까요. 필요에 따라 원하는 걸 골라쓰면 그만입니다. 현재 우리 목표와 맞지 않을 뿐이죠.
그러면 한꺼번에 '20세 9개월 25'일이 나타나도록 하려면 어떻게 해야 할까요? 엑셀에서 값을 연결할 때는 '&'를 쓰기만 하면 됩니다. 이렇게 말입니다.
=DATEDIF(A1,A2,"y")&"세 "&DATEDIF(A1,A2,"ym")&"개월 "&DATEDIF(A1,A2,"md")&"일"
그러면 아래 그림처럼 원하는 형태로 잘 나온다는 걸 확인하실 수 있습니다.
여러분은 태어나신지 몇 년 몇 개월 며칠이나 되셨나요? 아니면 지금 다니고 계신 회사에 몇 년 몇 개월 며칠이나 근무하셨나요? 이 함수를 알고 계시면 별로 어렵지 않게 답을 찾으셨을 줄로 믿습니다.
두 날짜사이 개월수/년도수 계산 공식
두 날짜사이 개월수/년도수 계산 목차 바로가기
두 날짜 사이 개월수 계산
= DATEDIF ( 시작일, 종료일, "m")
' 두 날짜 사이의 꽉찬 개월수를 계산합니다.
두 날짜 사이 년수 계산
= DATEDIF
( 시작일, 종료일, "y")
'두 날짜 사이의 꽉찬 년수를 계산합니다.
인수 | 설명 |
시작일 | 기간을 구할 시작일(이전 날짜) 입니다. |
종료일 | 기간을 구할 종료일(이후 날짜) 입니다. |
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
[엑셀공식] 두 날짜 사이 개월수/년수 계산 공식 – 예제파일
운영체제 | 호환성 |
Windows 버전 | 모든 엑셀 버전에서 사용 가능합니다. |
Mac 버전 | 모든 엑셀 버전에서 사용 가능합니다. |
두 날짜사이 개월수/년도수 계산 공식 알아보기
공식 설명엑셀 DATEDIF 함수는 두 날짜 사이의 기간을 년도, 개월, 일 등으로 선택해서 계산할 수 있는 함수입니다. DATEDIF 함수는 과거 LOTUS-1-2-3에서 사용되던 함수였는데요. 호환성을 위해 엑셀에서 추가함수 형식으로 지원되는 함수입니다. 따라서 DATEDIF 함수는 함수목록에 표시되지 않고, 함수 인수를 안내메시지도 표시되지 않습니다.
본 공식은 두 날짜 사이의 꽉찬 기간만 계산한다는 점을 주의해서 사용해야 합니다.다. 예를 들어, "2020-01-01 ~ 2021-12-31" 의 년도 차이를 계산하면 본 공식은 1을 반환합니다. 따라서 DATEDIF 함수는 근속년수, 나이, 감가상각기간 등 시작일을 기준으로 기간이 증가하는 경우에 사용합니다.
만약 두 날짜 사이의 정확한 기간을 계산해야 할 경우 YEARFRAC 함수를 사용해야 하는데요. 각 차이점과 사용법은 아래 영상강의에서 자세히 설명해드렸습니다.
공식의 동작원리- DATEDIF 함수에 입력되는 인수는 총 6가지 입니다.
=DATEDIF(시작일, 종료일, "단위")
단위 설명 Y 년도 수 M 개월 수 D 날짜 수 MD 월과 연도를 무시한 날짜 수 (2017-01-01 ~ 2018-02-03 : 2일) YM 일과 연도를 무시한 개월 수 (2018-01-01 ~ 2019-03-01 : 2개월) YD 연도를 무시한 날짜 수 (2018-01-01 ~ 2019-02-03 : 33일) - 근속년수는 단위를 "y"로 입력, 근속개월수는 단위를 "m"을 입력해서 계산합니다.
'근무시작일 : 2015-01-01
'오늘날짜 : 2021-08-01
=DATEDIF("2015-01-01","2021-08-01","y") ' => 6년 (근속년수)
=DATEDIF("2015-01-01","2021-08-01","m") ' => 79개월 (근속개월수)오빠두Tip : 근속년수와 근속개월수는 시작일이 지나야 값이 증가하므로 DATEDIF 함수를 사용해서 계산합니다.
- 만약 특정 기념일까지 남은 일수는 어떻게 계산해야 할까요? 예를들어, 결혼기념일이 2001-05-10, 오늘날짜가 2018-09-05 일 경우 아래와 같이 계산합니다.
'기념일 : 2001-05-01
'오늘날짜 : 2018-09-05
=DATEDIF("2001-05-01","2018-09-05","yd")
=118 ' => '9월 5일'과 '5월 1일' 사이 기간인 118일이 기념일까지 남은 기간으로 계산됩니다