brunch

You can make anything
by writing

C.S.Lewis

by 최반장 May 03. 2024

모두 같은 '주'로 분석한 것 맞나요?

엑셀 주 번호(Week Number) 계산의 비밀.

경기도 남양주시에 살고 있는 최씨에게 잠실역은 서울에 진입하기 위한 중요한 관문입니다.예전보다 잠실역에 사람이 부쩍 붐빈다고 생각된 최씨는 엑셀로 분석해보기로 합니다.



 공공데이터를 가공해서 2021년부터 2022년까지의 2호선 잠실역의 승객 수 데이터(①)를 준비하고, 피벗 테이블(②)과 피벗 차트(③)를 만들었습니다.
날짜 필드를 행 영역에 추가하니 자동으로 연도, 분기, 월 필드가 생성(④) 되었지만 최씨는 이것이 피벗 테이블의 그룹 기능인 것을 잘 알고 있었기에 당황하지 않고 멋지게 활용합니다.월별로 집계해 보니, 약간의 변곡이 있지만 전반적으로 승객 수가 우상향하는 추세를 볼 수 있었습니다.

여름(3분기)과 겨울(1분기)에 승객수가 떨어지는 모양도 확인할 수 있는데 이것이 지속적인 경향인지는 조금 더 장기간의 데이터로 확인해봐야 하겠습니다.
승하차 인원이 거의 유사하다는 점도 흥미로웠습니다. 바꾸어 말하자면 내린 사람만큼 또 탄다는 의미가 될 수 있을 것 같은데 그만큼 경유지로써의 기능을 하고 있다는 반증인지 조금 더 살펴봐야겠습니다.

월간 합계는 숫자가 너무 크고 일별로 보기에는 너무 항목이 많아서 최씨는 주차별로 집계해보기로 합니다. 왜 피벗 테이블에서 '주'를 자동으로 그룹으로 만들어주지 않는지 원망이 들지만 엑셀 좀 하는 최씨에게 이 정도는 시련의 ㅅ도 아닙니다.

원본 데이터에 WEEKNUM 함수를 사용해서 주차 열을 추가하고, 피벗 테이블을 새로고침해서 주차 필드를 분석에 포함합니다. 멋지게 주차별 분석을 해낸 스스로에게 칭찬을 하려는 순간 최씨는 차트가 뭔가 이상한 것을 발견합니다.  

각 연도의 1주차마다 뚝 떨어져 있는 비정상적인 모양(①)입니다.

피벗 테이블에서 1주차 데이터(②)를 보니 다른 데이터의 반의반에도 못미치는 작은 데이터인 것을 확인할 수 있었습니다.

원본 데이터에서 일자별 데이터(③)를 보면 크게 튀는 데이터는 없는 것을 보고 잘못된 것을 찾아보기로 합니다.

최씨는 열 영역에 있던 [승하차구분] 필드를 필터 영역으로 이동한 뒤 '승차' 항목으로 필터를 설정하고, 값 영역의 [승객수] 필드의 요약 기준을 합계에서 개수로 변경했습니다. 한 주에 몇 행씩 있는지를 보기 위함이었는데 모든 주차의 값이 7인 것에 비해서 2021년 1주차의 값은 2, 2022년 1주차의 값은 1로 집계되었습니다. 즉, 다른 주차는 모두 7행(7일)의 데이터인데 1주차만 2일 또는 1일의 데이터만 있는 상황인 것입니다.


'주 번호'의 개념과 계산 방법

주 번호(Week Number)는 해당 연도의 몇 번째 주인지 순서를 나타내는 번호입니다.
1주차는 그 해의 첫 번째 주이고 2주차는 그 해의 두 번째 주를 나타냅니다.
많은 기업에서 '주 번호'를 집계와 분석의 기준으로 합니다.
엑셀에서는 WEEKNUM 함수를 이용해서 주 번호를 쉽게 구할 수 있습니다.



주의 시작은 무슨 요일인가요? 1주차는 언제부터 언제까지인가요?

WEEKNUM 함수는 날짜만 넣어도 정상적으로 작동하는데 입력 가능한 두번째 인수가 있습니다.

이 두 번째 인수는 '[return_type]' 으로써 주 번호를 계산할 때 주의 시작 요일과 계산 체계를 결정하는 기능을 합니다.

앞서 최씨는 D2셀에 WEEKNUM(A2) 라고 입력하고 아래 모든 셀에 수식을 복사했습니다. 즉, 2번째 인수를 입력하지 않았기 때문에 주 번호의 계산 기준은 '일요일을 주의 시작으로 하며, 체계 1로 계산되었습니다.

여기서 체계 1은 1월 1일을 포함하는 주를 연도의 첫째 주로 계산하는 방식입니다.

따라서 2021년 1월 1일이 포함된 주가 1주차이고, 주의 시작 요일이 일요일이기 때문에 1월 3일 일요일에 다음 주인 2주차가 시작되는 것입니다. 똑같은 날짜라고 하더라도 return type을 다르게 하면 아래의 표에서 보는 것과 같이 1주차의 길이가 다르게 표시됩니다. 2주차의 시작 요일이 다르기 때문입니다.


주 번호 계산에도 국제, 국가 표준이 있습니다.

'주의 시작 요일'은 주 번호를 결정하는 중요한 변수입니다. 그런데 이 기준은 국가별로 다릅니다. 예를 들어, 우리나라는 월요일을 주의 첫 날로 하고, 미국은 일요일을 주의 첫 날로 하고 있습니다. 그런데 주 번호의 계산을 위한 국제기준과 이를 토대로 한 우리나라의 표준 기준이 있습니다.

국제 표준화 기구인 ISO에 의해 공포된 [ISO 8601]과 이를 바탕으로 한 [KS X ISO8601]이 바로 그것입니다.

이 표준에 따라 주 번호를 요약하자면 '주의 시작은 월요일이고, 해당 연도의 첫 번재 주는 그 해의 첫 번째 목요일을 포함하는 주'입니다.

즉, 위에서 예시로 살펴보고 있는 2021년에서 살펴 보자면 1주차는 첫 번째 목요일인 1월 7일이 포함된 주입니다. 주의 시작이 월요일이기 때문에 2021년 1주차는 1월 4일(월)부터 1월 10일(일)까지 입니다. 이 때 1주차에 포함되지 못하는 1월 1일부터 3일까지는 전년도인 2020년 53주차가 됩니다.



엑셀에서 [ISO 8601] 주 번호를  계산하는 방법

엑셀에서 ISO 8601 표준에 따른 주 번호를 계산하는 방법은 크게 두 가지가 있습니다.

(1) WEEKNUM 함수

WEEKNUM 함수의 두 번째 인수를 21로 입력하면 국제 표준 기준에 따른 주 번호를 계산할 수 있습니다. 엑셀에서 주 번호를 계산하는 체계는 시스템 1과 시스템 2의 두 가지인데 시스템 2가 바로 ISO 8601에서 지정한 방법입니다.

(2) ISOWEEKNUM 함수

엑셀 2013부터 ISOWEEKNUM 함수가 추가되었습니다.
ISOWEEKNUM 함수는 다른 인수는 필요 없이 날짜만 입력하면 ISO 주 번호를 반환해서 WEEKNUM 함수보다 단순해서 오류를 발생할 확률도 매우 적습니다.


우리의 소원은 통일

미국 액셀러레이터 와이콤비네이터 창업자인 폴 그레이엄은 주 단위 7%의 성장을 하는 스타트업이야말로 폭발적인 성장을 하는 과정에 있다고 볼 수 있다고 한 말은 스타트업씬에서 유명합니다. 그런데 이것을 측정하기에 앞서서 '주'의 단위부터 통일해야 하지 않을까요?

어떤 주 번호 형식이 옳다 그르다의 문제는 아닐 것입니다.

영업팀, 마케팅팀, 재무팀 모두 다른 기준으로 주단위 지표를 측정하고 있다면 의사결정에 혼선을 끼칠 수밖에 없습니다. 특히 재무 분야의 경우 회계연도에 맞추어서 주 번호를 책정하기도 하니 충분한 검토와 협의가 필요합니다.

주 번호의 다양성에 대해서 인지하고 조직에서 통일된 통계 기준을 정하는 것이 중요하겠습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari