엑셀함수 WEEKNUM, ISOWEEKNUM – 날짜의 주차 구하기

공개됨 글쓴이 Admin댓글 한 개

1년은 52주 또는 53주로 구성되어 있는데 업무상 어떤 날짜가 년 중 몇 주차인지 구해야 하는 경우가 있다. 그런데 문제는 주차를 계산하는 방식이 한가지가 아니라는 점이다. 여러 가지 방법 중 업무용도에 맞게 사용해야 한다. 아래 2가지 외 업무의 목적에 따라 변형된 형태가 있을 수 있다.

  • 1월 1일을 포함하는 주가 년도의 첫주가 되는 방식
    엑셀의 WEEKNUM함수에서 두번째 인수로 “시스템1″을 사용하면 이 방식의 주차를 구할 수 있다.
  • ISO8601에 지정된 방식으로 한주의 시작은 월요일이며 년도의 첫번째 목요일을 포함하는 주가 첫주가 되는 방식
    엑셀의 WEEKNUM함수에서 두번째 인수로 “시스템2″를 사용하거나 ISOWEEKNUM함수로 이 방식의 주차를 구할 수 있다.

 

눈으로만 보면 이해가 어려울 수 있으니 아래의 실습용 파일을 다운로드 받아서 따라해 보자.

첨부(실습용 엑셀파일) : 엑셀함수_WEEKNUM_ISOWEEKNUM_xlworks.net.xlsx

1) WEEKNUM

구문(Syntax)
WEEKNUM(serial_number,[return_type])

serial_number : 날짜(serial_number라고 부르는 이유는 날짜는 엑셀 내부적으로 일련번호 형태로 저장되기 때문이다)

return_type : 주의 시작요일을 지정함, 생략가능하며 생략시 1이 기본값으로 선택됨

  • 1 또는 생략 – 일요일 (시스템1)
  • 2 – 월요일 (시스템1)
  • 11 – 월요일 (시스템1)
  • 12 – 화요일 (시스템1)
  • 13 – 수요일 (시스템1)
  • 14 – 목요일 (시스템1)
  • 15 – 금요일 (시스템1)
  • 16 – 토요일 (시스템1)
  • 17 – 일요일 (시스템1)
  • 21 – 월요일 (시스템2)

WEEKNUM 함수를 이용해서 년 중의 주차를 다음 2가지 방식으로 구할 수 있다.

  • “시스템1” 방식(1월 1일을 포함하는 주가 년도의 첫주가 된다)과
  • “시스템2” 방식( ISO8601에 지정된 방식으로 한주의 시작은 월요일이며 년도의 첫번째 목요일을 포함하는 주가 첫주가 된다)

아래 그림과 같이 “=WEEKNUM(B2,” 까지 입력하면 두번째 인수인 return_type의 설명이 나타난다.

  • 1부터 17까지는 “시스템1″이다. 예를 들어
    1을 선택하면 “시스템1″이면서 주의 시작이 일요일이고
    12를 선택하면 “시스템1″이면서 주의 시작이 화요일이다.
  • 21은 “시스템2″이다.

 

동일날짜라 하더라도 선택하는 인수에 따라서 구해지는 주차가 달라진다. 다음의 2018년 1월 달력을 보고 확인해 보자.

예를 들어 1월 3일(수요일)은

  • 인수를 1(시스템1, 일요일이 주의 시작요일)을 선택하면 1주차이지만
    =WEEKNUM(B3,1)
  • 인수를 13(시스템2, 주의 시작일이 수요일)으로 선택하면 2주차가 된다. 1일과 2일은 수요일전이므로 1주차이지만 수요일부터 새로운 요일이 시작되므로 1월 3일은 2주차가 된다.
    =WEEKNUM(B4,13)
  • 인수를 21(시스템2, ISO8601방식)로 선택하면 1주차가 된다. 월요일부터 새로운 요일이 시작되므로 1월 3일은 1주차가 된다.
    =WEEKNUM(B5,21)


2) ISOWEEKNUM (Office 2013버전부터 사용가능)

ISO8601에 지정된 방식으로 주차를 계산한다. 한주의 시작은 월요일이며 년도의 첫번째 목요일을 포함하는 주가 첫주가 된다

구문(Syntax)
ISOWEEKNUM(date)

date : 날짜

WEEKNUM 함수에서 2번째 인수를 “시스템2″로 사용했을 때와 같은 결과를 구할 수 있다

ISOWEEKNUM 함수를 이용해서 년 중의 주차를 구할 수 있는데 첫 목요일이 속한 주가 첫주가 되므로 어떤 년도는 1월1일이 첫주가 아니라 전년도의 마지막 주가 되는 경우도 있다.

1월1일이 속한 주가 첫주가 되는 경우(예 2015년)

다음의 2015년 1월 달력을 보고 확인해 보자.

ISOWEEKNUM함수는 ISO8601에 따라

  • 한 주는 월요일부터 시작하고,
  • 첫 목요일이 속한 주를 첫주로 구해 주므로

2014년 12월 29일 ~ 2015년 1월 4일이 첫주가 된다.
다음과 같이 함수를 입력하여 확인할 수 있다.
=ISOWEEKNUM(B4)

1월 1일이 속한 주가 전년도의 마지막 주가 되는 경우(예 2016년)

다음의 2016년 1월 달력을 보고 확인해 보자.

ISOWEEKNUM함수는 ISO8601에 따라

  • 한 주는 월요일부터 시작하고,
  • 첫 목요일이 속한 주를 첫주로 구해 주므로

2015년 12월 28일 ~ 2016년 1월 3일이 전년도의 마지막주(53주)가 된다. 1월1일임에도 불구하고 그 해도의 첫주가 아니라 전년도의 마지막주가 된다는 점을 유의해야 한다.
따라서 2016년의 첫주는 1월 4일(월요일)부터 시작된다.

다음과 같이 함수를 입력하여 확인할 수 있다.
=ISOWEEKNUM(B24)

 

이것으로 WEEKNUM, ISOWEEKNUM함수에 대한 설명을 마친다. 날짜함수에 대한 기초지식이 필요하면 “엑셀에서 날짜와 관련된 수식과 함수 기초”글을 참고하면 된다.

 

[ 엑셀 날짜 및 시간 함수 ]

엑셀함수 WEEKNUM, ISOWEEKNUM – 날짜의 주차 구하기에 1개의 응답

댓글 남기기

이메일은 공개되지 않습니다.