* [실습으로 배우는 태블로 by 주정민 튜터] 6주차 실습 내용 정리
1. 문제 배경
[문제]
경영진 요청 업무: 2023년 KPI 지표 트렌드가 궁금해요. 매출 대시보드 작업을 요청 드립니다!
[배경]
▶ 비즈니스 시나리오
- 이커머스 Superstore는 다양한 상품을 판매하는 온라인 상점
- 전 세계에서 온라인으로 제품 구매(주문 및 배송) 가능
- 여러 카테고리와 지역에서 다양한 제품을 제공중
▶ 비즈니스 목표
- Superstore 전년(2022년) 매출 대비 2023년 매출은 n% 증가 목표
▶ 대시보드 목적
- 매출의 트렌드와 매출에 영향을 미치는 주요 요인 파악 목적
▶ 대시보드 뷰어
- 경영진 및 전사 구성원
[요구사항]
▶ 지표 설정
- 주요 지표를 최소 4가지 선정
ex) 'Net Profit(순이익)':매출 - 비용
▶ 대시보드 구성
- 레이아웃 규격: 일반 데스크톱 모니터(1920 x 1080)
- 컬러: 태블로 기본 컬러와 컬러 팔레트 조합을 자유롭게 활용
▶ 필터
- 연도별 날짜 필터
▶ 필수 사항
- 전년도 2022년과 2023년의 월별 수익 비교
- 지역별(Region) 매출 비중
- 서브 카테고리(SubCategory) 매출 Top 10 상품
2. 대시보드 스케치
3. 완성 대시보드
4. 대시보드 생성 프로세스
1) 주요 지표
- 2023년 SALES / PROFIT / ROI / USERS / ARPU과 전년대비 증감률
① 연도별 매개변수 만들기
- 각 연도별 수치 비교를 위해 기준 년도에 대한 매개변수 생성
- 기준이 되는 2023년을 '현재값'으로 설정하고, 허용 가능 값은 [목록]으로 선택 후 수기로 값 입력
② 기준연도, 전년도 구분을 위한 계산식 추가
- Y_올해
└ 주문일자가 매개변수 [p_year], 즉 기준연도와 같은 주문일자를 출력
└ 매개변수 [p_year]를 문자열로 생성하였으므로 int를 씌어서 데이터 유형 변경
└ [Order Date] 데이터에서도 년도만 빼내기 위해 DEDATEPARSE 함수 활용
└ DATEPARSE(date_format, date_string): 특정 형식의 문자열을 날짜로 반환
DATEPART('year', [Order Date]) = int([p_year])
- Y_전년도
└ DATEDIFF 함수를 활용해, 주문일자와 [Y_올해] 값과 차이가 1인 경우만 출력
└ DATEDIFF(date_part, date1, date2, [start_of_week]) : 두 날짜 사이의 수를 반환
DATEDIFF('year',[Order Date], DATEPARSE('yyyy', [p_year])) = 1
* 자세한 날짜 함수 설명은 링크 참조
③ 매출/이익 합계 계산식 - 기준년도/전년도/증감률
- IF절을 활용해, 각 기준년도/전년도 매출과 이익과 증감률을 도출
- 매출 합계
# 올해 매출
if [Y_올해] then [Sales] end
# 전년도 매출
if [Y_전년도] then [Sales] end
# 전년대비 매출증감
sum([올해 매출]) / sum([전년도 매출]) - 1
- 수익
# 올해 수익
if [Y_올해] then [Profit] end
# 전년도 수익
if [Y_전년도] then [Profit] end
# 전년대비 수익증감
sum([올해 수익]) / sum([전년도 수익]) - 1
④ 유저수(고유 개수) 계산식 - 기준년도/전년도/증감률
- IF절 다음 집계함수 적용 시 오류 발생 > 집계함수를 IF~ END 절을 감싸고 적용하면 해결!
└ COUNTD(expression): 그룹의 고유 항목 수 반환하며, Null 값은 미포
# 올해 유저수
COUNTD(IF [Y_올해] THEN [Customer Name] END)
# 전년도 유저수
COUNTD(IF [Y_전년도] THEN [Customer Name] END)
# 전년대비 유저수
[올해 유저수]/ [전년도 유저수] - 1
⑤ ROI, ARPU 계산식 - 기준년도/전년도/증감률
- IF절 구문을 감싸서 집계함 수를 적용 한 후에, 나누기 계산 적용
- ROI = SUM([Profit]) / Sum([Spend])로 계산. Spend는 [Sales] - [Profit]으로 생성
- ROI는 % 개념이라 전년대비는 빼기로 %p 표기
# 올해 ROI
SUM(IF [Y_올해] THEN [Profit] END) / SUM(IF [Y_올해] THEN [Spend] END)
# 전년도 ROI
SUM(IF [Y_전년도] THEN [Profit] END) / SUM(IF [Y_전년도] THEN [Spend] END)
# 전년대비 ROI
[올해 ROI]-[전년도 ROI]
- ARPU = SUM([Sales]) / COUNTD([Order ID]) 로 각 유저당 매출액 계산
# 올해 ARPU
SUM(IF [Y_올해] THEN [Sales] END) / COUNTD(IF [Y_올해] THEN [Customer Name] END)
# 전년도 ARPU
SUM(IF [Y_전년도] THEN [Sales] END) / COUNTD(IF [Y_전년도] THEN [Customer Name] END)
# 전년대비 ARPU
[올해 ARPU] / [전년도 ARPU] - 1
[+] 증감률
- 마크 > 텍스트 > 숫자 서식 > 사용자 지정에서 ▲0.00%; ▼0.00% 로 표기하면 세모꼴로 증감 표기 가능
- 수치의 음양에 따라 색상을 구분하고 싶다면 2단계 색상으로, 고급에서 가운데 0 설정
2) 월별 매출/수익/유저수/ARPU 추이
- 열에 [Order Date] / 행에 상기 계산식으로 구해놓은 [올해 매출] [올해 수익] [올해 유저수] [올해 ARPU] 적용
- 각 추시를 연도별로 비교하고 싶다면, 열에는 [Order Date] 년도 값, 행에는 올해/전년도 값 추가하면 됨
3) 서브카테고리별 매출 비중과 매출 TOP 10 제품
- 서브카테고리별로 어떤 제품군이 잘 팔리는지 보여주고자 누적 막대그래프 활용
└ 원그래프는 데이터레이블 위치가 애매하고, 가독성이 떨어져서 막대로 적용함
- BEST 셀러 제품 몇 개가 전체 매출을 견인하는 경우가 있어서 매출 상위 10 제품 리스트도 추가해봄
└ 매출 TOP 10은 퀵테이블 계산 > 순위로 적용한 합계치를 세부 정보에 넣고, 필터에서 순위 10명만 노출되도록 조정
4) 지역별 매출 비중
5) 대비보드에서 합치기
5. 회고
- 유저수를 Order ID로 계산했으나, 실습 해설 영상에서는 User Name으로 하여 수정해야 했음
└ 지표 계산 전에 어떤 칼럼이 타당한지 충분히 검토 필요
- 상단 주요 지표와 그래프 모두 부동으로 설정 후 수기로 조정해서 시간이 오래 걸림
└ 가로/세로 컨테이너를 먼저 넣고, 각 컨테이너에 필요한 그래프를 넣어 간격이 자동 조정되도록 하는 것이 좋을 듯
- 각 그래프 제목 폰트나 사이즈, 색상 등은 서식 > 통합문서 에서 한 번에 정리 가능
* 전년도 매출 비교는 [태블로 고급] 당월&전월 매출 비교 대시보드 만들기|플랜잇 참조
'TIL' 카테고리의 다른 글
[240226] SQL: 코드카타 132~140(right/left) & 파이썬: 코드카타 36(isdecimal/isdigit/isnumeric) (0) | 2024.02.26 |
---|---|
[240223] SQL: 코드카타 131 & 파이썬: 코드카타 35 (0) | 2024.02.23 |
[240222-23] 태블로(Tableau) - 대시보드 설계와 구성, 생성 (0) | 2024.02.23 |
[240222] SQL: 코드카타 127~130 & 파이썬: 코드카타 34 (0) | 2024.02.22 |
[240221] SQL: 코드카타 125~126(regexp) & 파이썬: 코드카타 33 (0) | 2024.02.21 |