본문 바로가기

TIL

[240223] 태블로(Tableau) - 매출 대시보드 만들기

* [실습으로 배우는 태블로 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으로 하여 수정해야 했음

 └ 지표 계산 전에 어떤 칼럼이 타당한지 충분히 검토 필요 
- 상단 주요 지표와 그래프 모두 부동으로 설정 후 수기로 조정해서 시간이 오래 걸림

 └ 가로/세로 컨테이너를 먼저 넣고, 각 컨테이너에 필요한 그래프를 넣어 간격이 자동 조정되도록 하는 것이 좋을 듯 

- 각 그래프 제목 폰트나 사이즈, 색상 등은 서식 > 통합문서 에서 한 번에 정리 가능  

 

 

* 전년도 매출 비교는 [태블로 고급] 당월&전월 매출 비교 대시보드 만들기|플랜잇 참조