엑셀 날짜차이 계산하는 법을 찾고 계신가요? 시작일과 종료일 사이의 일, 월, 연 수를 계산하는 방법을 이 글에서 확인할 수 있습니다. 또 공휴일과 주말을 제외한 날짜 차이를 계산하는 방법, 쉬는 날이 각각 다른 직원들의 근무 기간 날짜 차이를 구하는 방법 까지 알아 볼게요.
엑셀 날짜차이 계산하는 법 5가지
< 영상 설명 >
< 그림 설명 >
1.단순한 날짜차이 계산(DAYS 함수)
- =DAYS(종료일,시작일)
- 두 날짜 사이의 일 수를 계산해주는 함수
1)기본사용방법
단순한 시작일과 종료일 간의 날짜 차이를 구할 때 DAYS 라는 함수를 사용할 수 있습니다. 아래와 같이 수식을 입력 해 줍니다.
=DAYS(C3,B3)

엔터 키를 누르면 아래와 같이 시작일과 종료일 사이 일수인 62일 이라는 결과값이 나옵니다.

2)ABS 함수(절대값)
그런데 시작일이 종료일 보다 더 늦은 날짜인 경우가 있을 수 있죠? 이 경우에도 아래와 같이 똑같이 함수 식을 입력 해 볼게요.
=DAYS(C3,B3)

엔터키를 눌렀더니 아래와 같이 음수 값이 나오는 걸 알 수 있습니다. 양수 값이 나오게 하려면 어떻게 해야 될까요?

바로 ABS 라는 절대값 함수를 입력 해 주면 됩니다. 아래와 같이 함수 식을 입력 해 줍니다.
=ABS(DAYS(C3,B3))

그럼 아래 사진처럼 음수 값이 아닌 양수 값이 나오는 걸 확인할 수 있습니다.

2.다양한 방식으로 날짜차이 계산(DATEDIF 함수)
- =DATEDIF(시작일,종료일,*반환값 종류)
- 두 날짜 사이의 일,월,연도 수를 구해주는 함수
*반환값 종류 란?
| 인수 값 | 뜻 | 비고 |
|---|---|---|
| Y | 연도 수 | – |
| M | 개월 수 | 버그 O |
| D | 일 수 | – |
| MD | 일 수 | 연,월 무시(버그 O) |
| YM | 개월 수 | 연,일 무시 |
| YD | 일 수 | 연 무시 |
- DATEDIF 함수는 공식적으로 문서화된 함수가 아니므로 인수가 표시되지 않음
- 반환값 종류에 M, MD 입력 시 버그 잘 생김
- DATEDIF 함수로 2025.1.3 과 2025.1.6 차이를 구하면 3이 결과값으로 나옴. 하루를 더해야 한다면 수식에 +1 을 해줘야 함.
시작일과 종료일 사이의 일수, 개월수, 연수를 구할 때 DATEDIF 라는 함수를 활용할 수 있습니다. 시작일과 종료일 사이의 연도 수를 구하기 위해 아래와 같이 함수 식을 입력 하겠습니다.
=DATEDIF(B3,C3,”Y”)

엔터 키를 누르면 아래와 같이 1이라는 결과 값이 나옵니다. 즉 시작일과 종료일 사이의 연도만 계산한 기간이 1년이라는 겁니다. 실제로는 1년 6개월 정도의 기간이지만 1년이 안 되는 기간은 버리기 때문에 1년이라는 결과 값이 나온 것입니다.

개월 수, 일 수도 세번째 인수에 M, D 를 각각 입력하여 구할 수 있고요. 그 외 구하고자 하는 값은 아래 표와 같이 입력하여 구할 수 있습니다.
| 인수 값 | 뜻 |
|---|---|
| Y | 연도 수 |
| M(버그) | 개월 수 |
| D | 일 수 |
| MD(버그) | 일 수(연,월 무시) |
| YM | 개월 수(연,일 무시) |
| YD | 일 수(연 무시) |
다만 주의해야 될 점은 세 번째 인수에 M, MD 를 입력 하는 경우 버그가 쉽게 날 수 있다는 점입니다. 그래서 M과 MD 는 왠만하면 사용하지 않는 것이 좋습니다.
3.정확한 날짜차이 계산(YEARFRAC 함수)
- =YEARFRAC(시작일,종료일,[*날짜 계산기준])
- 1년 기준으로 시작일과 종료일 사이의 기간을 비율로 표시해주는 함수
*날짜 계산기준 이란?
| 인수 값 | 뜻 |
|---|---|
| 0 또는 생략 | 한달 30일, 1년 360일로 계산(미국 NASD 기준) |
| 1 | 1년의 실제기간(윤년인 경우 366일로 계산) |
| 2 | 1년 360일로 계산 |
| 3 | 1년 365일로 계산 |
| 4 | 한달 30일, 1년 360일로 계산(유럽식) |
DATEDIF 함수는 사용하기 편하지만, 만으로 채워지지 않는 기간은 버린다는 단점이 있습니다. 아래 사진에서도 1년 6개월 이라는 기간을 1년으로만 표기 하고 있죠. 따라서 정확한 기간을 구하고자 하는 경우 YEARFRAC 함수를 사용할 수 있습니다.
=DATEDIF(B3,C3,”Y”) → 1
=YEARFRAC(B3,C3) → 1.41944444

YEARFRAC 함수를 사용하면 정확한 기간을 계산 할 수 있습니다.참고로 YEARFRAC 함수의 세 번째 인수는 꼭 입력을 하지 않아도 됩니다.
4.주말, 공휴일 제외하고 날짜차이 계산(NETWORKDAYS 함수)
- =NETWORKDAYS(시작일,종료일,[*공휴일])
- 시작일과 종료일 사이 기간 중 주말, 공휴일을 제외한 일 수를 구해주는 함수
*공휴일 인수에는 빼고자 하는 휴일을 입력해주면 됨
주말과 공휴일을 자동으로 빼고 기간을 계산 하는 함수가 있습니다. 바로 NETWORKDAYS 함수 입니다. 주말과 공휴일을 모두 빼고 기간을 계산하기 위해 아래와 같이 함수 식을 입력 합니다.
=NETWORKDAYS(B3,C3,$E$3:$E$4) → 369

이 경우 주말은 기본으로 제외가 되구요.
공휴일은 우리가 직접 입력을 해줘야 됩니다. 세 번째 인수에 공휴일이 입력되어 있는 범위를 선택해 주면 되는데요. E3:E4 에 공휴일이 입력되어 있기 때문에 이 범위를 선택해 줍니다. 만약 다른 데이터가 있다면 이 범위가 바뀌지 않게 절대 참조까지 해 주면 됩니다.
주말을 제외한 기간은 370 일이 나오고요. 공휴일을 제외한 기간은 369 일이 나옵니다. 2025.3.1 이 토요일이기 때문에 2025.10.3 일만 제외하고 369 일이 나온 겁니다.
5.특정 휴일을 제외한 날짜차이 계산(NETWORKDAYS.INTL 함수)
- 엑셀 2010 이후 버전 사용 가능
- =NETWORKDAYS.INTL(시작일,종료일,[*지정 휴일],[공휴일])
- 지정한 휴일을 제외한 기간 차이 일 수를 구해주는 함수
*지정 휴일 이란?
| 인수 값 | 휴일로 정할 요일 | 인수 값 | 휴일로 정할 요일 |
|---|---|---|---|
| 1 또는 생략 | 토,일 | 11 | 일 |
| 2 | 일,월 | 12 | 월 |
| 3 | 월,화 | 13 | 화 |
| 4 | 화,수 | 14 | 수 |
| 5 | 수,목 | 15 | 목 |
| 6 | 목,금 | 16 | 금 |
| 7 | 금,토 | 17 | 토 |
*공휴일 인수에는 빼고자 하는 공휴일 입력
이번엔 어떤 회사의 각 직원 쉬는 요일이 다 다른 경우, 근무일수를 구하는 방법 입니다.이 경우에는 NETWORKDAYS.INTL 함수를 이용해야 합니다. 아래와 같이 함수 식을 입력 합니다.
=NETWORKDAYS.INTL(C3,D3,3)
세 번째 인수에는 임의로 제외 할 쉬는 요일을 선택해 주면 됩니다. ‘김철수’ 는 ‘월,화’ 쉬기 때문에 ‘월,화’ 를 휴무일로 지정 하는 3번 옵션을 입력해 주면 됩니다.

엔터 키를 누르면 아래와 같이 기간 중 모든 월요일과 화요일을 제외한 총 근무일수가 나옵니다.

‘박진우’ 는 ‘금, 토’ 만 쉬기 때문에 7을 세 번째 인수에 입력 해 줍니다. 그럼 금요일과 토요일을 제외한 총 기간의 일 수를 반환 해 줍니다.

‘최정민’ 은 ‘월요일’ 에만 쉬기 때문에 12번 옵션을 입력해 주면 되구요.

‘이하연’ 은 ‘토요일’ 과 ‘일요일’ 에만 쉬기 때문에 1번 옵션을 입력해 주면 됩니다. 토요일과 일요일은 기본으로 세팅 되어 있는 휴무 요일이므로, 세 번째 인수에 아무것도 입력 하지 않는 경우 자동으로 토요일과 일요일을 제외하고 기간을 계산 합니다.

< 추천글 >
