엑셀의 WORKDAY 및 WORKDAY.INTL 함수는 시작일에서 일정기간이 지난 후 의 날짜를 구해준다. 기간을 음수로 입력하면 시작일 이전의 날짜를 구해준다. 기간을 계산할때는 토요일,일요일은 제외되고 세번째 인수를 넣으면 토요일, 일요일 이외의 날짜도 계산에서 제외시킬 수 있다.
이 함수는 프로젝트 진행시 시작일로부터 일정 기간이 지난 날짜가 언제인지 확인하거나 강의시작 후 일정기간 경과 후가 언제인지 확인할 때 유용하다.
WORKDAY.INTL함수는 WORKDAY함수와 거의 동일하나 세번째 인수로 토/일요일 이외의 날짜를 휴무일로 지정할 수 있다.
1. WORKDAY
WORKDAY(start_date, days, [holidays])
start_date : 시작일
days : 경과 일수
holidays : 생략가능하며 토요일,일요일을 제외한 날짜를 휴무일로 지정할 경우에 사용하며 셀범위 또는 날짜의 배열상수를 선택할 수 있음
사용예 :
1) 토요일,일요일만 근무일수에서 제외하고 일정기간 후의 날짜 구하기
다음 그림과 같이 2018년 1월 1일에 시작해서 10일이 경과한 후의 날짜를 구한다고 가정해 보자.
=WORKDAY("2018-01-01", 10)을 입력하면
* 10일 경과한 후의 다음 날짜인 "2018-01-15"를 를 구해준다.
* 10일째이므로 "2018-01-12"가 되어야 할 것 같은데... 좀 이상하지 않은가?
WORKDAY함수는 원래 시작일을 계산에서 제외한다. 그래서 2일부터 계산해서 10일째인 "2018-01-15"를 다음 그림과 같이 구해주는 것이다.
그럼, 정확히 10일째 되는 날은 어떻게 구해야 할까. WORKDAY함수는 시작일을 제외한다고 했으므로 다음 그림과 같이 함수 입력시 시작일에서 1일을 빼면 된다.
=WORKDAY(B8-1, C8)
* 10일이 경과한 후의 다음 날을 사용할 것인지 아니면 정확히 10일째 되는 날을 선택할 것인지는 업무 성격에 따라 다를 수 있으므로 잘 판단해서 이 함수를 사용해야 한다.
2) 토요일,일요일 및 지정된 휴무일을 제외하고 일정기간 후의 날짜 구하기
WORKDAY함수에서 세번째 인수인 holiday를 사용하면 토요일, 일요일 이외의 날짜도 근무일에서 제외하고 일정기간 후의 날짜를 구할 수 있다. 다음 그림과 같이 특정 휴무일을 기입하고 셀 범위를 선택하면 된다(B15:B16).
1월2일과 1월3일이 휴무일이라서 제외되었으므로 10일 경과 후의 다음 날은 "2018-01-17"로 구해진다.
2. WORKDAY.INTL
WORKDAY.INTL은 WORKDAY함수와 거의 동일한 기능을 하는 함수인데 주말을 임의로 설정할 수 있는 인수가 하나 더 있다.
이 인수를 사용하면 WORKDAY함수와는 차원이 다른 신세계를 경험할수 있다.
WORKDAY.INTL(start_date, days, [weekend], [holidays])
start_date : 시작일
days : 경과 일수
weekend : 생략가능, 토요일/일요일 이외의 날짜도 주말로 지정할 수 있다. 아래와 같이 주말을 임의로 설정할 수 있다.
이 방법 외에 문자열 7자리를 이용하는 방법도 있다. 아래의 “사용예”에서 별도로 설명한다.
- 1 또는 생략 – 토요일, 일요일
- 2 – 일요일, 월요일
- 3 – 월요일, 화요일
- 4 – 화요일, 수요일
- 5 – 수요일, 목요일
- 6 – 목요일, 금요일
- 7 – 금요일, 토요일
- 11 – 일요일만
- 12 – 월요일만
- 13 – 화요일만
- 14 – 수요일만
- 15 – 목요일만
- 16 – 금요일만
- 17 – 토요일만
holidays : 생략가능하며 토요일,일요일을 제외한 날짜로 휴무일로 지정할 경우에 사용하며 셀범위 또는 날짜의 배열상수를 선택할 수 있음
사용예 :
1) 세번째 인수인 주말인수를 숫자로 입력한 경우
다음 그림과 같이 함수 마법사에 나오는 대로 원하는 주말유형을 선택하면 된다.
=WORKDAY(B4,C4,3) 을 입력한다.
위와 같이 입력하면 다음의 달력에 보이는 대로 매주 월/화요일은 주말로 인식해서 근무일에서 제외하고 계산해서 2018-01-01부터 10일이 지난 날의 다음 날인 2018-01-15를 구해준다.
2) 세번째 인수인 주말인수를 문자열로 입력한 경우
문자열 인수는 함수 마법사에도 설명이 나오지 않는다. 이 인수를 이용해서 원하는대로 주말을 설정할 수 있다. WORKDAY.INTL 함수의 진정한 가치는 이 인수에 있다고 할 수 있다.
"E15"셀에 =WORKDAY.INTL(B15,C15,"0101011")을 입력해 보자. 마지막 인수인 "0101011"은 다음 그림과 같이 7자리로 구성되며 각 자리의 값이 0이면 평일, 1이면 주말이므로 이 그림은 "월/수/금"을 평일로 계산하고 화/목/토/일를 주말로 계산하는 경우이다.
*주의 : 반드시 값의 앞 뒤로 쌍따옴표를 붙여야 문자열로 인식된다.
위와 같이 입력하면 다음과 같이 10일 지난 후의 다음날이 구해진다.
정확히 10일째를 구하려면 다음과 같이 입력한다. WORKDAY.INTL함수는 계산시 시작일을 제외하므로 시작일에서 하루를 빼야 시작일도 계산에 포함되어서 정확히 10일째가 구해진다.
=WORKDAY.INTL(B20-1,C20,"0101011")
3) 세번째 인수인 주말인수를 문자열로 입력 - 응용하기
다음 그림과 같이 CASE별 작업종료일 계산에 응용해 보자. 다양한 방법으로 주말 유형을 구성할 수 있다. 생산현장 등에서 특정요일만 작업을 한다고 했을 때 일정기간이 지난 후가 언제인지 확인할 때 사용하면 유용하다.
종료일은 다음과 같이 구한다.
M열에 =WORKDAY.INTL(K3-1,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")
이것으로 WORKDAY, WORKDAY.INTL 함수에 대한 설명을 마친다. 이 함수는 사용법이 복잡하므로 꼭 첨부의 실습용 엑셀파일을 다운로드 해서 실습해 보자.
날짜함수에 대한 기초지식이 필요하면 "엑셀에서 날짜와 관련된 수식과 함수 기초"글을 참고하면 된다.
[ 엑셀 날짜 및 시간 함수 ]- 엑셀함수 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 - 오늘 날짜 구하기
- 엑셀에서 날짜와 관련된 수식과 함수 기초
시작일과 종료일을 아는데 기간을 구하고 싶으면 어떻게 해야할까요??
안녕하세요. 다음 몇가지 방법이 있습니다.
1. =종료일-시작일+1 : 휴무일 반영하지 않고 전체 기간을 구해줌
2. =NETWORKDAYS(시작일,종료일,휴무일영역) : 토/일요일을 제외하고 기간을 구해줌, 휴무일영역을 입력하면 입력된 휴무일도 제외하고 기간을 구해줌.
3. =NETWORKDAYS.INTL(시작일,종료일,주말종류,휴무일영역) : NETWORKDAYS함수와 거의 비슷한 기능을 하지만 세번째 인수인 주말종류에 따라서 토/일요일 이외의 요일도 주말로 취급하고 기간을 구할 수 있음.
자세한 내용은 다음 링크를 참조하세요. https://xlworks.net/excel_function_networkdays_networkdays-intl/
감사합니다.
문의드립니다.
WORKDAY 함수 사용 예정인데 설명해주신 내용에 따라
아래와 같이 입력시 종료일에 대한 결과값이 왜 다르게 나오는지 답변 부탁드려요
입력함수 =WORKDAY("2021-01-01"-1,10) 결과값 2021-01-14
결과값이 2021-01-10이 나와야 정상이 아닌가 싶은데요?
WORKDAY함수는 기간을 계산할때 토요일, 일요일은 제외하고 계산해줍니다.