엑셀 날짜차이 계산하는 법 | DAYS, DATEDIF 등

엑셀 날짜차이 계산하는 법을 찾고 계신가요? 시작일과 종료일 사이의 일, 월, 연 수를 계산하는 방법을 이 글에서 확인할 수 있습니다. 또 공휴일과 주말을 제외한 날짜 차이를 계산하는 방법, 쉬는 날이 각각 다른 직원들의 근무 기간 날짜 차이를 구하는 방법 까지 알아 볼게요.


엑셀 날짜차이 계산하는 법 5가지


< 영상 설명 >


< 그림 설명 >

1.단순한 날짜차이 계산(DAYS 함수)

  • =DAYS(종료일,시작일) 
  • 두 날짜 사이의 일 수를 계산해주는 함수

1)기본사용방법

단순한 시작일과 종료일 간의 날짜 차이를 구할 때 DAYS 라는 함수를 사용할 수 있습니다. 아래와 같이 수식을 입력 해 줍니다.

=DAYS(C3,B3)

1.단순한 날짜차이 계산(DAYS 함수)


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

2.단순한 날짜차이 계산(DAYS 함수)


2)ABS 함수(절대값)

그런데 시작일이 종료일 보다 더 늦은 날짜인 경우가 있을 수 있죠? 이 경우에도 아래와 같이 똑같이 함수 식을 입력 해 볼게요.

=DAYS(C3,B3)

3.단순한 날짜차이 계산(DAYS 함수)


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

4.단순한 날짜차이 계산(DAYS 함수)


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

=ABS(DAYS(C3,B3))

5.단순한 날짜차이 계산(DAYS 함수)


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

6.단순한 날짜차이 계산(DAYS 함수)



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”)

7.다양한 방식으로 날짜차이 계산(DATEDIF 함수)


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

8.다양한 방식으로 날짜차이 계산(DATEDIF 함수)


개월 수, 일 수도 세번째 인수에 M, D 를 각각 입력하여 구할 수 있고요. 그 외 구하고자 하는 값은 아래 표와 같이 입력하여 구할 수 있습니다.

인수 값
Y연도 수
M(버그)개월 수
D일 수
MD(버그)일 수(연,월 무시)
YM개월 수(연,일 무시)
YD일 수(연 무시)

다만 주의해야 될 점은 세 번째 인수에 M, MD 를 입력 하는 경우 버그가 쉽게 날 수 있다는 점입니다. 그래서 M과 MD 는 왠만하면 사용하지 않는 것이 좋습니다.


3.정확한 날짜차이 계산(YEARFRAC 함수)

  • =YEARFRAC(시작일,종료일,[*날짜 계산기준])
  • 1년 기준으로 시작일과 종료일 사이의 기간을 비율로 표시해주는 함수

*날짜 계산기준 이란?

인수 값
0 또는 생략한달 30일, 1년 360일로 계산(미국 NASD 기준)
11년의 실제기간(윤년인 경우 366일로 계산)
21년 360일로 계산
31년 365일로 계산
4한달 30일, 1년 360일로 계산(유럽식)


DATEDIF 함수는 사용하기 편하지만, 만으로 채워지지 않는 기간은 버린다는 단점이 있습니다. 아래 사진에서도 1년 6개월 이라는 기간을 1년으로만 표기 하고 있죠. 따라서 정확한 기간을 구하고자 하는 경우 YEARFRAC 함수를 사용할 수 있습니다.

=DATEDIF(B3,C3,”Y”) → 1

=YEARFRAC(B3,C3) → 1.41944444

9.정확한 날짜차이 계산(YEARFRAC 함수)


YEARFRAC 함수를 사용하면 정확한 기간을 계산 할 수 있습니다.참고로 YEARFRAC 함수의 세 번째 인수는 꼭 입력을 하지 않아도 됩니다.


4.주말, 공휴일 제외하고 날짜차이 계산(NETWORKDAYS 함수)

  • =NETWORKDAYS(시작일,종료일,[*공휴일])
  • 시작일과 종료일 사이 기간 중 주말, 공휴일을 제외한 일 수를 구해주는 함수

*공휴일 인수에는 빼고자 하는 휴일을 입력해주면 됨

주말과 공휴일을 자동으로 빼고 기간을 계산 하는 함수가 있습니다. 바로 NETWORKDAYS 함수 입니다. 주말과 공휴일을 모두 빼고 기간을 계산하기 위해 아래와 같이 함수 식을 입력 합니다.

=NETWORKDAYS(B3,C3,$E$3:$E$4) → 369

10.주말, 공휴일 제외하고 날짜차이 계산(NETWORKDAYS 함수)


이 경우 주말은 기본으로 제외가 되구요.

공휴일은 우리가 직접 입력을 해줘야 됩니다. 세 번째 인수에 공휴일이 입력되어 있는 범위를 선택해 주면 되는데요. 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번 옵션을 입력해 주면 됩니다.

11.특정 휴일을 제외한 날짜차이 계산(NETWORKDAYS.INTL 함수)


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

13.특정 휴일을 제외한 날짜차이 계산(NETWORKDAYS.INTL 함수)


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

14.특정 휴일을 제외한 날짜차이 계산(NETWORKDAYS.INTL 함수)


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

15.특정 휴일을 제외한 날짜차이 계산(NETWORKDAYS.INTL 함수)


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

16.특정 휴일을 제외한 날짜차이 계산(NETWORKDAYS.INTL 함수)



< 추천글 >