웅진X유데미 STARTERS/TIL (Today I Learned)

[스타터스 TIL] 30일차.태블로 실전 트레이닝 (6) - PRIMARY 함수, RANK 함수

라밍쏭 2023. 3. 20. 17:30
728x90


1. 보고서 피드백

- 시작하기 전에 전체적인 데이터셋을 간단하게 이야기해야 함
    → 어떤 기간의 데이터, 총 매출, 총 이익 얼마~
     데이터셋이 많으면 몇 개인지 말하기 (많이 없다면 이야기하지 않아도 됨)
- 내가 정한 목표에 대해 이야기하고 이에 반하는 것을 하지 않은 이유도 생각해놓기
- 현재 회사가 어떻게 하고 있는지 (현 매출, 순이익, KPI 등)은 기억하고 있어야 함
- 현황
    경쟁사, 자사, 시장 현황이 들어가야 함
     경쟁사 데이터가 없다면?
         경쟁사 데이터가 구축되어 있지 않기 때문에 자사에서 해결할 수 있는 문제를 우선적으로 처리하고자 하였습니다.
- 목표 → why? 현황 (Top-Down 방식/결론부터 이야기하기)
- 결과를 보고할 때 ‘배경 및 목표’가 가장 중요함 → 이 부분에서 듣는 사람이 판가름이 간다.

 


2. Primary 함수

데이터가 적고 클린하고 나열할 수 있는 데이터에서는 사용하기 괜찮으나 원하는 결과값을 행으로 보고 싶거나, 데이터를 잘라서 보고 싶을 때는 사용하기 어려움

 

💡 필터로 State 몇 개를 없애면 없는 데이터에서 Primary 함수가 적용이 된다.

 

2.1 Total()

- 측정 값의 총 합계
- 퍼센티지 설정할 때 사용

TOTAL(SUM([Sales]))

 

2.2 Window()

- WINDOW_AVG : 원하는 기간 별 평균

# 0,0 → SUM(SALES)와 동일함
WINDOW_AVG(SUM([Sales]),0,0)

# -1,1 → 지난 달, 이번 달, 다음 달의 값 평균
WINDOW_AVG(SUM([Sales]),-1,1)

 

- WINDOW_SUM : 원하는 기간 별 합산

WINDOW_SUM(SUM([Sales]),-1,1)

 

💡 계산할 데이터 갯수(분기)가 3개가 없을 경우, 값이 나오지 않도록하기

→ IF THEN 함수 사용

① WINDOW_COUNT 로 데이터의 갯수 세기

② 갯수가 3개라면 WINDOW_AVG 함수 사용해서 구하기

# window_avg
IF WINDOW_COUNT(SUM([Sales]),-1,1) = 3
THEN WINDOW_AVG(SUM([Sales]),-1,1)
ELSE NULL   # 안 써도 됨
END

 

window count가 2인 데이터는 window_avg 값이 나오지 않는 것을 확인할 수 있다.

 

window 함수는 주로 막대 그래프로 시각화하며, 이를 통해 window 함수가 적용된 것을 확인할 수 있다.

→ (2020년 1분기, 2023년 4분기 데이터 없음)

 

2.3 Lookup()

- MoM 쓸 때 많이 쓰이는 함수 (Sales와 Lookup 함수가 있어야 함)
- 차원을 선택할 수 있음 (지역, 월, 분기 등등)

# 위에 있는 행 / 지난 달 데이터 가져오기
LOOKUP(SUM([Sales]), -1)

 

# sum - lookup
SUM([Sales])-[look up]

 

2.4 Running_sum()

- 누계
- running_sum()은 계산된 필드로 써야 활용도가 높음 (퀵 테이블 계산보다는 계산된 필드로 만들기)
- 여기에서 추가로 계산을 할 수 있음

RUNNING_SUM(SUM([Sales]))

 

2.5 previous_value()

- previous_value(0) : 값 = 0

- previous_value(1) : 값 = 1

# 모든 데이터가 다 0
PREVIOUS_VALUE(0)

# previous_value() - 누계
SUM([Sales]) + PREVIOUS_VALUE(0)

 

2.6 Rank()

- SQL에서 rank 뽑지 말기 (태블로에서 엉킬 수 있음)

- rank는 차원으로 변경하기! (’불연속형’으로 선택)

 

[+] rank() 서식 변경 방법

→ Rank() 우클릭 > 서식 > 숫자 > 사용자 지정 > 변경 ('#위')

RANK(SUM([Sales]))

 

❓ SQL의 Partition by 기능과 동일하게 적용하려면?

→ Rank() 우클릭 > 테이블 계산 > 특정차원 - State/Province

 


3. 개인 과제

📢 오늘 배운 함수를 활용하여 그래프 3개 그리기

- 제목에 기능 적기

- 매개변수 사용하기

- 2022년 12월 기준 M-1, M-2에 대한 증감율 수치로 표현하기

 

3.1 청사진 그리기

우선 어떠한 그래프를 보여줄지에 대한 밑그림을 먼저 그려보려고 했다.

오늘 배운 여러 함수 중 그래프로 표현할 수 있는 유의미한 함수가 무엇이 있을지를 가장 먼저 고려했다.

 

3.2 대시보드 시각화

 

1) 22년 10월, 11월 전월 대비 증감률 (매개변수 사용)

① 매개변수 만들기 (m-1, m-2)

② 계산된 필드 만들기 (M-1, M-2 - Calc)

CASE [m-1, m-2]
WHEN '1' 
THEN SUM(IF DATEDIFF('month', [Order Date], #2022-12-01#) = 1 THEN [Sales] END) / SUM(IF DATEDIFF('month', [Order Date], #2022-12-01#) = 2 THEN [Sales] END) -1

WHEN '2' 
THEN SUM(IF DATEDIFF('month', [Order Date], #2022-12-01#) = 2 THEN [Sales] END) / SUM(IF DATEDIFF('month', [Order Date], #2022-12-01#) = 3 THEN [Sales] END) -1
END

③ 화살표를 활용해서 증감률 나타내기

 

2) 월 매출액 - 연 평균 매출액 (WINDOW_AVG)

① WINDOW_AVG 함수 사용 계산된 필드 만들기

→ 처음과 끝을 기준으로 매출액의 평균을 구하기

WINDOW_AVG(SUM([Sales]), FIRST(), LAST())

 

② 필드 우클릭 > 테이블 계산 편집 > 패널(아래로)

→ 연도 별 매출액 평균을 구하기 위해서 위와 같이 설정

 

③ ②에서 구한 연 평균을 매출액에서 빼줌

SUM([Sales]) - [window_avg]

 

④ 연도 별로 확인할 수 있도록 연도 필터 설정

→ 전체로 보면 막대의 수가 많아서 필터로 원하는 연도만 볼 수 있도록 필터 추가함

 

 

3) 연도 별 누적 매출액 (RUNNING_SUM)

① RUNNING_SUM 함수 사용 계산된 필드 만들기

RUNNING_SUM(SUM([Sales]))

 

② 필드 우클릭 > 테이블 계산 편집 > 패널(아래로)

→ 연도 별 누적 매출액을 구하기 위해서 위와 같이 설정

 

③ 시각화 시 분기 별 매출액 그래프도 추가

→ 누적 뿐만 아니라 각 분기 별 매출액 데이터도 중요하기 때문

 

4) 직전 분기 대비 증감률 (QoQ) (Lookup)

① Lookup함수 사용 계산된 필드 만들기

LOOKUP(SUM([Sales]), -1)

 

② 위의 필드를 활용하여 증감률 구하기

SUM([Sales]) / LOOKUP(SUM([Sales]), -1) -1

 


💡 회고

✔ 유익한 점 & 배운점

오늘은 팀 과제가 아닌 개인 과제로, 오늘 배웠던 함수들을 활용하여 그래프로 구현하는 것이다.

팀 과제도 많은 도움이 되지만 함수와 기능을 직접 구현함으로써 스스로 태블로 역량을 높일 수 있는 점이 만족스러웠다.

 

✔ 스스로 아쉬운 점

나는 과제에서 구현하라는 대로 구현하였다.

하지만 여기서 한걸음 더 나아가서 그래프를 구현하는 것도 능력이라 생각이 되는데, 나는 아직까지 그 정도의 생각이 들지 않아서 이 부분이 다소 아쉬웠다.

 

✔ 개선할 점

하나만 보지 말고 더 나아가서 더 멀리 보자!가 내가 원하는 것이지만, 지금 당장은 힘든 것을 안다!

그러니 차근히 한 단계씩 올라간다는 생각으로 해보자 :)

728x90