Excel

영업일 기준 전후 날짜 구하기 - Workday, Workday.Intl 함수

별동산 2023. 4. 12. 08:40
반응형

Edate함수는 월을 기준으로 앞뒤 날짜를 구해주는데, 영업일을 제외하지 않습니다. 따라서, 영업일 기준으로 날짜를 구할 필요가 있습니다.

 

1. 구문

WORKDAY(start_date, days, [holidays])

 

WORKDAY.INTL(start_date, days, [weekend], [holidays])

 

WORKDAY와 WORKDAY.INTL의 다른 점은 WORKDAY.INTL은 국가별 특성을 고려할 수 있는 Weekend 인수가 있다는 점입니다.

 

- start_date는 Edate와 같습니다.

 

- days : 두 번째 인수가 days(일)로 months(월)를 인수로 하는 Edate함수와 대비됩니다.

 

- holidays : 엑셀에서 사용하는 일반적이 휴일 이외에 추가로 휴일을 지정할 수 있습니다.

                  휴일은 NetWorkdays(.Intl) 함수(시작일과 종료일 사이의 영업일 수 반환)의 경우와 같습니다.

 

- weekend : 주말의 형태를 지정하는 것으로 NetWorkdays(.Intl) 함수의 경우와 같습니다. 기본값은 토, 일요일이 주말입니다.

https://lsw3210.tistory.com/entry/%EB%82%A0%EC%A7%9C%EA%B0%84%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EA%B3%84%EC%82%B03-NetWorkdays-NetWorkdaysIntl

을 참고 바랍니다.

 

수식 입력시 weekend의 유형이 제시되므로 어렵지 않게 입력할 수 있습니다.

 

 

2. NetWorkdays(.Intl), Days 함수와 비교

가. NetWorkdays(.Intl) 함수와 비교

NetWorkdays(.Intl) 함수는 시작일과 종료일 사이의 차이를 영업일 기준으로 구하는 것이므로 start_date와 end_date를 인수로 받고, Workday(.Intl)함수는 시작일로부터 지정된 날짜만큼 떨어진 날짜를 구하기 때문에 start_date만 인수입니다.

 

그리고, NetWorkdays(.Intl)은 s가 붙어 있어서 날짜 수라는 것을 알 수 있고, Workday(,Intl) 함수는 s가 없어서 날짜라는 것을 알 수 있습니다.

 

그러나, weekend와 holidays 인수는 동일합니다.

 

나. Days 함수와 비교

Days함수는 영업일과 무관하게 날짜의 차이를 구해주는 함수이며,

인수로 end_date가 start_date보다 빨리 입력되는 차이점이 있습니다.

 

3. 예제

 

가. Workday 함수

(1) start_date와 days만 입력한 경우

 

아래와 같이 시작일을 22/4/12로 입력하고, 날짜 수를 2라고 입력한 다음

=WORKDAY(A2,B2) 라고 입력하면 2022-04-14가 아니라 44665가 구해집니다.

 

이것은 날짜 표시형식에 대한 문제로 홈 탭 > 표시 형식 그룹에서 일반을 간단한 날짜로 변경하면 

간단한 날짜 표시 형식

 

숫자가 날짜로 바뀌어서 2022-04-14라고 표시됩니다.

 

(2) 시작일을 큰 따옴표 안에 입력한 경우

시작일을 큰 따옴표 안에 입력하면 Edate함수의 경우와 같이 #VALUE! 에러가 발생합니다.

 

(3) 시작일, 날수, 휴일을 모두 입력한 경우 1

휴일을 새로운 시트에 입력하는 것이 바람직하지만,

이해하기 쉽게 같은 시트에 만들어보겠습니다.

 

F2셀에 휴일 2022/04/14를 추가하고, A4셀에 2022/04/12라고 입력하고, days로는 2를 입력한 다음

=WORKDAY(A4,B4,F2) 라고 입력하면 

 

2022/4/12에서 이틀 후는 4/14일인데, 4/14일이 휴일이므로 4/15일이 반환됩니다.

 

(4) 시작일, 날수, 휴일을 모두 입력한 경우 2

2022/4/14일이 휴일인 경우에 2022/4/13일부터 3일 후는 언제인가 하고 따져보니, 4/15가 하루, 4/18이 이틀, 4/19가 삼일이라 4/19가 반환됩니다.

 

 

나. Workday.Intl 함수

(1) 시작일, 날수, 휴일만 입력한 경우

Workday 함수와 같이 시작일, 날수, 휴일만 입력하는데, 휴일이 네 번째 인수이고, 세 번째 인수는 생략할 것이기 때문에 ,,라고 입력한 후 휴일인 F$2셀을 입력합니다.

 

그러면 수식은 =WORKDAY.INTL(A6,B6,,F$2) 이 되고, 

인수를 생략하려면 ,,로 입력하면 됩니다.

 

이것은 =workday(a6,b6,f$2) 와 같습니다.

주말에 대한 지정이 없기 때문에 workday와 workday.intl이 같은 결과를 가져옵니다.

 

(2) 시작일, 날수, 휴일을 입력하고, 주말을 일요일만으로 지정한 경우

6행을 복사해서 7행에 붙인 다음

weekend를 지정하는데, 1을 입력하면 아래와 같이 주말의 유형이 표시되므로

여기서 11을 더블 클릭합니다.

주말 유형이 나열돼서 쉽게 선택할 수 있습니다.

 

그리고, 엔터키를 누르면 토요일도 근무가 가능하기 때문에 2022/04/18이 구해집니다.

 

(3) 날수를 마이너스로 지정한 경우

(2)와 시작일, 주말, 휴일은 동일한데 날수만 음수로 지정하면

 

Workday 함수는 토,일요일이 주말이기 때문에 4/8이 반환되는데,

Workday.Intl 함수는 일요일만 주말이기 때문에 4/9이 반환됩니다.

 

date6(final).xlsx
0.01MB

반응형