-
엑셀 근무일수, 워킹데이 구하기 (WORKDAY 함수, WORKDAY.INTL 함수)카테고리 없음 2022. 10. 14. 22:39728x90
전체 목차
- 001. SUMIF 함수, SUMIFS 함수, COUNTIF 함수, COUNTIFS 함수
- 002. MATCH 함수, INDEX 함수
- 003. 엑셀 이동 단축키, 채우기 핸들, 수식 채우기 팁
- 004. DAVERAGE함수, DMAX함수, DMIN 함수
- 005. DCOUNT, DCOUNTA, DSUM, DGET, DPRODUCT, DVAR, DSTDEV 함수
- 006. 엑셀 절대주소 vs 상대주소 (절대주소 활용법)- 007. 엑셀에서 배열 수식 사용하기 (1)
- 008. 엑셀에서 배열 수식 사용하기 (2)
- 009. 엑셀 문자열 처리(LEFT 함수, RIGHT 함수, LEN함수, FIND함수)
- 010. 엑셀 문자열 처리 (MID함수, REPLACE함수, SUBSTITUTE 함수, 문자열 포함 여부 확인)
- 011. SUMPRODUCT 함수 사용법
- 012. FREQUENCY 함수 사용법
- 013. 엑셀 날짜 관련 함수 (Now 함수, Date 함수)
- 014. 엑셀 날짜 관련 함수 (DateValue 함수, Year 함수, Month 함수, Day 함수)
- 015. 엑셀 날짜 관련 함수 (DAYS 함수, ISOWEEKNUM 함수, EDATE 함수)
포스트 목차
본 포스트에서는 휴일을 제외한 근무일수를 계산하기 위한 WORKDAY 함수와 WORKDAY.INTL 함수를 소개한다.
근무일수/워킹데이를 계산할 때 사용할 수 있는 함수들이다.
01. WORKDAY 함수WORKDAY 함수의 인자들은 다음과 같다.
"기준일(Start_date)", "근무일수(Days)", "휴일리스트(Holidays)"
1) 기준일: 날짜 형태로 입력 받는다.
2) 근무일수: 숫자 형태로 입력 받는다.
3) 휴일리스트: 날짜 형태의 배열로 입력 받는다. (기본 공휴일인 토요일과 일요일을 제외한 공휴일을 입력한다.)
WORKDAY 함수는 기준일로부터 근무일수만큼 경과된 날짜를 반환한다.
다음 달력을 기준으로 예제를 통해 함수의 동작 원리를 이해해보자.
위의 달력은 실제 2022년 9월과 10월의 달력이다. 토/일외의 휴일은 9/9, 9/12, 10/3, 10/10 이다.
WORKDAY 함수의 첫 번째 인자로 2022-9-28을 입력하고, 두 번째 인자로 1을 입력했다고 가정하면, 결과 값은 2022-9-29가 된다. 이는 9월 28일에서 근무일로 하루 경과한 날자가 9월 29일을 나타내기 때문이다.
WORKDAY 함수의 첫 번째 인자로 2022-9-28을 입력하고, 두 번째 인자로 5를 입력하고, 세번째 인자로 2022-10-3을 입력했다고 가정하면, 결과값은 2022-10-6이 된다. 1일차(2022-9-29), 2일차(2022-9-30), 3일차(2022-10-4), 4일차(2022-10-5), 5일차(2022-10-6) 이기 때문에 2022-10-6이 반환된다. 토요일 일요일 공휴일은 포함되지 않는다는 것을 기억하자.
다음 예제를 통해 함수의 동작 방식을 연습하자.
입력되어 있는 데이터는 다음과 같다.
A2:A3에는 10월의 공휴일인 10/3, 10/10이 입력되어 있다.
B열에는 같은 기준일인 2022-9-27일이 입력되어 있다.
D열에는 1부터 31까지의 숫자가 입력되어 있다.
E열에 다음과 같은 수식을 입력하고, 채우기 핸들로 채워보자.
=WORKDAY(B2, D2, $A$2:$A$3)
WORLDAY함수는 B열에 있는 기준일로부터 D열에 있는 근무일수 만큼 경과된 날짜를 반환한다.
엑셀에서 날짜로 취급하는 숫자값이 반환되는 것을 확인할 수 있다. 정확한 날짜를 확인하기 위해서는 셀 서식을 통해 해당 셀의 표기형식을 날짜로 바꾸면된다.
여기에서는 YEAR, MONTH, DAY 함수를 이용하여 해당 값을 우리가 인식하는 날짜 형태로 변경하려고 한다.
= YEAR(E2)&"-"&MONTH(E2)&"-"&DAY(E2)
채기 핸들로 F열에 위의 수식을 채운 결과는 다음과 같다.
중간 중간 발생하는 휴일을 제외하고 근무일수가 경과된 날짜가 출력되는 것을 확인할 수 있다.
WORKDAY 함수는 휴일을 카운트 하지 않고 근무할 수 있는 날짜만 카운트하기 때문에 인건비 계산할 때나 계약날짜를 계산하는 데 유용하게 사용될 수 있다.
02. WORKDAY.INTL 함수이번에는 WORKDAY함수와 유사하지만 좀 더 확장형이라고 볼 수 있는 WORKDAY.INTL 함수를 소개하려고 한다. 다수의 사람들이 토요일/일요일을 쉬는 것으로 생각할 수 있지만, 주말에 근무하고 평일에 쉬는 사람들도 존재한다. 일의 특성에 따라 근무일은 변경될 수 있다.
WORKDAY.INTL 함수는 WORKDAY 함수에서 주말(토/일)이 고정되어 있었던 것과는 달리 주말 정보를 직접 세팅할 수 있다.
예를 들어, 수요일마다 정기휴일이고, 월화목금토일을 일하는 직장이 있다면, WORKDAY.INTL 함수를 이용하여, 기준일에서 근무일만큼 경고된 날짜를 구할 수 있다.
함수의 인자는 다음과 같다.
1) 기준일: 날짜 형태로 입력 받는다.
2) 근무일수: 숫자 형태로 입력 받는다.
3) 주말: 유형이 정해져 있어서 숫자또는 문자로 입력할 수 있다.
4) 휴일리스트: 날짜 형태의 배열로 입력 받는다. (위에서 정한 주말을 제외한 공휴일을 입력한다.)
(1) 주말을 숫자로 입력할 경우
weekend 숫자 요일 1 토요일, 일요일 2 일요일, 월요일 3 월요일, 화요일 4 화요일, 수요일 5 수요일, 목요일 6 목요일, 금요일 7 금요일, 토요일 11 일요일만 12 월요일만 13 화요일만 14 수요일만 15 목요일만 16 금요일만 17 토요일만 (2) 주말을 문자로 입력할 경우
7자리 이진 문자열을 입력할 수 있다.
1은 비근무일을 나타내며, 0은 근무일을 나타낸다.
월 화 수 목 금 토 일 첫번째 1또는0 두번째 1또는 0 세번째 1또는 0 네번째 1또는 0 다섯번째1 or 0 여섯번째1 or 0 일곱번째1 or 0 예1) 수요일과 목요일에 주기적으로 휴무하여 해당 일을 주말로 간주하는 경우
월 화 수 목 금 토 일 0 0 1 1 0 0 0 0011000
예2) 월요일과 금요일을 쉬는 직업인 경우
월 화 수 목 금 토 일 1 0 0 0 1 0 0 1000100
주말을 따로 입력할 수 있는 점 외에는 WORKDAY함수와 동일하게 동작한다.
E열 다음과 같은 수을 넣고, F열에서 날짜로 표기형식을 변환한 결과는 다음과 같다.
=WORKDAY.INTL(C2,D2,7,$A$2:$A$3)
여기서는 주말을 표기하는 인자로 숫자 7이 입력되었고, 숫자 7은 금요일 토요일을 주말로 간주하는 설정이다.
B열에 적힌 날짜가 주말이되고, 9월 27일을 지준으로 D열에 있는 값만큼 근무일이 경고된 날짜는 F열에 표기된다.
수식에서 세번째 인자를 7 대신에 "0000110"으로 변경해도 같은 결과가 도출된다.
같이보면 좋은 글
728x90