일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- SQL
- PySpark
- string
- list
- django
- matplotlib
- Github
- numpy
- Excel
- c#
- gas
- Apache
- Google Spreadsheet
- array
- dataframe
- Redshift
- math
- Python
- 파이썬
- PostgreSQL
- Google Excel
- google apps script
- Java
- GIT
- Kotlin
- Tkinter
- hive
- PANDAS
- Mac
- Today
- Total
달나라 노트
Excel : weeknum, isoweeknum (week number, 주차 번호 구하기. 몇주차인지 구하기) 본문
Excel : weeknum, isoweeknum (week number, 주차 번호 구하기. 몇주차인지 구하기)
CosmosProject 2021. 5. 21. 13:07
비즈니스에서 비교적 자주 들을 수 있는 날짜 관련 내용 중 하나는 날짜를 주차별로 다룰 때가 있다는 것입니다.
(몇 주차의 데이터, 몇 주차의 자료 등등)
1년은 총 52주 또는 53주로 구성되어있습니다.
엑셀에선 어느 날짜가 몇주차인지를 알려주는 함수를 제공합니다.
함수는 weeknum, isoweeknum 2가지가 있으며 위처럼 2020-12-13은 각각 51주차, 50주차라는 결과를 얻게됩니다.
(왜 두 함수의 값이 다른지는 좀 이따가 알아봅시다.)
먼저 함수 사용법부터 알아봅시다.
=weeknum(<date>, <return_type>)
date = 날짜 데이터를 입력하면 됩니다.
return_type = 생략가능한 값이며 한 주의 시작을 설정할 수 있습니다.
생략할 경우 기본값은 1로 설정됩니다. (= 주차의 시작을 일요일로 간주합니다.)
return_type = 1 -> 주차의 시작을 일요일로 설정
return_type = 2 -> 주차의 시작을 월요일로 설정
return_type = 12 -> 주차의 시작을 화요일로 설정
return_type = 13 -> 주차의 시작을 수요일로 설정
return_type = 14 -> 주차의 시작을 목요일로 설정
return_type = 15 -> 주차의 시작을 금요일로 설정
return_type = 16 -> 주차의 시작을 토요일로 설정
isoweeknum 함수도 비슷합니다.
=isoweeknum(<date>)
date = 날짜 데이터를 입력하면 됩니다.
isoweeknum은 기본적으로 주차의 시작을 월요일로 간주합니다.
사용법은 간단하죠.
근데 한 가지 문제가 있습니다.
위 이미지는 2021년 1월 달력입니다.
빨간색 선으로 표시된 주차를 보면 2020년의 마지막주에서 2021년의 첫주로 넘어가는 주이죠.
이런 경우 저 표시된 주는
2021년 기준으로 볼땐 1주차지만
2020년 기준으로 보면 53주차가 됩니다. 이런 경우 어떻게 해야할까요?
여기서 weeknum과 isoweeknum 함수의 차이가 발생합니다.
위 이미지는 2020-12-20 ~ 2021-01-10 기간동안의 날짜에 weeknum, isoweeknum 함수를 적용시킨 것입니다.
가장 중요한건 파란색 부분입니다.
weeknum 함수는 문제가 되었던 주차 (2021-12-27 ~ 2020-01-02)를 년도별로 나누고 있습니다.
2020-12-27 ~ 2020-12-31 -> 2020년이므로 53주차로 표시
2021-01-01 ~ 2021-01-02 -> 2021년이므로 1주차로 표시
그러나 isoweeknum은 다릅니다.
2020-12-27 ~ 2021-01-02 -> 모두 53주차로 표시
이 2가지가 다른 이유는 기준점이 다르기 때문입니다.
weeknum은 년도가 바뀔 경우 예외적으로 주차도 바뀌게됩니다.
하지만 isoweeknum은 53주차로할지 1주차로할지 결정할 때 해당 주의 목요일이 53주차 또는 1주차 어디에 해당하는지에 따라 달라집니다.
위 예시에서는 53주차 ~ 1주차 기간(2020-12-27 ~ 2021-01-02)에 존재하는 목요일 2020-12-31이 53주차입니다.
따라서 이 주차는 53주차로 결정되며 그 결과로 2021-01-01 ~ 2021-01-03도 53주차로 표기되고 있습니다.
이번에는 2019년에서 2020년으로 넘어가는 시점입니다.
동일하게 파란색으로 표시된 부분을 보면 2019년의 날짜와 2020년의 날짜가 공존하는 주차이죠.
마찬가지로 weeknum 함수는 해당 주차를 둘로 나눠 2019년의 날짜면 53주차로 표시하며
2020년의 날짜라면 1주차로 표시합니다.
그러나 isoweeknum은 2019-12-30 ~ 2020-01-05 주차를 모두 1주차로 표시하고 있습니다.
그 이유는 위에서 설명했던 것 처럼,
해당 주차의 목요일(2020-01-02)이 1주차에 속하기 때문에 weeknum에서 53주차로 표시되는 것을 그냥 1주차로 간주하기 때문입니다.
'Excel' 카테고리의 다른 글
Excel : textjoin (여러 셀의 값들을 하나로 이어붙이기. Excel listagg) (0) | 2022.01.14 |
---|---|
Excel : sort (특정 범위 정렬하기) (0) | 2021.07.15 |
Excel : find, search (문자열에서 원하는 텍스트 위치 찾기) (0) | 2021.03.24 |
Excel : edate 함수 (날짜에 월 단위 연산하기) (0) | 2021.02.25 |
Excel : iserror 함수(Error인지 아닌지의 여부를 반환) (0) | 2021.02.25 |