Home > 엑셀 함수 > 날짜 및 시간 함수 > 엑셀함수 WEEKNUM, ISOWEEKNUM – 날짜의 주차 구하기

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

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 – 날짜의 주차 구하기”의 6개의 댓글

  1. 안녕하세요 주차 표기 방식에 대해 정보 잘 얻었습니다. 감사합니다.
    문의를 드리고싶은데, 1년간의 주차 (ex. 52주차…) 가 아닌, 각 월 별로 주차 (ex. 1월 2주차, 2월 4주차 등) 로 자동 표기하는 서식이 있을까요? 이 게시글 보고 계속 혼자 만들어보는데 잘 되지 않네요 ㅠㅠ

    1. 안녕하세요. 다음과 같이 해 보세요. 혹시 수식이 에러나면 빼기 기호가 2바이트로 입력되어 그럴 수 있으니 키보드에 있는 빼기 기호를 다시 입력해 보세요.
      =WEEKNUM(A1,1)-WEEKNUM(DATE(YEAR(A1),MONTH(A1),1),1)+1
      이 수식은 A1에 날짜가 있다고 가정하고 그 날짜에 해당하는 주차를 먼저구하고, 그 달의 1일의 주차를 구해서 빼면 월단위 주차가 나오도록 구현되어 있습니다. WEEKNUM의 두번째 인수 1은 일요일이 시작일니다. 다른 요일로 하고 싶으시면 다른 값으로 바꾸시면 됩니다.
      감사합니다.

  2. 안녕하세요,
    week number를 4자리로 표현하는 방식이 있었는데 기억이 안나네요.
    예를 들어
    2020년 2주차면,
    wk2002 이런식으로요.
    감사합니다.

    1. 안녕하세요. A1셀에 날짜가 들어있다고 가정하면 =”wk”&TEXT(A1,”YY”)&TEXT(WEEKNUM(A1,1),”00″)를 입력하면 됩니다. 수식을 복사해서 붙여 넣은 후 에러가 날 수 있습니다. 쌍따옴표가 2바이트로 입력되는 경우에 오류가 날 수 있으니 키보드에 있는 문자로 다시 입력하면 됩니다.
      감사합니다.

댓글 남기기

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