Home > 엑셀 함수 > 날짜 및 시간 함수 > 엑셀함수 WORKDAY, WORKDAY.INTL – 시작일에서 일정기간 지난 후의 날짜 구하기

엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

엑셀의 WORKDAY 및 WORKDAY.INTL 함수는 시작일에서 일정기간이 지난 후 의 날짜를 구해준다. 기간을 음수로 입력하면 시작일 이전의 날짜를 구해준다. 기간을 계산할때는 토요일,일요일은 제외되고 세번째 인수를 넣으면 토요일, 일요일 이외의 날짜도 계산에서 제외시킬 수 있다.

이 함수는 프로젝트 진행시 시작일로부터 일정 기간이 지난 날짜가 언제인지 확인하거나 강의시작 후 일정기간 경과 후가 언제인지 확인할 때 유용하다.

WORKDAY.INTL함수는 WORKDAY함수와 거의 동일하나 세번째 인수로 토/일요일 이외의 날짜를 휴무일로 지정할 수 있다.

1. WORKDAY

구문(Syntax)

WORKDAY(start_date, days, [holidays])

start_date : 시작일
days : 경과 일수
holidays : 생략가능하며 토요일,일요일을 제외한 날짜를 휴무일로 지정할 경우에 사용하며 셀범위 또는 날짜의 배열상수를 선택할 수 있음

 

사용예 :

1) 토요일,일요일만 근무일수에서 제외하고 일정기간 후의 날짜 구하기

다음 그림과 같이 2018년 1월 1일에 시작해서 10일이 경과한 후의 날짜를 구한다고 가정해 보자.
엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

=WORKDAY("2018-01-01", 10)을 입력하면

* 10일 경과한 후의 다음 날짜인 "2018-01-15"를 를 구해준다.

* 10일째이므로 "2018-01-12"가 되어야 할 것 같은데... 좀 이상하지 않은가?

WORKDAY함수는 원래 시작일을 계산에서 제외한다. 그래서 2일부터 계산해서 10일째인 "2018-01-15"를 다음 그림과 같이 구해주는 것이다.

 엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

 

그럼, 정확히 10일째 되는 날은 어떻게 구해야 할까. WORKDAY함수는 시작일을 제외한다고 했으므로 다음 그림과 같이 함수 입력시 시작일에서 1일을 빼면 된다.
=WORKDAY(B8-1, C8)
엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

 

* 10일이 경과한 후의 다음 날을 사용할 것인지 아니면 정확히 10일째 되는 날을 선택할 것인지는 업무 성격에 따라 다를 수 있으므로 잘 판단해서 이 함수를 사용해야 한다.

 

2) 토요일,일요일 및 지정된 휴무일을 제외하고 일정기간 후의 날짜 구하기

WORKDAY함수에서 세번째 인수인 holiday를 사용하면 토요일, 일요일 이외의 날짜도 근무일에서 제외하고 일정기간 후의 날짜를 구할 수 있다. 다음 그림과 같이 특정 휴무일을 기입하고 셀 범위를 선택하면 된다(B15:B16).

1월2일과 1월3일이 휴무일이라서 제외되었으므로 10일 경과 후의 다음 날은 "2018-01-17"로 구해진다.

엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

 

2. WORKDAY.INTL

WORKDAY.INTL은 WORKDAY함수와 거의 동일한 기능을 하는 함수인데 주말을 임의로 설정할 수 있는 인수가 하나 더 있다.
이 인수를 사용하면 WORKDAY함수와는 차원이 다른 신세계를 경험할수 있다.

구문(Syntax)

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) 을 입력한다. 
엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

위와 같이 입력하면 다음의 달력에 보이는 대로 매주 월/화요일은 주말로 인식해서 근무일에서 제외하고 계산해서 2018-01-01부터 10일이 지난 날의 다음 날인 2018-01-15를 구해준다.
엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

 

2) 세번째 인수인 주말인수를 문자열로 입력한 경우 

문자열 인수는 함수 마법사에도 설명이 나오지 않는다. 이 인수를 이용해서 원하는대로 주말을 설정할 수 있다. WORKDAY.INTL 함수의 진정한 가치는 이 인수에 있다고 할 수 있다.
"E15"셀에 =WORKDAY.INTL(B15,C15,"0101011")을 입력해 보자. 마지막 인수인 "0101011"은 다음 그림과 같이 7자리로 구성되며 각 자리의 값이 0이면 평일, 1이면 주말이므로 이 그림은 "월/수/금"을 평일로 계산하고 화/목/토/일를 주말로 계산하는 경우이다.
*주의 : 반드시 값의 앞 뒤로 쌍따옴표를 붙여야 문자열로 인식된다.
엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

위와 같이 입력하면 다음과 같이 10일 지난 후의 다음날이 구해진다.
엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기


정확히 10일째를 구하려면 다음과 같이 입력한다. WORKDAY.INTL함수는 계산시 시작일을 제외하므로 시작일에서 하루를 빼야 시작일도 계산에 포함되어서 정확히 10일째가 구해진다.
=WORKDAY.INTL(B20-1,C20,"0101011")
엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기

 

3) 세번째 인수인 주말인수를 문자열로 입력 - 응용하기

다음 그림과 같이 CASE별 작업종료일 계산에 응용해 보자. 다양한 방법으로 주말 유형을 구성할 수 있다. 생산현장 등에서 특정요일만 작업을 한다고 했을 때 일정기간이 지난 후가 언제인지 확인할 때 사용하면 유용하다.
엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기
종료일은 다음과 같이 구한다.
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 함수에 대한 설명을 마친다. 이 함수는 사용법이 복잡하므로 꼭 첨부의 실습용 엑셀파일을 다운로드 해서 실습해 보자.

날짜함수에 대한 기초지식이 필요하면 "엑셀에서 날짜와 관련된 수식과 함수 기초"글을 참고하면 된다.

[ 엑셀 날짜 및 시간 함수 ]

“엑셀함수 WORKDAY, WORKDAY.INTL - 시작일에서 일정기간 지난 후의 날짜 구하기”의 4개의 댓글

  1. 시작일과 종료일을 아는데 기간을 구하고 싶으면 어떻게 해야할까요??

    1. 안녕하세요. 다음 몇가지 방법이 있습니다.
      1. =종료일-시작일+1 : 휴무일 반영하지 않고 전체 기간을 구해줌
      2. =NETWORKDAYS(시작일,종료일,휴무일영역) : 토/일요일을 제외하고 기간을 구해줌, 휴무일영역을 입력하면 입력된 휴무일도 제외하고 기간을 구해줌.
      3. =NETWORKDAYS.INTL(시작일,종료일,주말종류,휴무일영역) : NETWORKDAYS함수와 거의 비슷한 기능을 하지만 세번째 인수인 주말종류에 따라서 토/일요일 이외의 요일도 주말로 취급하고 기간을 구할 수 있음.
      자세한 내용은 다음 링크를 참조하세요. https://xlworks.net/excel_function_networkdays_networkdays-intl/

      감사합니다.

  2. 문의드립니다.
    WORKDAY 함수 사용 예정인데 설명해주신 내용에 따라
    아래와 같이 입력시 종료일에 대한 결과값이 왜 다르게 나오는지 답변 부탁드려요
    입력함수 =WORKDAY("2021-01-01"-1,10) 결과값 2021-01-14
    결과값이 2021-01-10이 나와야 정상이 아닌가 싶은데요?

    1. WORKDAY함수는 기간을 계산할때 토요일, 일요일은 제외하고 계산해줍니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다.