EXCEL 다루기

[ 응용 ] 엑셀 날짜 계산하기, 근무일수 계산하기, 주말 및 공휴일 포함 또는 제외

카루루1007 2024. 11. 27. 11:54
728x90
반응형

 들어가며

 

아래 그림과 같이 업무의 시작일과 업무의 종료일이 있다고 했을 때

며칠을 일했는지 총 업무일수(출근일수)를 계산하려 합니다.

 

 총업무일 수 계산하기

 

총업무일 수를 계산을 다음과 같이 할 수 있습니다.

 

DATEDIF() 함수 사용

=DATEDIF(시작일, 종료일, "단위")
단위 옵션

1. "Y": 완전한 년도
2. "M": 완전한 월수
3. "D": 일수
4. "MD": 월 차이를 뺀 나머지 일수
5. "YM": 년 차이를 뺀 나머지 월수
6. "YD": 년 차이를 뺀 나머지 일수

 

아래 자료에서 다음과 같이 함수식을 입력하면 4가 출력됩니다.

=DATEDIF(A2,B2,"D")

 

DATEIF 함수는 첫 시작일은 제외하므로 함수식에 +1을 해주면 총 근무일수를 계산할 수 있습니다.

=DATEDIF(A2,B2,"D")+1

 

단순히 날짜의 뺄셈연산을 하는 방법이 있습니다.

=B2-A2+1

 

728x90

DAYS 함수를 사용하는 방법도 있습니다.

주의점은 종료날짜가 첫 번째 인자로 사용된다는 점입니다.

=DAYS(종료날짜, 시작날짜)

 

아래 자료에서는 다음과 같이 함수식을 입력하면 됩니다.

=DAYS(B2,A2)+1

 

참고로 DATEDIF 함수를 엑셀에서 찾을 수는 없지만,

사용이 가능한 함수입니다.

 

위 세 가지 방법은 단순히 날짜 사이의 일수만 계산할 뿐

주말이나 공휴일을 반영해 주지는 못합니다.

 

반응형

 주말은 제외한 일수 계산하기

 

주말을 제외한 날짜를 계산하려면

NETWORKDAYS() 함수를 사용하면 됩니다.

=NETWORKDAYS(시작일, 종료일, [휴일])

 

다음은 2024년 2월 달력입니다.

주말(토, 일)을 제외한 일수는 21일임을 확인할 수 있습니다.

 

아래 함수식을 사용하면 주말을 제외한 총일수를 확인할 수 있습니다.

=NETWORKDAYS(A2,B2)

 

NETWORKDAYS() 함수는 시작일을 포함하므로 별도로 +1을 해주지 않아도 됩니다.

 

 공휴일까지 제외한 일수 계산

 

NETWORKDAYS() 함수세 번째 인자에 휴일 목록을 지정할 수 있습니다.

=NETWORKDAYS(시작일, 종료일, [휴일])

 

달력에서 확인할 수 있듯이,

2024년 2월은 주말을 제외하면 9일과 12일이 쉬는 날입니다.

 

먼저 아래와 같이 데이터를 만들어줍니다.

 

E2셀과 E3셀에 주말을 제외하고 2월에 쉬는 날짜 목록을 작성해 주었습니다.

그리고 아래와 같이 함수식을 입력하면

주말을 제외한 공휴일까지 계산하여 총일수를 구할 수 있습니다.

=NETWORKDAYS(A2,B2,E2:E3)

 

 주말 일부 포함하여 날짜 계산, 주 4일제 회사 날짜 계산

 

경우에 따라서는 주 4일제를 시행해서 

월요일 ~ 목요일에 일을 하고 금요일~일요일이 쉬는 날인 회사도 있을 수 있고,

주5일제 이지만

일요일, 월요일은 쉬는데 화요일~토요일이 근무일인 회사가 있을 수도 있습니다.

 

이런 경우 NETWORKDAYS 함수로 계산하기는 보다는

NETWORKDAYS.INTL() 함수를 사용할 것을 추천드립니다.

=NETWORKDAYS.INTL(시작일, 종료일, [주말설정], [휴일목록])

 

NETWORKDAYS() 함수와 다른 점은

세 번째 인자에 주말설정을 할 수 있다는 점입니다.

세번째 인자는 다음과 같이 사용할 수 있습니다.

1. 1 : 토, 일 주말
2. "0000000" : 주말 없음
3. "0000001" : 일요일만 주말
4. "0000011" : 토요일, 일요일 주말
5. "1111111" : 모두 주말

 

각각의 자릿수가 "월화수목금토일"을 의미하며,

주말이 되는 부분에 "1"을 채워주시면 됩니다.

 

만약 우리 회사는 주 4일제이며, 화요일 ~ 금요일 일을 할 때 

근무일수는 다음과 같이 계산할 수 있습니다.

=NETWORKDAYS.INTL(A2,B2,"1000011")

 

휴일 목록과 주말 날짜가 겹치면

중복계산되지 않고, 엑셀 함수가 잘 알아서 중복되는 날짜는 제외하고 계산해 줍니다.

2024-02-12일은 월요일로 원래 쉬는 날이므로 중복되고 

2024-02-09일만 추가로 쉬는 날이 됩니다.

 

월요일~토요일까지 주 6일제로 일을 한다면 

다음과 같이 함수식을 사용하시면 됩니다.

=NETWORKDAYS.INTL(A2,B2,"0000001")

 

 참고사항

 

NETWORKDAYS 함수NETWORKDAYS.INTL 함수

마지막 인자로 특정 날짜의 목록을 받을 수 있습니다.

위와 같이 별도의 리스트를 만들어 사용하실 때에

반드시 형식이 날짜 형식인지 확인하셔야 합니다.

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

 

728x90
반응형