Menu

엑셀 DATEDIF 함수 사용법: 두 날짜 사이의 년, 개월, 일

=DATEDIF(A2,B2,"M")는 A2의 시작일과 B2의 종료일 사이의 꽉 찬 개월 수를 셉니다. 단위 Y, M, D, YM, MD, YD, DATEDIF가 함수 목록에 없는 이유, #NUM! 오류를 알아봅니다.

이 페이지의 모든 시트는 실제로 동작합니다. 숫자나 수식을 바꾸면 다시 계산됩니다.

=DATEDIF(A2,B2,"M")는 A2의 시작일과 B2의 종료일 사이의 꽉 찬 개월 수를 셉니다. 세 번째 인수인 단위가 무엇을 셀지 정합니다. "Y"는 년, "M"은 개월, "D"는 일이며, 날짜의 일부를 무시하는 단위가 세 개 더 있습니다.

한 쌍의 날짜에 모든 DATEDIF 단위 적용
E3
ABCDE
1StartEndUnitResult
22024-04-152026-09-10Y2
3M28
4D878
5YM4
6MD26
7YD148
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

2024-04-15부터 2026-09-10까지는 꽉 찬 2년, 꽉 찬 28개월, 878일입니다. B2의 종료일을 바꾸고 각 단위가 어떻게 움직이는지 보세요. 단위는 수식에 직접 입력해도 되고("M"), 여기처럼 셀에서 읽어도 됩니다.

DATEDIF 구문과 단위

=DATEDIF(start_date, end_date, unit)
단위세는 것2024-04-15부터 2026-09-10까지
"Y"꽉 찬 햇수2
"M"꽉 찬 개월 수28
"D"일수878
"YM"마지막으로 꽉 찬 해 이후의 개월 수4
"MD"마지막으로 꽉 찬 달 이후의 일수26
"YD"마지막으로 꽉 찬 해 이후의 일수148

"꽉 찬"이라는 말은 DATEDIF가 절대 올림하지 않는다는 뜻입니다. 1월 31일부터 2월 28일까지는 0개월입니다. 2월 28일이 한 달이 되는 시점보다 앞이기 때문입니다. 단위는 대소문자를 구분하지 않지만("m"도 동작), 따옴표 안에 쓰거나 셀에 넣어야 합니다.

DATEDIF가 함수 목록에 없는 이유

DATEDIF는 Lotus 1-2-3에서 엑셀로 들어온 함수이며, Microsoft는 호환성을 위해서만 이것을 남겨 두고 있습니다. 함수 삽입 대화 상자에 없고, 수식 자동 완성이 제안하지 않으며, 인수를 보여 주는 도움말도 없습니다. 그래도 Windows와 Mac의 모든 엑셀 버전과 Google 스프레드시트에서 계산됩니다. 이름 전체와 여는 괄호 =DATEDIF(를 입력하고 인수를 직접 넣으세요.

두 날짜 사이의 개월 수

대부분의 계약, 구독, 근속 보고서에 필요한 것은 꽉 찬 개월 수입니다. 소수로 된 값이 필요하면 YEARFRAC(A2,B2)*12가 소수 부분을 남긴 개월 수를 반환합니다(기본 기준은 모든 달을 30일로 셉니다).

각 구독의 개월 수
C2
ABCD
1StartEndFull monthsDecimal months
22025-03-102026-01-0599.8
32024-04-152026-09-102828.8
42026-01-312026-02-2800.9
52025-11-012026-05-0166.0
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

첫 번째 구독은 꽉 찬 9개월 동안 유지되었습니다. 1월 5일은 10일보다 앞이므로 열 번째 달은 세지 않습니다. 세 번째 행은 1월 31일의 경우로 0개월입니다.

년, 개월, 일 함께 쓰기

"Y", "YM", "MD"는 함께 쓰도록 만들어졌습니다. 각 단위가 앞 단위가 멈춘 곳에서 이어 세므로, 셋을 합치면 "정확히 얼마 동안"에 답합니다. 위 날짜라면 2년 4개월 26일입니다. 나이 계산도 생년월일에 같은 세 단위를 씁니다.

근속 기간
E2
ABCDEF
1HiredYearsMonthsDaysServiceAs of
22019-06-0373277y 3m 27d2026-09-30
32023-11-20210102y 10m 10d
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

첫 번째 직원은 2026-09-30 기준으로 7년 3개월 27일을 근무했습니다.

DATEDIF가 #NUM!을 반환하는 이유

DATEDIF는 거꾸로 세지 않습니다. 시작일이 종료일보다 늦으면 결과는 #NUM!입니다. 순서가 바뀔 수 있다면 MIN으로 이른 날짜를, MAX로 늦은 날짜를 DATEDIF에 주세요.

종료일보다 늦은 시작일
C2
ABCD
1StartEndDATEDIFWith MIN and MAX
22026-03-102026-01-05#NUM!64
#NUM! 숫자가 이 함수에서 쓸 수 있는 범위를 벗어났습니다.

C2는 #NUM!을 보여 주고 D2는 64를 반환합니다. 일수만 필요하다면 =ABS(B2-A2)가 DATEDIF 없이 같은 64를 냅니다. DATEDIF는 "W" 같은 알 수 없는 단위에도 #NUM!을, 날짜가 엑셀이 날짜로 읽지 못하는 텍스트이면 #VALUE!를 반환합니다.

MD 단위는 틀릴 수 있습니다

Microsoft의 공식 문서도 "MD"를 권장하지 않습니다. 시작일의 날짜가 종료일 전달에 없으면 음수를 반환할 수 있기 때문입니다.

1월 31일부터의 MD
C2
ABCD
1StartEndMDD
22026-01-312026-03-01-229
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

1월 31일부터 3월 1일까지 "MD" 결과는 -2입니다. DATEDIF가 "2월 31일"부터 세는데, 이 날짜가 종료일보다 이틀 뒤인 3월 3일로 넘어가기 때문입니다. 일수 29는 맞습니다. 시작일이 29일에서 31일 사이일 수 있다면 기간을 일수로 보여 주거나 MD 값을 직접 확인하세요.

연습: 개월 수 세기

직접 해 보기
C2
ABC
1StartEndMonths
22025-03-102026-01-05
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: C2에서 A2의 시작일과 B2의 종료일 사이의 꽉 찬 개월 수를 세세요.

직접 해 보기: 순서와 상관없이
C2
ABC
1Date 1Date 2Days
22026-04-182026-02-01
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: C2에서 어느 날짜가 먼저 오든 두 날짜 사이의 일수를 세세요.

자주 묻는 질문

엑셀에서 DATEDIF는 무엇을 하나요?

두 날짜 사이의 꽉 찬 년, 개월, 일 수를 셉니다. 년은 =DATEDIF(A2,B2,"Y"), 개월은 "M", 일은 "D"입니다. 시작일이 먼저 와야 합니다.

엑셀에서 DATEDIF를 찾을 수 없는 이유는 무엇인가요?

DATEDIF는 Lotus 1-2-3과의 호환성을 위해 남아 있는 함수라서 엑셀이 함수 삽입 대화 상자와 수식 자동 완성에서 뺐습니다. 그래도 모든 버전에서 동작합니다. =DATEDIF(를 끝까지 입력하고 인수를 직접 넣으세요.

DATEDIF가 #NUM!을 반환하는 이유는 무엇인가요?

시작일이 종료일보다 늦기 때문입니다. 인수를 바꾸거나, 어느 날짜가 먼저인지 모를 때는 =DATEDIF(MIN(A2,B2),MAX(A2,B2),"D")를 쓰세요.

DATEDIF의 YM, MD, YD는 어떻게 다른가요?

날짜의 일부를 무시합니다. "YM"은 꽉 찬 햇수 뒤에 남는 개월 수, "MD"는 꽉 찬 개월 뒤에 남는 일수, "YD"는 꽉 찬 햇수 뒤에 남는 일수를 냅니다. "Y", "YM", "MD"를 함께 쓰면 년, 개월, 일로 나타낸 나이가 됩니다.

DATEDIF는 Google 스프레드시트에서도 동작하나요?

네, 같은 인수와 단위로 동작합니다. 엑셀과 달리 Google 스프레드시트는 함수 도움말에도 DATEDIF를 보여 줍니다.

Coddy 프로그래밍 언어 일러스트

Coddy로 코딩 배우기

시작하기