카테고리 없음

날짜간의 차이 계산(3) - NetWorkdays, NetWorkdays.Intl 함수

별동산 2023. 4. 7. 08:10
반응형

NetWorkdays, NetWorkdays.Intl 함수는 두 날짜 사이의 총 근무일수를 반환해주는 함수이며, intl이 붙은 NetWorkdays.Intl함수는 International, 국제적인 이라는 의미이므로 나라 간의 주말과 근무 형태 등 차이를 반영할 수 있도록 인수(weekend)를 추가한 함수입니다.

 

1. 구문

NETWORKDAYS(start_date, end_date, [holidays])

NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])

 

Days 함수는 종료일, 시작일 순으로 입력하는데, NetWorkdays(.Intl) 함수는 시작일, 종료일 순으로 입력하며, Days함수와는 달리 holidays(휴일) 인수가 있습니다. 또한 Days함수는 근무일을 고려하지 않고 시작일과 종료일 간의 차이를 구한다는 점이 큰 차이점입니다.

 

NetWorkdays 함수와 NetWorkdays.Intl 함수의 차이는 세번째에 있는 weekend 인수입니다.

 

대괄호([])는 인수가 선택 요소라는 것을 나타냅니다.

 

따라서, weekend(주말)가 생략되면 토요일과 일요일이 주말이고, hoiddays(휴일)를 생략하면 엑셀을 기준으로 합니다. 따라서, 설날, 추석 등은 아시아권에만 있는 제도이므로 휴일에서 제외될 것입니다.

 

holidays는 일반적인 휴일이외에 휴일을 추가로 지정할 수 있습니다. 예를 들어 회사의 창립기념일, 근로자의 날 등 나라별, 회사별 특성에 따른 특정일을 여러 개 지정할 수 있습니다. 일반적으로 범위로 입력하나, 중괄호 사이에 여러 개의 날짜를 배열로 넣을 수 있습니다.

 

weekend : 나라별로 주말과 주 5일제, 6일제 등에 따른 주말을 지정하는 것으로서, 숫자 또는 0과 1로 결합된 7자리 문자열로 지정할 수 있습니다.

 

① weekend 숫자

숫자 요일
1 또는 생략 토요일, 일요일
2 일요일, 월요일
3 월요일, 화요일
4 화요일, 수요일
5 수요일, 목요일
6 목요일, 금요일
7 금요일, 토요일
11 일요일만
12 월요일만
13 화요일만
14 수요일만
15 목요일만
16 금요일만
17 토요일만

 

②weekend 문자열

0과 1로 구성된 7자리 문자열인데, 0은 근무일, 1은 비근무일이고, 7자리는 월요일부터 시작해서 일요일까지입니다.

따라서, 0000011이라면 토요일과 일요일이 주말이 됩니다.

 

그러나, NetWorkdays.Intl 함수 입력시 weekend 숫자에 대한 설명이 있으므로 쉽게 입력할 수 있습니다.

 

 

2. 예제

 

가. NetWorkdays 함수

① 휴일을 지정하지 않은 경우

=NETWORKDAYS(A2,B2)과 같이 시작일과 종료일만 지정한 경우

 

6일과 11일 사이에 토요일인 8일과 일요일인 9일이 있기 때문에 3일인 것 같은데 4일인 것을 보니 시작일을 포함합니다.

 

그러나, 오른쪽의 Days함수를 이용한 수식

=DAYS(B2,A2)은 주말을 포함하고 날짜간의 차이이므로 첫째 날을 빼서 5일을 반환합니다.

 

Ctrl + `(backtick, 숫자 1 왼쪽에 있는 문자)을 누르면 수식의 결과값이 아니라 수식으로 볼 수 있습니다. 토글 키이므로 다시 Ctrl + `을 누르면 통상적인 형태로 돌아갑니다.

 

알기 쉽게 A2셀의 날짜를 2023/04/10로 바꾸면 NetWorkdays의 결과는 2이고, Days의 결과는 1입니다.

 

다시 말해 Days함수는 두 날짜간의 차이를 구해주고,

NetWorkdays함수는 두 날짜 사이에 있는 총 근무일수를 구해주는 차이점이 있습니다.

또한 토요일을 쉬는 주 5일제 근무를 기준으로 한다는 것을 알 수 있습니다.

 

② 휴일을 지정한 경우

설날인 경우 어떻게 되는지 확인해보겠습니다.

2023년도 설날은 1/21부터 1/24일이었습니다.

 

따라서, 시작일을 1/20로 하고 종료일을 1/25로 하고 휴일을 지정하지 않으면 4일이 됩니다.

 

그러나 설날을 F1셀부터 F4셀에 입력하고, 휴일을 F1에서 F4셀로 지정해서

=NETWORKDAYS(A3,B3,F1:F4)라고 입력하면 설날이 제외되기 때문에 1/20과 1/25 이틀, 2가 구해집니다.

 

그러나, 1/21과 1/22는 주말이므로, F3셀과 F4셀만 휴일로 지정해도 결과는 같습니다.

 

 

나. NetWorkdays.Intl 함수

 

① weekend를 숫자로 지정하는 경우

NetWorkdays.Intl에서 weekend를 지정하지 않으면 우리나라와 같이 토요일과 일요일이 휴일입니다.

그러나 나라에 따라 휴일이 다를 수 있습니다.

 

우리나라도 주 5일제를 도입하기 전에는 토요일도 근무하는 주 6일제였습니다.

 

일요일만 휴일로 지정하려면 숫자로 11이라고 할 수도 있고, 7자리 문자열로 지정하면 "0000001"이 됩니다.

 

아래와 같이 시작일을 1/20, 종료일을 1/25로 지정하고, weekend를 지정하는데, 아래와 같이 weekend의 종류에 대한 설명이 표시되므로 보면서 "11 - 일요일만"을 선택하고, 

 

,(콤마)를 입력한 다음, F3셀과 F4셀을 휴일로 지정하고 엔터키를 누르면 수식이

=NETWORKDAYS.INTL(A4,B4,11,F3:F4)이 되고, 토요일이 근무일이므로 1/20, 1/21, 1/25이 근무일이므로 3이 반환됩니다.

 

② weekend를 문자열로 지정하는 경우

weekend 숫자 11대신에 "0000001"이라고 입력하면

=NETWORKDAYS.INTL(A4,B4,"0000001",F3:F4)이 되고, 3이라는 결과는 같습니다.

 

③ 휴일을 중괄호 안에 배열로 지정하는 경우

휴일이 많고, 연도별로 휴일이 다를 수 있기 때문에 일정한 범위내에 지정한 후 범위로 지정하는 것이 바람직하지만

몇 개는 중괄호 안에 배열로 지정할 수 있습니다.

 

④ 휴일을 여러 열에 걸쳐서 입력한 경우

휴일을 아래와 같이 F열과 G열에 입력한 다음 F3:G4라고 휴일을 지정하면 1/23부터 1/25까지 휴일이 되므로, 근무일 수가 하루 적어져 2가 반환됩니다.

 

 

date_exam3(final).xlsx
0.01MB

 

반응형