본문 바로가기
엑셀 함수 강좌-플러스

023. (엑셀 함수 Plus) Workday 함수 사용법 - 휴일 제외 근무일기준 날짜 구하기, 작업 시작/종료일 구하기

by Excel.Jump 청출어람 2023. 5. 13.
반응형

 
 
 

Workday 함수

 
 
 
 

■ 목차

 
1. 함수 설명
2. 엑셀이 날짜 데이터를 관리하는 방법
3. Workday 함수의 구문 / 사용방법
4. Workday 함수 사용해 보기 - 날짜를 구하는 기준
5. Workday 함수 사용해 보기 - 근무일 기준 날짜 구하기
6. Workday 응용하기 - 작업 시작, 종료일 구하기
** 핵심 요약
 
 
  - 소위 워킹데이(Working day)라고 하는 근무일 기준으로 날짜를 구해주는 함수입니다. 
  - 특정 날짜에서 지정한 일자만큼의 주말, 휴일을 제외한 근무일 기준으로 해당하는 날짜를 알 수 있습니다. 
  - Workday, Workday.intl, Networkdays, Networkdays.intl 함수가 유사하게 있는데 각각이 어떻게 다른 지도 알아보도록 하겠습니다.
 
 

1. 함수 설명

 
  - Workday 함수는 "Workday = 근무일" 기준으로 특정날짜에서 양수 혹은 음수의 날짜 수를 지정하게 되면 
  - 주말(토, 일요일) 및 휴일 (지정해줘야 함)을 제외하고 근무일 기준으로 지정한 일 수만큼 경과한 "날짜"를 알 수 있습니다.
  - 소위 얘기하는 근무일 기준 혹은 워킹데이 기준으로 경과한 일수에 해당하는 날짜를 알 수 있는데 경과일은 음수로도 입력이 가능합니다.

  - 그래서 기본적으로 특정일에서 + 5일과 같이 지정을 해주게 되면 중간에 존재하는 토요일, 일요일은 근무일이 아니기 때문에 날짜 계산에서 제외되게 됩니다. 
  - 실제로 많은 은행이나 기업들의 업무나 작업 등의 기준되는 날짜 계산 방법으로 사용이 되는 방식입니다.

  - 이렇게 기본적으로 토, 일요일의 주말은 날짜계산에서 제외가 되고 공휴일의 경우 날짜를 지정해 줘야 제외하고 계산을 하는 것이 가능합니다. 

  - Workday 함수는 특정 날짜 + 5일과 같이 일수를 지정하는 방식이고
  - Networkdays 함수라고 있는데 이는 두 날짜 사이의 근무일 기준한 날짜차이 "일수"를 알려주는 함수로 차이가 있습니다. 

  - 그리고 두 함수 모두 Workday.intl, Networkdays.intl이라는 함수가 존재하는데 여기서 intl = International의 약자로 
  - 국제적으로 주말이 토, 일요일이 아닌 다른 요일이거나 한 경우에 특정 요일을 근무일에서 제외하는 것이 가능한 확장된 기능의 함수로 이해를 하시면 되겠습니다. 


  - Workday 함수 : 특정 날짜 + 경과 일수 지정 → 주말, 휴일을 제외한 근무일 기준으로 경과된 "날짜"를 구해줌
  - Workday.intl 함수 : Workday 함수 기능 + 주말을 특정 요일 등으로 지정할 수 있는 옵션이 존재함

  - Networkdays 함수 : 시작일, 종료일 지정 → 주말, 휴일을 제외한 근무일 기준으로 "날짜 수"를 구해줌
  - Networkdays.intl 함수 : Networkdays 함수 + 주말을 특정 요일 등으로 지정할 수 있는 옵션이 존재함
 
 
 
 
 

2. 엑셀이 날짜 데이터를 관리하는 방법

 
  - 항상 날짜 관련 함수를 사용하실 때 가장 중요한 부분은 "날짜 데이터"를 사용해야 한다는 것입니다. 
  - 모든 날짜 관련 함수는 반드시 엑셀이 인식 가능한 날짜 데이터를 사용해야 정확하게 결과를 얻을 수 있습니다.
  
  - 날짜를 셀에 입력하는 가장 대표적인 방식은 "2023/12/1" 혹은 "2023-12-1"과 같은 형식으로 입력을 하는 방법이 있고
  - 함수로 입력을 하는 경우에 "=date(2023,12,1)"과 같이 년, 월, 일을 인수 구분자 콤마( " , " )로 구분해서 입력해 주시면 됩니다. 

  - 그리고 엑셀이 날짜를 관리하는 방식에 대해서 간단하게 설명을 드리면
  - 엑셀은 "1900/01/01"을 숫자 1로 기준하고 여기에서 "하루 = 숫자 1"로 더해가면서 날짜를 "숫자"로 관리합니다.
  - 그리고 "셀 서식"을 이용해서 사용자가 보기 편하게 "1900/01/01"과 같이 표시해서 보여주는 방식입니다.

  - 그래서 "2023/12/1"은 실제로 엑셀이 관리하는 "날짜의 일련번호 ( = 숫자 )"는 "1900/01/01" = 숫자 1에서 하루에 숫자 1씩 더해서 
  - 숫자 45261이라는 일련번호로 원본 데이터를 관리하고 단지 사용자를 위해서 셀 서식으로"2023/12/1"과 같이해서 보여주게 됩니다. 

  - 이렇게 일련번호라는 숫자를 날짜의 원본 데이터로 관리를 하는데 날짜 함수를 사용하는 경우 보통은 "날짜의 일련번호" 값을 반환하기 때문에
  - 필요한 경우 셀서식에서 날짜 서식으로 변경을 해줘야 우리가 원하는 형식으로 날짜 결과를 볼 수 있습니다. 

  - ① 날짜의 원본 데이터 = 숫자( = 날짜의 일련번호)이다.
  - ② 우리가 보는 날짜 형식은 셀 서식을 통해서 우리에게 편한 날짜 서식으로 보이는 모습이다.
  - ③ 1900/1/1 = 숫자 1에서 하루에 숫자 1씩 더해지는 방식으로 원본 데이터는 숫자로 관리된다.
  - ④ 그래서 "하루 = 숫자 1", "1시간 = 1/24"이다.
 
 
 
 
 

3. Workday 함수의 구문 / 사용방법

 
  - 아래 구문은 엑셀 도움말의 설명 내용입니다. 우리는 엑셀 함수의 구문을 다 외울 수도 없고 그럴 필요도 없습니다.
  - 다만 엑셀 도움말과 함수사용 시 표시되는 풍선도움말의 용어들에 익숙해질 필요가 있기 때문에  기회가 될 때마다 편하게 봐주시기 바랍니다.

  - WORKDAY(start_date, days, [holidays])

  - start_date    필수 요소입니다. 시작 날짜입니다.
  - days    필수 요소입니다. start_date 전이나 후의 주말이나 휴일을 제외한 날짜 수입니다. days 값이 양수이면 앞으로의 날짜이고 음수이면 지나간 날짜입니다.
  - holidays    선택 요소입니다. 국경일, 공휴일, 임시 공휴일과 같이 작업 일수에서 제외되는 날짜 목록이며, 생략할 수 있습니다.


  - 첫 번째 인수는 start_date로 시작일 즉 기준이 되는 날짜를 입력하거나 해당 날짜가 입력된 셀 주소를 지정해 주시면 됩니다. 

  -  번째 인수는 days로 경과되는 일수를 정수(양수, 음수)로 지정이 가능한데 양수는 해당 일자만큼 경과된 날짜를 음수는 이전 날짜를 확인할 수 있습니다.

  - 세 번째 인수는 holidays로 휴일을 지정할 수 있습니다. (옵션으로 사용 가능함)
  - Workday 함수는 기본으로 토요일, 일요일은 비근무일로 제외를 하고 근무일 기준으로 경과된 날짜를 찾아 주지만
  - 추가로 holidays 인수에 날짜를 입력하거나 날짜가 입력된 셀 주소를 지정하는 경우에 해당 날짜를 공휴일로 인식하고 함께 근무일에서 제외를 하게 됩니다. 

  - 날짜를 직접 입력하는 경우 텍스트 형식("2023/10/5")으로 입력해도 계산을 해주는 것 같지만 엑셀은 오류가능성이 있다고 경고를 하고 있습니다. 
  - 이 경우는 가능한 엑셀 함수를 사용해서 date(2023,10, 5)와 같이 입력해 주시기 바랍니다. 

  - 다시 한번 얘기를 드리지만 모든 엑셀의 날짜 함수는 "날짜 데이터"형식으로 정확하게 사용을 해주셔야 합니다.^^
 
 
 
 
 

4. Workday 함수 사용해 보기 - 날짜를 구하는 기준

 
  - 작업완료일자를 구하기 전에 간단하게 Workday 함수가 어떻게 작동을 하는지 정확한 날짜 계산방식을 먼저 이해를 해보도록 하겠습니다. 
  - 결론부터 얘기하자면 "시작일(start_date)을 제외하고 경과된 일수가 되는 날짜"를 구해줍니다. 
  - 이때 모든 토, 일요일 및 지정된 공휴일은 제외하고 계산된 날짜입니다.

  - 이때 조금 혼돈이 되는 게 "start_date"입니다. 보통 일상적으로 "작업 시작일"이라고 하면 작업을 시작하는 날짜로 작업 일수에 포함이 되지만
  - Workday 함수에서의 start_date는 일수계산에서 빠지고 다음 일자부터 지정한 일수가 되는 날짜를 구하는 방식이라서

  - 만약 days를 숫자 3이라고 지정하면 start_date를 제외하고 근무일 기준 3일째 되는 날짜를 알 수 있습니다.
  - 먼저 간단하게 각각의 인수가 의미하는 내용이랑 Workday 함수가 구해주는 날짜의 정확한 의미를 알고 사용하시기 바랍니다. 
 
 

Workday 함수 - 일수계산 방식
* Workday 함수 - 일수계산 방식

 
 
 
 
 

5. Workday 함수 사용해 보기 - 근무일 기준 날짜 구하기

 
  - 다음의 공휴일 정보까지 고려하여 근무일 기준 날짜를 구해보도록 하겠습니다. 
 
 

Workday 함수 - 근무일 기준 날짜 구하기
* Workday 함수 - 근무일 기준 날짜 구하기

 
 
  - 1) 함수 입력 : " =workday( " 

  - 먼저 수식입력을 위한 등호 ( " = " )와 함수를 입력하고 인수 입력을 위하여 괄호 열기까지 키보드로 입력을 합니다.


  - 2) 인수 지정 및 수식 완성 : " = workday(B3, C3, B6:B9) "

  - 첫 번째 인수에 해당하는 start_date 입력을 위해 해당 날짜의 셀(B3)을 마우스로 클릭하여 셀 주소를 입력하고
  - 인수 구분자 콤마(" , ")를 키보드로 입력을 합니다. 
  
  - 두 번째 인수는 days로 경과일자에 해당하는 C3 셀을 마우스로 클릭하거나 키보드의 화살표를 이동해서 선택, 입력하여 줍니다.
  - 인수 구분자 콤마(" , ")를 키보드로 입력을 합니다. 

  - 세 번째 인수는 holidays입니다. 공휴일은 입력하는 방법은 의외로 간단합니다. 공휴일에 해당하는 날짜들을 별도로 셀에 입력해 두고
  - 해당 셀 주소를 holidays 인수로 등록해 주면 간단하게 입력을 할 수 있습니다. 
  - 이때 공휴일이 토, 일요일과 겹치는 경우도 이것저것 따지지 말고 그냥 등록해서 입력을 해줘도 엑셀이 알아서 잘 정리를 해줍니다. ^^

  - 공휴일에 해당하는 "B6:B9"셀을 마우스 드래그로 선택하여 세 번째 인수를 입력하고 괄호 닫기를 입력하여 수식을 완성하고 "Enter"키로 마무리합니다.
 
 

Workday 함수 - 적용하기
* Workday 함수 - 적용하기

 
 
  - 3) 날짜 일련번호를 날짜 서식으로 변경하기

  - Workday 함수의 결괏값은 "날짜 일련번호"라는 숫자를 반환합니다. 
  - "날짜 일련번호"는 엑셀이 날짜를 관리하는 원본이 되는 숫자를 말합니다. 우리는 이를 "날짜 서식"으로 바꾸어줘야 비로소 익숙한 날짜 데이터를 볼 수가 있게 됩니다.
  - 날짜 서식은 셀서식(Ctrl + 1)에서 날짜 서식을 적용하거나 리본 메뉴의 "간단한 날짜" 서식을 적용해 줍니다. 
 
 

Workday 함수 - 날짜 서식 적용하기
* Workday 함수 - 날짜 서식 적용하기

 
 
 
 
 

6. Workday 응용하기 - 작업 시작, 종료일 구하기

 
  - 각각의 작업별로 휴일과 지정된 공휴일을 제외한 근무일 기준으로 작업이 완료되는 날짜를 구해보도록 하겠습니다. 
  - 공휴일은 편의상 구정연휴만을 사용하도록 하겠습니다. 

  - 여기서 주의하실 점은 ① 작업의 시작/종료일을 구하는 경우 "작업 시작"날짜가 "작업 소요일"에 포함 된다는 부분
  - ② 작업 시작일은 이전 작업 종료일자 다음날짜로 하면 되지만 이 또한 토, 일요일이나 공휴일이 될 수 있다는 부분입니다. 
  - 이런 부분들은 어떻게 수식으로 풀어내는지 눈여겨보시기 바랍니다. 
 
 

Workday 함수 - 작업일자 구하기
* Workday 함수 - 작업일자 구하기

 
 
  - 1) "기초작업" 종료일자 : "=WORKDAY(C3, D3-1,$C$8:$C$11)"

  -  작업의 종료일자를 구하는 경우에는 시작일자를 포함하여 소요일수를 계산하는 방식으로 해줘야 하기 때문에 
  - 시작일자를 제외하고 경과일자를 구하는 Workday 함수로 종료일자를 구하는 경우에는 "소요일수 - 1"를 해줘야 합니다. 

  - 그리고 수식 복사를 사용하기 위해서 holiday 인수는 F4 키를 사용해서 절대참조 형식($C$8:$C$11)으로 변경을 해줍니다. 
  - 최종 Workday 함수로 종료일자를 구하게 되면 엑셀은 "날짜의 일련번호 ( = 숫자 )"를 결괏값으로 반환하기 때문에
  - "셀서식 (Ctrl + 1)"이나 "리본 메뉴 (홈 > 표시형식)"에서 반드시 날짜 서식을 지정해야 우리가 원하는 날짜형식의 결괏값을 볼 수 있습니다. 
 
 

Workday 함수 - 종료일자 구하기
* Workday 함수 - 종료일자 구하기

 
 
  - 2) "설비 작업"의 "시작일자" : " =WORKDAY(E3-1,2,$C$8:$C$11) "

  - "설비 작업"의 시작일자는 "기초작업 종료일자" 다음날부터 작업이 가능하게 됩니다. 

  - 이때 또 다시 우리가 고려해줘야 하는 부분이 있는데 "설비작업"의 시작일자가 토, 일요일이나 공휴일이 될 수 있다는 점입니다.
  - 이 경우 Wordkday 함수를 이용해서 간단한 트릭으로 구할 수 있는 방법이 있는데 
  - Workday 함수로 "이전 종료일 -1"에서 "2 days"가 되는 날짜를 "시작일자"로 사용하시면 됩니다. 
 
 

Workday 함수 - 작업 시작일자 구하기
* Workday 함수 - 작업 시작일자 구하기

 
 
  - 3) 수식 복사하기 : "Ctlr + C / Ctrl + V" or "채우기 핸들" 

  - 나머지 "시작일자"와 "종료일자"의 수식은 모두 동일하기 때문에 수식을 복사해서 사용하시면 되겠습니다.
  - 수식 복사는 간단하게 "Ctrl + C / Ctrl + V"를 해주시거나 선택한 셀의 우측하단 모서리에 있는 "채우기 핸들"을 마우스로 클릭해서 드래그해 주시면 됩니다. 
 
 

수식 복사하기 - 채우기 핸들
* 수식 복사하기 - 채우기 핸들

 
 
 
 
 

** 핵심 요약 : Workday 함수 사용법 - 휴일 제외 근무일기준 날짜 구하기, 작업 시작/종료일 구하기

 
1. 함수 설명

  - 워킹데이(Working day)라고 하는 근무일 기준으로 날짜를 구해주는 함수이다.
  - 특정 날짜에서 지정한 일자만큼의 주말, 휴일을 제외한 근무일 기준으로 해당하는 날짜를 알 수 있다.

  - 기본적으로 토, 일요일의 주말은 날짜계산에서 제외가 되고 공휴일의 경우 날짜를 지정해 줘야 제외하고 계산을 하는 것이 가능하다.

  - Workday 함수 : 특정 날짜 + 경과 일수 지정 → 주말, 휴일을 제외한 근무일 기준으로 경과된 "날짜"를 구해줌
  - Workday.intl 함수 : Workday 함수 기능 + 주말을 특정 요일 등으로 지정할 수 있는 옵션이 존재함

  - Networkdays 함수 : 시작일, 종료일 지정 → 주말, 휴일을 제외한 근무일 기준으로 "날짜 수"를 구해줌
  - Networkdays.intl 함수 : Networkdays 함수 + 주말을 특정 요일 등으로 지정할 수 있는 옵션이 존재함


2. 엑셀이 날짜 데이터를 관리하는 방법

  - ① 날짜의 원본 데이터 = 숫자( = 날짜의 일련번호)이다.
  - ② 우리가 보는 날짜 형식은 셀 서식을 통해서 우리에게 편한 날짜 서식으로 보이는 모습이다.
  - ③ 1900/1/1 = 숫자 1에서 하루에 숫자 1씩 더해지는 방식으로 원본 데이터는 숫자로 관리된다.
  - ④ 그래서 하루 = 숫자 1, 1시간 = 1/24이다.


3. Workday 함수의 구문 / 사용방법

  - WORKDAY(start_date, days, [holidays])

  - start_date    필수 요소입니다. 시작 날짜입니다.
  - days    필수 요소입니다. start_date 전이나 후의 주말이나 휴일을 제외한 날짜 수입니다. days 값이 양수이면 앞으로의 날짜이고 음수이면 지나간 날짜입니다.
  - holidays    선택 요소입니다. 국경일, 공휴일, 임시 공휴일과 같이 작업 일수에서 제외되는 날짜 목록이며, 생략할 수 있습니다.

  - 첫 번째 인수는 start_date로 시작일 즉 기준이 되는 날짜를 입력하거나 해당 날짜가 입력된 셀 주소를 지정해 주면 된다.
  - 두 번째 인수는 days로 경과되는 일수를 정수(양수, 음수)로 지정이 가능한데 양수는 해당 일자만큼 경과된 날짜를 음수는 이전 날짜를 확인할 수 있다.
  - 세 번째 인수는 holidays로 휴일을 지정할 수 있다. (옵션으로 사용 가능함)
  - holidays 인수는 날짜를 직접 date 함수를 이용해서 입력하거나 날짜가 입력된 셀의 주소를 지정해 주면 된다.


4. Workday 함수 사용해 보기 - 날짜를 구하는 기준

  - "시작일(start_date)을 제외하고 경과된 일수가 되는 날짜"를 구해준다.
  - 이때 모든 토, 일요일 및 지정된 공휴일은 제외하고 계산된 날짜의 일련번호 ( = 숫자)를 구할 수 있다. 

  - 만약 days를 3이라고 지정하면 start_date를 제외하고 근무일 기준 3일째 되는 날짜를 알 수 있다.


5. Workday 함수 사용해 보기 - 근무일 기준 날짜 구하기

  - 1) 함수 입력 : " =workday( " 
  - 2) 인수 지정 및 수식 완성 : " = workday(B3, C3, B6:B9) "
  - 3) 날짜 일련번호를 날짜 서식으로 변경하기


6. Workday 응용하기 - 작업 시작, 종료일 구하기

  - 주의할 점은 ① 작업의 시작/종료일을 구하는 경우 "작업 시작"날짜가 "작업 소요일"에 포함이 된다.
  - ② 다음 작업 시작일은 이전 작업 종료일자 다음날짜로 하면 되지만 이 또한 토, 일요일이나 공휴일이 될 수 있다.

  - 1) "기초작업" 종료일자 : "=WORKDAY(C3, D3-1,$C$8:$C$11)"
  - "소요일수 - 1"를 해서 시작일자가 작업하는 날짜로 포함될 수 있게 한다. 
  - holidays 인수는 수식복사를 해도 동일하게 셀 범위를 사용하기 위해 F4 키로 절대참조 형식($C$8:$C$11)으로 변경한다.

  - 2) "설비 작업"의 "시작일자" : " =WORKDAY(E3-1,2,$C$8:$C$11) "
  - Workday 함수로 "이전 종료일 -1"에서 "2 days"가 되는 날짜를 "시작일자"로 사용하자.

  - 3) 수식 복사하기 : "Ctlr + C / Ctrl + V" or "채우기 핸들" 
 
 

23. 예제_Workday 함수
0.01MB

 
 

[엑셀 함수 강좌-플러스] - 999. 엑셀 함수 Plus 목차

 

999. 엑셀 함수 Plus 목차

[엑셀 함수 강좌-플러스] - 001. (엑셀 함수 Plus) Text 함수 사용법 - 원하는 서식(포맷, 날짜/시간, 소수점, 퍼센트, 시간, 요일)을 텍스로 만들어 보자 [엑셀 함수 강좌-플러스] - 002. (엑셀 함수 Plus) Tr

nextmeok.tistory.com

 
 
 
 
* 엑셀 관련 궁금하신 거나 어려운 점이 있으시면 자유롭게 질문을 해주세요.
* 가능한 도움을 드릴 수 있도록 하겠습니다.
* 저도 많이 알지는 못하지만 누구나 그렇듯 시작이란 게 있고 경험이란 게 다를 것 같습니다.
* 편하게 문의하시면 됩니다. 저도 모를 수 있다. 감안해 주시고.

  - ILU, SH -

반응형

댓글