엑셀에서 입사일과 퇴사일 사이의 근무 개월 수를 계산하거나 계약 기간, 사용 기간, 가입 기간 등을 구하다 보면 두 날짜 사이의 개월 수를 계산해야 하는 경우가 있습니다.
단순히 날짜를 빼면 일수로 계산되기 때문에 개월 수를 구하려면 별도의 함수를 사용하는 것이 좋습니다.
이번 글에서는 엑셀 개월 수 계산 방법을 DATEDIF 함수부터 YEAR·MONTH 함수를 이용하는 방법까지 예제와 함께 알아보겠습니다.
엑셀 개월 수 계산 기본 예제
다음과 같은 데이터가 있다고 가정해 보겠습니다.
| 시작일 | 종료일 |
|---|---|
| 2024-01-15 | 2026-08-20 |
시작일이 A2 셀, 종료일이 B2 셀에 입력되어 있다면 두 날짜 사이의 개월 수를 여러 가지 방법으로 계산할 수 있습니다.
가장 간단한 방법은 DATEDIF 함수를 사용하는 것입니다.
1. DATEDIF 함수로 개월 수 계산하기
두 날짜 사이의 완성된 개월 수를 구하려면 다음 수식을 입력합니다.
=DATEDIF(A2,B2,"m")
여기에서 각각의 의미는 다음과 같습니다.
- A2 : 시작 날짜
- B2 : 종료 날짜
"m": 두 날짜 사이의 완전한 개월 수
예를 들어 시작일이 2024년 1월 15일이고 종료일이 2026년 8월 20일이라면 결과는 31개월입니다.
즉, DATEDIF 함수의 "m" 옵션은 두 날짜 사이에서 완전히 지난 개월 수를 계산할 때 유용합니다.
2. 몇 년 몇 개월인지 표시하는 방법
전체 개월 수가 아니라 2년 7개월처럼 표시하고 싶을 수도 있습니다.
이때는 DATEDIF 함수를 두 번 사용하면 됩니다.
=DATEDIF(A2,B2,"y")&"년 "&DATEDIF(A2,B2,"ym")&"개월"
결과는 다음과 같은 형태로 표시됩니다.
2년 7개월
여기서 "y"는 완전히 지난 연수를 계산하고 "ym"은 연도를 제외한 나머지 개월 수를 계산합니다.
근속기간이나 계약기간 등을 사람이 읽기 쉬운 형태로 표시할 때 활용하기 좋은 방법입니다.
3. YEAR와 MONTH 함수로 전체 개월 수 계산하기
DATEDIF 함수를 사용하지 않고 YEAR와 MONTH 함수로 계산하는 방법도 있습니다.
수식은 다음과 같습니다.
=(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2)
계산 원리는 간단합니다.
연도 차이를 구한 다음 12를 곱하고 여기에 월 차이를 더하는 방식입니다.
예를 들어 2024년 1월에서 2026년 8월까지라면
(2026-2024)×12+(8-1)
계산 결과는 31개월입니다.
다만 이 방법에는 주의할 점이 있습니다.
날짜의 ‘일’ 부분은 고려하지 않습니다.
예를 들어 시작일이 2024년 1월 31일이고 종료일이 2024년 2월 1일이어도 월만 기준으로 계산하면 1개월이라는 결과가 나옵니다.
따라서 실제로 완전히 경과한 개월 수가 필요하다면 DATEDIF 함수를 사용하는 편이 적합합니다.
4. 오늘 날짜를 기준으로 개월 수 계산하기
입사일부터 현재까지의 근속 개월 수나 가입일부터 현재까지의 이용 개월 수를 자동으로 계산하고 싶다면 TODAY 함수를 함께 사용하면 됩니다.
A2 셀에 시작일이 있다면 다음과 같이 입력합니다.
=DATEDIF(A2,TODAY(),"m")
TODAY 함수는 오늘 날짜를 자동으로 반환하기 때문에 파일을 열거나 엑셀에서 날짜가 다시 계산될 때 현재 날짜를 기준으로 결과도 갱신됩니다.
몇 년 몇 개월 형태로 나타내고 싶다면 다음과 같이 사용할 수 있습니다.
=DATEDIF(A2,TODAY(),"y")&"년 "&DATEDIF(A2,TODAY(),"ym")&"개월"
예를 들어 결과가 다음과 같이 나타날 수 있습니다.
3년 5개월
근속기간이나 회원 가입기간 등을 관리하는 엑셀 문서에서 특히 유용합니다.
5. 개월 수를 무조건 월 단위로 계산할 때
업무에 따라서는 완전히 지난 개월 수가 아니라 달력상 몇 개월 차이인지만 필요한 경우가 있습니다.
이 경우 다음 수식이 간단합니다.
=(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2)
반대로 시작일과 종료일의 날짜까지 고려하여 완전히 경과한 개월 수가 필요하다면 다음 수식을 사용합니다.
=DATEDIF(A2,B2,"m")
두 수식은 비슷해 보이지만 계산 기준이 다르므로 목적에 따라 선택해야 합니다.
6. 1개월 미만도 한 달로 계산하려면?
실무에서는 하루라도 다음 달로 넘어가면 1개월로 계산해야 하는 경우도 있습니다.
예를 들어
- 시작일 : 2026-01-15
- 종료일 : 2026-02-10
이라면 DATEDIF 기준으로는 완전한 한 달이 지나지 않았기 때문에 0개월이 될 수 있습니다.
반면 단순히 시작월과 종료월을 포함해 월 단위 기간을 세고 싶다면 계산 기준을 별도로 정해야 합니다.
예를 들어 시작월을 1개월째로 포함한다면 다음과 같이 계산할 수 있습니다.
=(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2)+1
이 경우 1월부터 2월까지는 2개월로 계산됩니다.
따라서 보험료 납입월, 관리비 부과월, 프로젝트 진행월처럼 월 자체의 개수를 계산하는 업무라면 DATEDIF보다 이런 방식이 더 적합할 수 있습니다.
엑셀 개월 수 계산 방법 정리
개월 수를 계산할 때는 무엇을 ‘1개월’로 볼 것인지 먼저 결정하는 것이 중요합니다.
| 원하는 결과 | 수식 |
|---|---|
| 완전히 지난 개월 수 | =DATEDIF(A2,B2,"m") |
| 몇 년 몇 개월 | =DATEDIF(A2,B2,"y")&"년 "&DATEDIF(A2,B2,"ym")&"개월" |
| 연·월만 기준으로 전체 개월 수 | =(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2) |
| 시작월까지 포함한 월 개수 | =(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2)+1 |
| 시작일부터 오늘까지 개월 수 | =DATEDIF(A2,TODAY(),"m") |
가장 일반적인 두 날짜 사이의 실제 경과 개월 수를 계산하려면 DATEDIF 함수가 편리합니다.
반면 날짜의 ‘일’은 관계없이 2025년 1월에서 2025년 5월처럼 월 차이 자체를 계산하려면 YEAR와 MONTH 함수를 조합하는 방법이 적합합니다.
DATEDIF 함수 사용 시 오류가 발생한다면?
DATEDIF 함수를 사용했는데 #NUM! 오류가 나타난다면 시작일과 종료일의 순서를 먼저 확인해보는 것이 좋습니다.
시작 날짜보다 종료 날짜가 이전이면 정상적인 기간을 계산할 수 없기 때문입니다.
또한 날짜가 실제 날짜 값이 아니라 문자로 저장되어 있는지도 확인해야 합니다.
셀에 2026-01-01처럼 보이더라도 텍스트로 저장된 경우 날짜 함수가 제대로 작동하지 않을 수 있습니다.
마무리
엑셀에서 개월 수를 계산하는 가장 대표적인 방법은 DATEDIF 함수입니다.
두 날짜가 A2와 B2에 있다면
=DATEDIF(A2,B2,"m")
수식 하나만으로 완전히 지난 개월 수를 계산할 수 있습니다.
특히 근속 개월 수, 계약기간, 가입기간, 사용기간, 대출기간 등을 계산할 때 활용도가 높습니다.
다만 월이 바뀌기만 하면 1개월로 볼 것인지, 정확히 한 달이 지나야 1개월로 볼 것인지에 따라 결과가 달라질 수 있으므로 업무에서 사용하는 개월 수의 기준을 먼저 정한 뒤 수식을 선택하는 것이 중요합니다.