1. 자주 나오는 질문
1.1 퀵테이블은 꼭 나쁜 것일까?
- 데이터가 모두 VLOD에 나열되어 있는 경우, 그 시트가 그대로 대시보드에 보여지는 경우는 퀵테이블 사용을 권함
- 텍스트 테이블에 하나의 텍스트로 보여지거나 다양한 동작, 차원 고정, 필터링이 필요한 경우는 사용하지 않음
- 제3자가 보았을 때는 계산된 식보다는 해석이 어렵다는 단점이 있음
1.2 테이블 계산에서 옆으로, 아래로는 무엇을 의미하는지?
- 계산 유형
- 다음을 사용하여 계산
- 테이블 : 전체 데이터
- 패널 : 패널 하나의 데이터
- 셀 : 보통 계산 유형이 구성비율로
- 특정 차원 : 내가 원하는 대로 지정할 수 있음
1.3 계산된 필드 오류 예시 및 해결 방법
✔ 집계되지 않은 인수 혼합
ex1) SUM(profit)/sales
→ SUM(profit) / SUM(sales) 또는 profit / sales 으로 수정
- 단, SUM은 위의 값들이 동일하지만 AVG는 두 값들이 다르기 때문에 유의하기!
ex2) IF [Region] = ‘West’ THEN SUM([Sales]) END
→ SUM(IF [Region] = ‘West’ THEN [Sales] END) 으로 수정
- SUM 안에는 집계함수가 없어야 한다.
1.4 AVG
❓ AVG([Profit]/[Sales]) vs AVG([Profit])/AVG([Sales])
✔ AVG([Profit]/[Sales])
우선 행 별로 profit / Sales를 나눈 후에 평균을 계산하기 때문에 마이너스(-)가 나오기도 한다.
그렇기 때문에 수치상으로 오류가 있을 수 밖에 없다.
✔ AVG([Profit])/AVG([Sales])
우선 열 별, 각 profit, sales를 평균을 계산한 후에 나눈다.
그렇기 때문에 평균을 구할 때는 이렇게 구하면 된다.
2. 날짜 필터링
2.1 MTD, QTD, YTD
- MTD : 22/03/21 기준, 3/1 ~ 3/21까지의 데이터를 보여줌 (주로 합계)
- QTD : 22/05/21 기준, 4/1 ~ 5/21까지의 데이터를 보여줌
- YTD : 22/05/21 기준, 1/1 ~ 5/21까지의 데이터를 보여줌
→ 현재 상황을 파악하고 이후의 데이터를 대략적인 예측하는 용도로 사용
- 실무진 : 조절을 활용해서 여러 날짜를 선택하여 확인
- 경영진 : 오늘을 기준으로 M-1을 바로 뜨게 하는 것이 중요함
① 매개변수 만들기 (date_parameter)
- 데이터 유형 : 날짜
- 값 범위 : order_date 설정
② 계산된 필드로 알맹이 만들기 (MTD, QTD, YTD)
MTD, QTD, YTD는 T/F 형태의 데이터이다.
// MTD
DATEDIFF('month', [Order Date],[date_parameter]) = 0
AND DATEDIFF('day', [Order Date], [date_parameter]) >= 0
// QTD
DATEDIFF('quarter', [Order Date],[date_parameter]) = 0
AND DATEDIFF('day', [Order Date], [date_parameter]) >= 0
// YTD
DATEDIFF('year', [Order Date],[date_parameter]) = 0
AND DATEDIFF('day', [Order Date], [date_parameter]) >= 0
▼ 필터에 YTD를 참으로 설정하면 YTD에 대한 데이터 나옴
2.2 날짜 매개변수 합계
원하는 날짜까지의 합계이기 때문에 주로 KPI Summary 상단에 들어가는 수치
① 위에서 만든 매개변수 date_parameter 사용
② 매개변수 추가로 만들기 (period_paremeter) → 각 MTD, QTD, YTD 볼 수 있도록
③ 계산된 필드로 알맹이 만들기
CASE [period_paremeter]
WHEN '1' THEN SUM(IF [MTD - 알맹이] THEN [Sales] END)
WHEN '2' THEN SUM(IF [QTD - 알맹이] THEN [Sales] END)
WHEN '3' THEN SUM(IF [YTD - 알맹이] THEN [Sales] END)
END
2.3 날짜 M-1, M-2
① 매개변수 만들기 (M-1, M-2)
② 계산된 필드 만들기
✔ date_parameter로 날짜 설정 시
CASE [M-1, M-2]
WHEN '1' THEN SUM(IF DATEDIFF('month', [Order Date],[date_parameter]) = 1 THEN [Sales] END)
WHEN '1' THEN SUM(IF DATEDIFF('month', [Order Date],[date_parameter]) = 2 THEN [Sales] END)
END
✔ 자동화 시
CASE [M-1, M-2]
WHEN '1' THEN SUM(IF DATEDIFF('month', [Order Date],TODAY()) = 1 THEN [Sales] END)
WHEN '2' THEN SUM(IF DATEDIFF('month', [Order Date],TODAY()) = 2 THEN [Sales] END)
END
✔ 자동화 시 (필드 추가 생성)
⭐ IF절을 감싸는 SUM/AVG는 반드시 기재해주기
# datediff
DATEDIFF('month', [Order Date], TODAY())
CASE [M-1, M-2]
WHEN '1' THEN SUM(IF [datediff] = 1 THEN [Sales] END)
WHEN '2' THEN SUM(IF [datediff] = 2 THEN [Sales] END)
END
3. ATTR
- ATTR은 함수이다 (집계 함수)
- 함수에는 로직이 있다.
- 함수 : Y = ax + b
- * : 함수의 결과값
- 어떤 경우에 ATTR이 *을 반환하는가? 결과 중 하나
- VLOD에 따라서 ATTR 함수의 결과값이 달라짐
- 태블로에서 집계는 VLOD에서 이루어짐
- 현재 VLOD에서 이 필드가 단 하나의 값을 가지느냐, 복수의 값을 가지느냐, 단 하나의 값을 가지면 그것을 가지고 오고 아니면 *을 가지고 오라
- 특성 = ATTR
- 두 번 집계하므로 퍼포먼스에 영향을 미침
- 차원을 측정값으로 바꿀 때도 사용, 집계할 때도 사용
✅ ATTR 정의
if min(차원) = max(차원) then 차원 else * end
ifisnull(min([field]) = max([field]) then min([field]) else * end
✅ 예시
// 잘못된 예시
IF [Order Date] = #2022-06-28# THEN COUNTD ([Customer Name]) END
// 수정한 예시 (ATTR 사용)
IF ATTR([Order Date]) = #2022-06-28# THEN COUNTD ([Customer Name]) END
4. 개인 과제
📢 숙제: 날짜 매개변수 만들기
- 시트 매개변수 대시보드에 연동되게 만들기 (날짜 매개변수, 문자열 매개변수)
- 과거 데이터이므로 today() 는 작동이 안된.. 현재를 x라고 지정 후 MoM,YoY, MTD, YTD 만들기
- 기부받은 숫자, 전체 기부받은 숫자 중 몇 % 인지 매개변수 이름: 기부 금액, %로 정해서 만들기
- 최대한 동작, 집합 피해서 만드세요
4.1 필요한 매개변수, 필드 만들기
① 날짜 매개변수 만들기 (Date_parameter)
② Percentage 필드 만들기 (LOD 사용)
[Gift Amount] / { FIXED : SUM([Gift Amount])}
③ Amount, Percentage 매개변수 만들기
④ Amount, Percentage 매개변수 알맹이 만들기 (Amount, Percentage - Calc)
CASE [Amount, Percentage]
WHEN '1' THEN [Gift Amount]
WHEN '2' THEN [percentage]
END
⑤ MTD, YTD, M-1, M-2 필드 만들기
// MTD
DATEDIFF('month', [Gift Date], [Date_parameter]) = 0
AND
DATEDIFF('day', [Gift Date], [Date_parameter]) >= 1
// YTD
DATEDIFF('year', [Gift Date], [Date_parameter]) = 0
AND
DATEDIFF('day', [Gift Date], [Date_parameter]) >= 1
// M-1
DATEDIFF('month', [Gift Date], [Date_parameter]) = 1
AND
DATEDIFF('day', [Gift Date], [Date_parameter]) >= 1
// M-2
DATEDIFF('month', [Gift Date], [Date_parameter]) = 2
AND
DATEDIFF('day', [Gift Date], [Date_parameter]) >= 1
⑥ MTD, YTD, M-1, M-2 매개변수 만들기
⑦ MTD, YTD, M-1, M-2 매개변수 알맹이 만들기 (Date_range - Calc)
CASE [Date_range]
WHEN '1' THEN SUM(IF [M-1] THEN [Amount, Percentage - Calc] END)
WHEN '2' THEN SUM(IF [M-2] THEN [Amount, Percentage - Calc] END)
WHEN '3' THEN SUM(IF [MTD] THEN [Amount, Percentage - Calc] END)
WHEN '4' THEN SUM(IF [YTD] THEN [Amount, Percentage - Calc] END)
END
4.2 대시보드 시각화
1) 매개변수 3개 (날짜, 기간, 금액or비율 선택)
원하는 날짜와 기간, 금액 or 비율을 선택한다.
2) 기부 금액 및 비율 (수치)
날짜에 맞춰 각 기간 별로 금액 또는 비율을 수치로 표현하였다.
해당 수치는 보통 KPI 대시보드 상단에 들어가기에 상단에 추가하였다.
3) 날짜 별 기부 금액 및 비율 (리스트)
해당하는 기간의 각 일자 별 기부 금액 데이터를 리스트로 나타내었다.
숫자와 더불어 색상을 추가하여 금액이 많은 일자에는 진한 색으로 표현하였다.
4) 날짜 별 기부 금액 및 비율 (그래프)
리스트로 표현한 데이터를 시각적으로, 전반적인 추이를 볼 수 있도록 그래프로 나타내었다.
그리고 월 별 평균 참조선을 추가하여 평균 기준 금액이 높은지, 낮은지도 확인할 수 있다.
5) State 별 기부 금액 및 비율
State 별로 기부 금액 및 비율을 나타내었으며, 이 그래프 또한 색상을 추가하여 금액이 많은 State에는 진한 색으로 표현하였다.
6) State 별 단과 대학 기부 금액 및 비율
각 단과 대학 별로 기부 금액 및 비율을 리스트로 나타내었다.
숫자와 더불어 색상을 추가하여 금액이 높은 순으로 진한 색으로 표현하였다.
💡 회고
✔ 유익한 점 & 배운점
YTD, MTD에 대해 배웠으며 이를 활용하여 매개변수를 만들어보았다.
또한 매개변수를 활용하여 여러 그래프의 데이터를 조건에 맞춰서 출력하는 대시보드를 만들어보았다.
오늘 개인과제를 통해서도 매개변수, 태블로 세부 기능들을 익힐 수 있어서 많은 도움이 되었다.
✔ 스스로 아쉬운 점 & 개선할 점
첫 번째는 금액과 비율을 하나의 계산된 필드로 만들었기에 단위를 설정할 수가 없었다.
→ 금액은 $ 추가, 비율은 % 추가
그러나 다른 분이 만든 대시보드를 확인해보니, 이것을 구현했던데 따라하다가 오류가 발생하여 하지 못했다. 어떤 식으로 해야 하는지 확인해보고 다시 내 대시보드에 적용해볼 예정이다.
두 번째는 '날짜 별 기부 금액 및 비율' 막대 그래프에서 그래프를 하나 더 추가하고 싶었다.
예를 들어 그래프가 월 단위라면 전 월의 데이터를 함께 보여주고, 연 단위라면 전 년의 데이터를 함께 보여주고 싶었다.
그러나 그렇게 하려면 매뉴얼하게 필드, 매개변수를 일일이 만들어야 하는 것 같은데 다른 방법이 있는지 조금 더 연구해보고 강사님께 물어볼 예정이다!
'웅진X유데미 STARTERS > TIL (Today I Learned)' 카테고리의 다른 글
[스타터스 TIL] 33일차.태블로 실전 트레이닝 (9) - LOD (INCLUDE, EXCLUDE, FIXED) (0) | 2023.03.26 |
---|---|
[스타터스 TIL] 32일차.태블로 실전 트레이닝 (8) - ATTR, 결합된 필드, 집합, LOD (0) | 2023.03.22 |
[스타터스 TIL] 30일차.태블로 실전 트레이닝 (6) - PRIMARY 함수, RANK 함수 (0) | 2023.03.20 |
[스타터스 TIL] 29일차.태블로 실전 트레이닝 (5) - MapBox, 태블로 추가 기능 (0) | 2023.03.17 |
[스타터스 TIL] 28일차.태블로 실전 트레이닝 (4) - 데이터 결합, 도구설명, DATE함수 (0) | 2023.03.17 |