본문 바로가기

엑셀

29. [엑셀] 공휴일 제외한 날짜 계산하기

반응형

 

NETWROKDAYS(), NETWORKDAYS.INTL() 함수

 회사에서 작업일자를 계산하는 경우가 있습니자. 저희 회사에서는 작년까지만해도 주말을 포함하여 계산했기 때문에 사칙연산함수로도 충분했었습니다. 하지만 올해부터 주말과 공휴일을 제외하고 계산하자는 이야기가 있어 어떻게 적용할까 고민하다가 엑셀에서 적용하는 게 좋을 거 같아 함수를 찾아보게 되었습니다. 그러다 주말이나 휴일을 제외한 작업 일수를 계산할 때에는 사용되는 NETWORKDAYS와 NETWORKDAYS.INTL를 알게되었습니다.

정의

함수 설명
NETWORKDAYS start_date와 end_date 사이의 전체 작업 일수를 반환합니다. 주말과 공휴일은 포함하지 않습니다.
NETWORKDAYS.INTL start_date와 end_date 사이의 전체 작업 일수를 반환합니다. 주말과 공휴일은 포함하지 않습니다. 주말인 요일과 날짜 수를 나타내는 매개 변수를 사용할 수 있습니다.

구문

NETWORKDAYS(start_date, end_date, [holidays])

  • start_date: 필수요소. 시작 날짜
  • end_date: 필수요소. 종료 날짜
  • holidays: 선택요소. 작업 일수에서 제외되는 날짜 범위. 셀 범위나 일련 번호의 배열 상수가 될 수 있습니다.

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

  • start_date: 필수요소. 시작 날짜
  • end_date: 필수요소. 종료 날짜
  • weekend: 선택요소. 주말을 나타냅니다. 각 weekend 숫자 값은 다음 요일을 나타냅니다.
숫자 요일
1 또는 생략 토요일, 일요일
2 일요일, 월요일
3 월요일, 화요일
4 화요일, 수요일
5 수요일, 목요일
6 목요일, 금요일
7 금요일, 토요일
11 일요일
12 월요일
13 화요일
14 수요일
15 목요일
16 금요일
17 토요일
  • holidays: 선택요소. 작업 일수에서 제외되는 날짜 범위. 셀 범위나 일련 번호의 배열 상수가 될 수 있습니다.

예제

2020년 1월 1일부터 1월 31일까지는 총 31일입니다. 그렇다면 휴일을 제외한 작업 일수는 어떻게 될까요? 

<2020년 1월 달력>

  • 첫번째 사칙연산을 통한 결과는 30으로 나옵니다. 작업 일수로 계산할 때보다 1이 작습니다.
  • 두번째 NETWORKDAYS의 휴일은 토요일, 일요일이며, 작업 일수는 23일입니다.
  • 세번째 NETWORKDAYS.INTL의 휴일은 토요일, 일요일이며, 작업 일수는 23일입니다.
  • 네번째 NETWORKDAYS.INTL의 휴일은 일요일, 월요일이며, 작업 일수는 23일입니다.
  • 다섯번째 NETWORKDAYS.INTL의 휴일은 월요일, 화요일이며, 작업 일수는 23일입니다.
  • 여섯번째 NETWORKDAYS.INTL의 휴일은 화요일, 수요일이며, 작업 일수는 22일입니다.
  • 일곱번째 NETWORKDAYS.INTL의 휴일은 수요일, 목요일이며, 작업 일수는 21일입니다.
  • 여덟번째 NETWORKDAYS.INTL의 휴일은 목요일, 금요일이며, 작업 일수는 21일입니다.
  • 아홉번째 NETWORKDAYS.INTL의 휴일은 금요일, 토요일이며, 작업 일수는 22일입니다.
  • 열번째 NETWORKDAYS.INTL의 휴일은 일요일이며, 작업 일수는 27일입니다.
  • 열한번째 NETWORKDAYS.INTL의 휴일은 월요일이며, 작업 일수는 27일입니다.
  • 열두번째 NETWORKDAYS.INTL의 휴일은 화요일이며, 작업 일수는 27일입니다.
  • 열세번째 NETWORKDAYS.INTL의 휴일은 수요일이며, 작업 일수는 26일입니다.
  • 열네번째 NETWORKDAYS.INTL의 휴일은 목요일이며, 작업 일수는 26일입니다.
  • 열다섯번째 NETWORKDAYS.INTL의 휴일은 금요일이며, 작업 일수는 26일입니다.
  • 열여섯번째 NETWORKDAYS.INTL의 휴일은 토요일이며, 작업 일수는 27일입니다.

공휴일을 추가해봅시다. 1월에는 3일의 공휴일이 있었습니다. 신정(수), 설연휴 첫날(금), 대체 휴일(월)로 3일입니다.

이를 추가한 작업 일수를 다시 계산해보겠습니다.

  • 첫번째 사칙연산을 통한 결과는 공휴일을 계산할 수 없습니다.
  • 두번째 NETWORKDAYS의 휴일은 토요일, 일요일이며, 작업 일수는 20일입니다.
  • 세번째 NETWORKDAYS.INTL의 휴일은 토요일, 일요일이며, 작업 일수는 20일입니다.
  • 네번째 NETWORKDAYS.INTL의 휴일은 일요일, 월요일이며, 작업 일수는 21일입니다.
  • 다섯번째 NETWORKDAYS.INTL의 휴일은 월요일, 화요일이며, 작업 일수는 21일입니다.
  • 여섯번째 NETWORKDAYS.INTL의 휴일은 화요일, 수요일이며, 작업 일수는 20일입니다.
  • 일곱번째 NETWORKDAYS.INTL의 휴일은 수요일, 목요일이며, 작업 일수는 19일입니다.
  • 여덟번째 NETWORKDAYS.INTL의 휴일은 목요일, 금요일이며, 작업 일수는 19일입니다.
  • 아홉번째 NETWORKDAYS.INTL의 휴일은 금요일, 토요일이며, 작업 일수는 20일입니다.
  • 열번째 NETWORKDAYS.INTL의 휴일은 일요일이며, 작업 일수는 24일입니다.
  • 열한번째 NETWORKDAYS.INTL의 휴일은 월요일이며, 작업 일수는 25일입니다.
  • 열두번째 NETWORKDAYS.INTL의 휴일은 화요일이며, 작업 일수는 24일입니다.
  • 열세번째 NETWORKDAYS.INTL의 휴일은 수요일이며, 작업 일수는 24일입니다.
  • 열네번째 NETWORKDAYS.INTL의 휴일은 목요일이며, 작업 일수는 23일입니다.
  • 열다섯번째 NETWORKDAYS.INTL의 휴일은 금요일이며, 작업 일수는 24일입니다.
  • 열여섯번째 NETWORKDAYS.INTL의 휴일은 토요일이며, 작업 일수는 24일입니다.

 오늘은 엑셀에서 작업 일수를 계산하는 방법에 대해 알아봤습니다. DB에서 조회시 적용하는 방법도 있겠지만 엑셀에서 데이터 처리가 가능해 정말 다행이라고 생각합니다.

반응형