엑셀함수 NETWORKDAYS의 이름을 풀이해 보면 NET WORK DAYS이다. 우리말로 해석해 보면 "순 작업 일수"이다. 전체 작업기간에서 주말이나 휴무일을 뺀 작업일수를 구해주는 함수라는 뜻을 잘 표현하는 함수이름이다.
이 함수를 이용하면 시작일과 종료일 사이의 작업기간을 편리하게 구하고, 작업일수에 일당을 곱하여 급여계산과 같은 업무를 할 수 있다.
NETWORKDAYS.INTL함수는 NETWORKDAYS함수와 거의 동일하나 세번째 인수로 토/일요일 이외의 날짜를 휴무일로 지정할 수 있다.
아래의 실습용 엑셀파일을 다운로드한 후 따라해 보자.
1. NETWORKDAYS
NETWORKDAYS(start_date, end_date, [holidays])
start_date : 시작일
end_date : 종료일
holidays : 생략가능하며 토요일,일요일을 제외한 날짜를 휴무일로 지정할 경우에 사용하며 셀범위 또는 날짜의 배열상수를 선택할 수 있음
사용예 :
1) 토요일,일요일만 근무일에서 제외하고 일정기간 동안의 작업일수 구하기
다음 그림과 같이 2018년 1월 1일부터 1월 31일까지 토/일요일을 제외한 작업일수를 구한다고 가정해 보자.
다음 그림과 같이 =NETWORKDAYS(B4,C4)를 입력해 보자. B4는 시작일, C4는 종료일이다. 2018-01-01부터 2018-01-31까지 토/일요일을 제외한 작업일수를 구해준다.
2) 토요일,일요일 및 지정된 휴무일을 제외하고 일정기간 동안의 작업일수 구하기
NETWORKDAYS함수에서 세번째 인수인 holiday를 사용하면 토요일, 일요일 이외의 날짜도 근무일에서 제외하고 일정기간 동안의 작업일수를 구할 수 있다. 다음 그림과 같이 특정 휴무일을 기입하고 셀 범위를 선택하면 된다(B12:B13).
2018-01-01부터 2018-01-31까지 토/일요일 및 휴무일로 지정된 이틀(2018-01-02, 2018-01-03)을 제외한 작업일수는 21일이 구해진다.
2. NETWORKDAYS.INTL
NETWORKDAYS.INTL은 NETWORKDAYS함수와 거의 동일한 기능을 하는 함수인데 주말을 임의로 설정할 수 있는 인수가 하나 더 있다.
이 인수를 사용하면 NETWORKDAYS함수보다 훨씬 강력한 기능을 맛볼 수 있다.
NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
start_date : 시작일
end_date : 종료일
weekend : 생략가능, 토요일/일요일 이외의 날짜도 주말로 지정할 수 있다. 아래와 같이 주말을 임의로 설정할 수 있다.
이 방법 외에 문자열 7자리를 이용하는 방법도 있다. 아래의 “사용예”에서 별도로 설명한다.
- 1 또는 생략 – 토요일, 일요일
- 2 – 일요일, 월요일
- 3 – 월요일, 화요일
- 4 – 화요일, 수요일
- 5 – 수요일, 목요일
- 6 – 목요일, 금요일
- 7 – 금요일, 토요일
- 11 – 일요일만
- 12 – 월요일만
- 13 – 화요일만
- 14 – 수요일만
- 15 – 목요일만
- 16 – 금요일만
- 17 – 토요일만
holidays : 생략가능하며 토요일,일요일을 제외한 날짜로 휴무일로 지정할 경우에 사용하며 셀범위 또는 날짜의 배열상수를 선택할 수 있음
사용예 :
1) 세 번째 인수인 주말인수를 숫자로 입력한 경우
다음 그림과 같이 함수 마법사에 나오는 대로 원하는 주말유형을 선택하면 된다.
=NETWORKDAYS(B4,C4,3) 을 입력한다.
위와 같이 입력하면 다음의 달력에 보이는 대로 매주 월/화요일은 주말로 인식해서 근무일에서 제외하고 2018-01-01부터 2018-01-31까지의 작업일수 21일을 구해준다.
2) 세 번째 인수인 주말인수를 문자열로 입력한 경우
문자열 인수는 함수 마법사에도 설명이 나오지 않는다. 이 인수를 이용해서 원하는대로 주말을 설정할 수 있다. NETWORKDAYS.INTL 함수의 진정한 가치는 이 인수에 있다고 할 수 있다.
"E15"셀에 =NETWORKDAYS.INTL(B15,C15,"0101011")을 입력해 보자. 마지막 인수인 "0101011"은 다음 그림과 같이 7자리로 구성되며 각 자리의 값이 0이면 평일, 1이면 주말이므로 이 그림은 "월/수/금"을 평일로 계산하고 화/목/토/일를 주말로 계산하는 경우이다.
*주의 : 반드시 값의 앞 뒤로 쌍따옴표를 붙여야 문자열로 인식된다.
위와 같이 입력하면 다음과 같이 2018-01-01부터 2018-01-31까지 매주 화/목/토/일은 제외한 작업일수 14일이 구해진다
3) 세번째 인수인 주말인수를 문자열로 입력 - 응용하기
다음 그림과 같이 CASE별 작업일수 계산에 응용해 보자. 다양한 방법으로 주말 유형을 구성할 수 있다. 생산현장 등에서 특정요일만 작업을 한다고 했을 때 일정기간 동안의 작업일수가 얼마나 되는 지 확인할 때 사용하면 유용하다.
작업일수는 다음과 같이 구한다.
M열에 =NETWORKDAYS.INTL(K3,L3,J3,$P$3:$P$5)을 입력한다. 세번째 인수인 주말인수는 J3셀의 값을 참조하고 J3셀의 값은 각 요일별로 입력된 값을 참조하며 다음 수식으로 구한다.
=IF(C3>"","0","1")&IF(D3>"","0","1")&IF(E3>"","0","1")&IF(F3>"","0","1")&IF(G3>"","0","1")&IF(H3>"","0","1")&IF(I3>"","0","1")
이것으로 NETWORKDAYS, NETWORKDAYS.INTL 함수에 대한 설명을 마친다. 이 함수는 WORKDAY함수와 이름도 비슷하고 인수도 비슷하다. WORKDAY함수는 일정기간 후의 날짜는 구하는 함수이므로 혼동하지 않도록 하자.
날짜함수에 대한 기초지식이 필요하면 "엑셀에서 날짜와 관련된 수식과 함수 기초"글을 참고하면 된다.
[ 엑셀 날짜 및 시간 함수 ]- 엑셀함수 TIMEVALUE - 텍스트 시간값을 숫자로 반환하기
- 엑셀함수 YEARFRAC - 시작일과 종료일 사이의 날짜 수가 1년 중에 차지하는 비율 구하기
- 엑셀함수 DATEVALUE - 문자열로 저장된 날짜를 일련번호로 변환하기
- 엑셀함수 WEEKDAY - 날짜에서 요일값 구하기
- 엑셀함수 WEEKNUM, ISOWEEKNUM – 날짜의 주차 구하기
- 엑셀함수 EOMONTH - 어떤 달의 마지막 날짜 구하기
- 엑셀함수 EDATE - 어떤 날짜로부터 몇개월 전이나 후의 날짜 구하기
- 엑셀함수 NETWORKDAYS, NETWORKDAYS.INTL – 날짜사이의 순 작업 일수 구하기
- 엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기
- 엑셀함수 DAYS360 - 1년을360일로 보고 날짜사이의 일수 구하기
- 엑셀함수 DAYS - 날짜 사이의 차이, 일수 구하기
- 엑셀에서 HOUR,MINUTE,SECOND 함수로 시,분,초 구하기
- 엑셀함수 TIME - 시,분,초로 시간 구하기
- 엑셀에서 YEAR,MONTH,DAY 함수로 년,월,일값 구하기
- 엑셀함수 DATE - 년,월,일 값으로 날짜 구하기
- 엑셀함수 NOW - 현재 날짜와 시간 구하기
- 엑셀함수 TODAY - 오늘 날짜 구하기
- 엑셀에서 날짜와 관련된 수식과 함수 기초
NETWORKDAYS.INTL의 주말인수 문자열 입력!!!
6개월동안 찾다가 포기했었는데 정말 감사합니다.
정말 감사합니다 ^^
쉽게 이해가 되네요. 좋은 글 올려주셔서 감사합니다.