728x90

 

 

https://toast-story.tistory.com/18

 

엑셀의 날짜 서식과 날짜를 지원하는 함수(TODAY, DATE, YEAR, MONTH, DAY)

단순 숫자를 서식에 따라서 표현할 수 있게 하는 것은 엑셀의 가장 중요한 기능 중 하나입니다. 그 중 날짜는 우리가 데이터를 구별하고 정리하는데 가장 중요한 요소 중 하나입니다. 셀서식의

toast-story.tistory.com

 

 

엑셀은 날짜를 지원하는 서식이 있어서 편리하게 달력표기를 할 수 있습니다.

날짜서식에 대한건 위의 포스트 참고해주시면 되겠습니다.

기간을 계산하는 함수에 대해서는 이전에 있어서 좀더 복잡한 함수를 소개하려 합니다.

 

 

 

 

1. WORKDAY, WORKDAY.INTL 함수

 

휴일을 제외한 날짜를 계산하는 함수입니다.

바로 내용에 대해서 설명하겠습니다.

 

WORKDAY(start_date, days, [holidays]) : 시작일자(start_date)에서 날짜(days)가 지나고 난 후에 날짜를 계산합니다. 이때 휴일(holidays)는 제외합니다.

 

  • start_date : 계산하고자 하는 기간의 시작 날짜입니다.
  • end_date : 계산하고자 하는 기간의 마지막 날짜입니다.
  • [holidays] : 주말과는 달리 비정기적인 휴일입니다. 리스트로 만들어서 넣거나 {2023-01-07, 2023-05-18}등 문자열을 직접 입력할 수도 있습니다.

계산의 결과가 되는 날이 휴일인 경우에는 그것을 지난 평일을 출력합니다.

엑셀에서는 기본 공휴일이 없으니 공휴일 리스트는 달력을 보거나 인터넷에서 직접 넣어야 합니다.

 

WORKDAY.INTL(start_date, days, [weekend], [holidays]) : 시작일자(start_date)에서 날짜(days)가 지나고 난 후에 날짜를 계산합니다. 이때 휴일(holidays)과 주말을 제외합니다. 정기적인 휴일인 주말은 문자열이나 숫자로 변경할 수 있습니다.

 

  • start_date : 계산하고자 하는 기간의 시작 날짜입니다.
  • end_date : 계산하고자 하는 기간의 마지막 날짜입니다.
  • [weekend] : 주말일이고 전체 근무일 수에 포함되지 않은 정기적인 휴일인 주말을 지정하는 숫자나 문자열입니다.
  • [holidays] : 주말과는 달리 비정기적인 휴일입니다. 리스트로 만들어서 넣거나 {2023-01-07, 2023-05-18}등 문자열을 직접 입력할 수도 있습니다.

 

오피스 2010 버전에서 추가된 함수입니다.

정기적인 휴일인 주말, [weekend]는 "주말문자열"과 "주말 숫자" 두가지 형식으로 넣을 수 있습니다.
주말문자열은 (월화수목금토일)을 "0000000"으로 나타낸 것으로 "0100000"은 화요일만 휴일이 됩니다.
주말숫자표는 아래와 같습니다.

 

숫자 주말문자열 요일
1 또는 생략 0000011 토요일, 일요일
2 1000001 일요일, 월요일
3 1100000 월요일, 화요일
4 0110000 화요일, 수요일
5 0011000 수요일, 목요일
6 0001100 목요일, 금요일
7 0000110 금요일, 토요일
11 0000001 일요일만
12 1000000 월요일만
13 0100000 화요일만
14 0010000 수요일만
15 0001000 목요일만
16 0000100 금요일만
17 0000010 토요일만

 

함수가 복잡하니 사용예시를 들어 보이겠습니다.

근무일수로 600을 넘기려니 주 5일제와 6일제가 엄청나게 차이나네요.

 

 

320x100

 

 

 

2. NETWORKDAYS, NETWORKDAYS.INTL 함수

 

이 함수는 구하고자 하는 것만 다르지 workday 함수와 거의 같습니다.

따라서 설명도 중복과 비슷하게 되겠지만 목적이 다른만큼 약간 차이가 있습니다.

 

NETWORKDAYS(start_date, end_date, [holidays]) : 시작일자(start_date)와 마지막 날짜(end_date) 사이의 휴일을 제외하고 기간을 계산합니다.

 

  • start_date : 계산하고자 하는 기간의 시작 날짜입니다.
  • end_date : 계산하고자 하는 기간의 마지막 날짜입니다.
  • [holidays] : 주말과는 달리 비정기적인 휴일입니다. 리스트로 만들어서 넣거나 {2023-01-07, 2023-05-18}등 문자열을 직접 입력할 수도 있습니다.

위의 Wokday 함수는 기간이 지난 후의 날짜를 구하는 함수고 Holidays 함수는 날짜 사이의 기간을 구합니다.

휴일의 입력방법은 같습니다.

 

NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays]) : 시작일자(start_date)와 마지막 날짜(end_date) 사이의 휴일과 정기적인 휴일인 주말을 제외하고 기간을 계산합니다.  정기적인 휴일인 주말은 문자열이나 숫자로 변경할 수 있습니다.

 

  • start_date : 계산하고자 하는 기간의 시작 날짜입니다.
  • end_date : 계산하고자 하는 기간의 마지막 날짜입니다.
  • [weekend] : 주말일이고 전체 근무일 수에 포함되지 않은 정기적인 휴일인 주말을 지정하는 숫자나 문자열입니다.
  • [holidays] : 주말과는 달리 비정기적인 휴일입니다. 리스트로 만들어서 넣거나 {2023-01-07, 2023-05-18}등 문자열을 직접 입력할 수도 있습니다.

 

오피스 2010 버전에서 추가된 함수입니다. WORKDAY.INTL 함수와 비슷한 입력형식을 가집니다.

[weekend]는 "주말문자열"과 "주말 숫자" 두가지 형식으로 넣을 수 있습니다.
주말문자열은 (월화수목금토일)을 "0000000"으로 나타낸 것으로 "0100000"은 화요일만 휴일이 됩니다.
주말숫자표는 아래와 같습니다.

 

숫자 주말문자열 요일
1 또는 생략 0000011 토요일, 일요일
2 1000001 일요일, 월요일
3 1100000 월요일, 화요일
4 0110000 화요일, 수요일
5 0011000 수요일, 목요일
6 0001100 목요일, 금요일
7 0000110 금요일, 토요일
11 0000001 일요일만
12 1000000 월요일만
13 0100000 화요일만
14 0010000 수요일만
15 0001000 목요일만
16 0000100 금요일만
17 0000010 토요일만

 

workday 함수와 사용예시 또한 비슷합니다.

이렇게 보면 주5일제가 얼마나 효과적인지 잘 보이네요.

 

 

반응형
728x90

엑셀을 여러가지 서식을 지원합니다.

년도와 월 일로 이루어진 날짜 서식은 주차를 컨트롤 할 수 있는 함수를 제공합니다.

 

1. 주차(Week) 세는 법

 

한해는 1주부터 51~2주로 이루어 져있습니다. 각 주차를 세는 방법을 보는 함수 먼저 설명하겠습니다. 

 

ISOWeeknum(DateTime) :  ISO 8601 날짜 및 시간 표준 정의에 따라서 날짜의 주차 번호를 지정합니다.

기본적으로 두 함수는 같은데 ISOWeeknum는 처음 목요일이 포함된 주차를 1주차로 칩니다.

그래서 1월 1일은 작년도 마지막 주차가 될 수 있습니다.

22년도를 예로 들겠습니다.

 

 

 

WeekNum(DateTime [, StartOfWeek ]) : 주차 수를 반환합니다.

1월 1일이 포함된 주를 연도의 첫 번째 주로 사용합니다. 

요일에 상관없이 12월 31일은 마지막주, 1월 1일은 올해 첫째주입니다.

  • DateTime - 필수 항목입니다. 연산을 수행할 날짜/시간 값입니다.
  • [StartOfWeek] - 선택 사항입니다. 주의 시작 요일을 Excel 코드 또는 StartOfWeek 열거로 입력할 수 있습니다.
코드 StartOfWeek 열거형 설명
1, 17 StartOfWeek.Sunday 주는 일요일에 시작합니다. 기본값. (일요일 ~ 토요일)
2, 11 StartOfWeek.Monday 주가 월요일에 시작합니다. (월요일 ~ 일요일)
12 StartOfWeek.Tuesday 주가 화요일에 시작합니다. (화요일 ~ 월요일)
13 StartOfWeek.Wednesday 주가 수요일에 시작합니다. (수요일 ~ 화요일)
14 StartOfWeek.Thursday 주가 목요일에 시작합니다. (목요일 ~ 수요일)
15 StartOfWeek.Friday 주가 금요일에 시작합니다. (금요일 ~ 목요일)
16 StartOfWeek.Saturday 주가 토요일에 시작합니다. (토요일 ~ 금요일)

 

WEEKDAY(serial_number,[return_type]) : 날짜에 해당하는 요일을 반환합니다. 기본값은 1(일요일)에서 7(토요일) 사이의 정수로 표시됩니다.

  • serial_number : 입력할 날짜로 날짜 형식이여야 합니다.
  • [return_type] : 선택 요소입니다. 반환 값 유형을 결정하는 숫자입니다.
return_type
반환되는 수 예시
1(기본값)
1(일요일)에서 7(토요일) 사이의 숫자 
일 월 화 수 목 금 토 (1 ~ 7)
2 1(월요일)에서 7(일요일) 사이의 숫자 월 화 수 목 금 토 일 (1 ~ 7)
3 0(월요일)에서 6(일요일) 사이의 숫자 월 화 수 목 금 토 일 (0 ~ 6)
11 1(월요일)에서 7(일요일) 사이의 숫자 월 화 수 목 금 토 일 (1 ~ 7)
12 1(화요일)에서 7(월요일) 사이의 숫자 화 수 목 금 토 일 월 (1 ~ 7)
13 1(수요일)에서 7(화요일) 사이의 숫자 수 목 금 토 일 월 화 (1 ~ 7)
14 1(목요일)에서 7(수요일) 사이의 숫자 목 금 토 일 월 화 수 (1 ~ 7)
15 1(금요일)에서 7(목요일) 사이의 숫자 금 토 일 월 화 수 목(1 ~ 7)
16 1(토요일)에서 7(금요일) 사이의 숫자 토 일 월 화 수 목 금(1 ~ 7)
17 1(일요일)에서 7(토요일) 사이의 숫자 일 월 화 수 목 금 토(1 ~ 7)

 

320x100

 

2. 일자사이의 요일을 세는 함수

시작일과 마지막일 사이에 "??"요일이 몇개 있는지 세는 함수입니다.

계산을 위해 월요일(1) ~ 일요일(7)로 잡겠습니다.

=(WEEKNUM(마지막)-WEEKNUM(시작)-1)+IF(WEEKDAY(마지막,2)<=요일,1,0)+IF(WEEKDAY(시작,2)>=요일,1,0)

<설명>

일주일에 요일이 하나씩 있으니 (WEEKNUM(마지막)-WEEKNUM(시작)-1) 는 첫주와 마지막주를 뺀 주차의 수가 됩니다.

그리고 시작주와 마지막주에 요일이 포함되면 더하는지를 알기 위해 

IF(WEEKDAY(마지막,2)<=요일,1,0)+IF(WEEKDAY(시작,2)>=요일,1,0)가 포함됩니다.

반응형

+ Recent posts