ilovechoonsik
[STARTERS 4기 TIL] 프로젝트 기반 태블로 실전 트레이닝 #7 - 태블로 함수 및 테이블 계산, 날짜 필터링, ATTR (230321) 본문
[STARTERS 4기 TIL] 프로젝트 기반 태블로 실전 트레이닝 #7 - 태블로 함수 및 테이블 계산, 날짜 필터링, ATTR (230321)
춘시기좋아 2023. 3. 22. 16:21
📖 오늘 내가 배운 것
1. 지금까지 배웠던 내용 간단 정리
2. 퀵 테이블 계산
3. 날짜 필터링 및 MTD QTD YTD
4. ATTR
5. 과제 날짜 매개변수 활용 대시보드
1. 배웠던 함수
차원 집계 - MIN, MAX, COUNT, COUNTD
측정값 집계 - SUM AVG VAR VARP
PRIMARY 함수 - TOTAL LOOK UP, RUNING, WINDOW, PREVIOUS_VALUE
PARTITION 나누는 함수 - INDEX, FIRST(WINDOW 함수 사용 가능), LAST
RANK 함수 - RANK(111 4), RANK_DENSE(111 2), RANK_UNIQUE(1234) - 실무에서 많이 쓰이는 건 RANK/RANK_DENSE! UNIQUE는 공정하지 않을 수 있기 때문
2. 퀵 테이블 계산
아니다~ 만약 데이터가 모두 VLOD에 나열되어 있다면? 그리고 그 시트가 그대로 대시보드에 보인다면! 퀵 테이블 사용 권한다
그렇지만 텍스트 테이블에서 하나의 텍스트로 보여지거나 다양한 동작, 차원 고정, 필터링이 필요한 경우는 사용하지 않는다.
또 제 3자가 봤을 때 헷갈릴 수 있다.
2.1 테이블 계산에서 계산 방향 의미
(1) 옆으로
테이블 계산에서 노란색 줄? 영향 주고 있는 계산 방향
위 줄을 행 별로 전부 적용!
(2) 옆에서 아래로
옆에서 아래로는 우측 끝까지 계산하고 다시 다음 행 첫 번째로 와서 계산
(3) 패널
패널 하나에 고정 (다른 FEATURE 간 연결이 불가능하다)
(4) 셀
자기 자신과 계산! 계산 유형=차이라 계산이 불가능하여 값이 없음
(5) 특정 차원
특정 차원으로 디테일 설정 가능
3. 계산된 필드 오류 예시 및 해결 방법
3.1 SUM(profit) / sales
sum(profit)은 1개, sales는 우리가 정의한 차원 값을 세분화되어 있기에 오류 발생
→ sum(profit)/sum(sales) , profit / sales로 수정
💞 AVG 조심
AVG(PROFIT / SALES)
AVG(PROFIT) / AVG(SALES)
잘 구분하기
기준이 월 이라면?
예시 1 : AVG([Profit]) / ([Sales]))
일 단위의 profit / sales의 월평균
→ raw 데이터 행에서 전부 나누고 그 평균을 구한다
예시 2 : AVG([Profit]) / AVG([Sales])
월 단위의 profit / sales
→ 각각 평균을 내고 나눈다
즉 우리가 구하고 싶은 AVG는 예시 2번이 맞다~
3.2 IF [REGION] = ‘WEST’ THEN SUM([Sales]) END
집계되지 않은 IF 그리고 THEN 다음에 집계가 되어있다!
→ SUM(IF [REGION] = ‘WEST’ THEN [Sales] END) 으로 수정!
IF 안에서 집계 안 하고 밖에 SUM 씌우기
4. 날짜 필터링
4.1 MTD, QTD, YTD 간단 이해하기
MoM : 전월 - 지금 월 비교하는 것
MTD : 지금이 2023/3/21이면? 3월 MTD의 경우 3월 1일 ~ 3월 21일까지 합계를 보여주거나 나열해서 보여주거나 등
→ 주로 합계를 보여준다, 현재 3월이 얼마 남지 않은 시점에서 이 정도로 하고 있다~ 는 거 확인하기 위해 사용!
📌 MTD에서 DAY를 불연속형으로 나열하여 확인한다?
주로 판매업! 어느 요일, 어느 시간대에 가장 많이 팔렸는지 계절적 요인이 중요하기 때문에 총판매량도 중요하지만 개별적으로 확인하는 것도 필요하다.
📌 합계로 보는 경우
말 그대로 합계로 빠르게 확인
📌 매개변수로 M-1, M-2 확인?
경영진은 숫자가 바로바로 나와야 하기 때문에 주요한 수치는 매개변수 필터로 놓는 것도 좋음
4.2 MTD, QTD, YTD 만들어보자!
(1) order date 조절하는 매개변수 생성
여기서 매개변수는 x를 위한 껍데기가 아니라
전체 order date를 조절하는 것이기 때문에 다음에서 값 추가
(2) order date에 의해 값 가져 올 알맹이 만들기
차이가 안 나야 하므로 0
또 비교를 하는데? day로 봐야 한다
MTD 이므로 month, day 다 고려해야 함
요기서 MTD 알맹이는 참 거짓인지 물어보는 것! 각각의 경우에 값을 주는 게 아니기 때문에 필터로 들어가서 해당하는 경우를 띄우려면? 필터로 들어가야 한다.
(3) 필터로 설정
요기서 MTD 알맹이는 참 거짓인지 물어보는 것! 각각의 경우에 값을 주는 게 아니기 떄문에 필터로 들어가서 해당하는 경우를 띄우려면? 필터로 들어가야 한다.
완성! QTD, YTD 도 알맹이 만들어 준다!
quarter, year만 바꿔주면 됨.
4.3 MTD, QTD, YTD 합계 보고 싶다면?
(1) 다 볼 수 있는 매개변수 문자열로 만들기
(2) 만든 매개변수를 각 해당하는 알맹이 들과 연결
(3) 만든 계산식을 텍스트로 던지기!
이게 KPI 대시보드 첫 단에 수치로 들어갈 수 있는 녀석
4.4 여기서 M-2, M-1로 자동화를 시키고 싶다면?
M이라고 하면 결산이 끝난 달을 의미한다!
M-2, M-1은 결산이 이미 끝난 달들! MTD와 다르다
(1) 일단 매개 변수 (껍데기) 만들어주자
(2) 이제 계산식(알맹이) 만들자
DATEDIFF로 달 수가 1, 2 차이 날 때 sales 반환
이게 자동화가 될까? 안된다. date_parameter가 들어갔기 때문
자동화시키고 싶다면?

today() 써주면 된다ㅎㅎ
기존의 date_parameter와의 연결은 끊어지고
M-1, M-2에 따라 전달, 전달만 바로 확인할 수 있게 된다.
TODAY() 식 쓰면 현재 날짜 기준 전달
5. ATTR?
IF [Order Date] = #2022-06-28# THEN COUNTD ([Customer Name]) END
→ 오류
왜? 집계되지 않은 주문일자와 집계된 고객명 결과 혼합으로 에러 발생
IF ATTR([Order Date]) = #2022-06-28# THEN COUNTD ([Customer Name]) END
이렇게 해줘야 오류가 안 남
📌 ATTR 특징
- ATTR은 함수
- 함수에는 로직 있음
- Y = ax+b
📌 ATTR의 정의
IF MIN(차원) = MAX(차원) THEN 차원 ELSE * END
IF 민차원이 맥스차원과 같다면 차원, 다르다면 *을 돌려줘라 (*은 함수의 결괏값 중 하나!)
현재 VLOD에서 이 필드가 단 하나의 값을 가지냐, 복수의 값을 가지냐, 단 하나의 값을 가지면 그것을 가지고 오고 아니면 *을 가져와라, 즉, 이질성 TEST
ATTR은 집게 함수, 결과가 VLOD에서 결정된다(VLOD에 따라 결과값이 달라진다)
📌 예시를 통해 확인해 보자.
나중에 REGION을 시트로 드래그 드롭 가져오면 3개로 집계! 각각 3,2,1 개의 값을 가진다.
나머지는 다중 값을 가지는데, NA만 1개의 단일 값이다.
일단 따라해보자!
우클릭 드래그 드롭으로 가면
NA만 단일 값 표현되고 다중 값들은 *로 나타난다.
즉, VLOD에서 차원으로 집계가 일어났기 때문에 위와 같은 결과!
그럼 반대로 COUNTRY를 특성으로 먼저 놓는다면?
전부 1단일 값을 갖기 때문에 다중값 *은 없다
좀 더 자세한 예시는 아래와 같다.
각 country 별 갖고 있는 Customer Name을 특성으로 본다면
위와 같이 사람이 한 명 존재하는 country는 단일값, 이름으로 표현
다중값은 *로!
ORDER DATE로 ATTR을 적용하면?
IF ATTR([Order Date]) = #2022-06-27# THEN COUNTD ([Customer Name]) END
6. 날짜 매개변수 이용해서 대시보드 만들기
- 시트 매개변수 대시보드에 연동되게 만들기 (날짜 매개변수, 문자열 매개변수)
- 과거 데이터이므로 today()는 작동이 안 된.. 현재를 x라고 지정 후 MoM, YoY, MTD, YTD 만들기
- 기부받은 숫자, 전체 기부받은 숫자 중 몇 % 인지 매개변수 이름: 기부 금액, %로 정해서 만들기
- 최대한 동작, 집합 피해서 만드세요.
6.1 MTD 계산 및 Amount 절댓값 및 차지하는 비율
(1) MTD - Date Calc
date_parameter에서 선택하는 날짜에 해당하는 달, 그 이후의 day에 해당하는 시계열만 가져올 수 있게 만든다.
(2) MTD - Amount
해당하는 기간의 Gift Amount 총합을 가져오는 계산식 작성
(3) MTD - FIXED (0. 의 Amount 총합)
선택 날짜 내 각 일자 별 Amount의 비율을 표현하기 위해 FIXED로 MTD에 해당하는 기간을 고정시키고 해당하는
Gift Amount의 값을 받아오는 계산식을 작성
(4) MTD - % (선택 날짜 내 비율 계산)
선택한 기간과 기간에 해당하는 비율을 백분율로 나타내기 위한 계산식을 작성
(5) MTD - Amount / % (매개변수 활용하여 절대적인 수치 및 차지하는 비율 선택)
Amount 절댓값 OR 선택한 기간 요일의 Amount가 차지하는 비율을 선택할 수 있는 계산식을 만든다.
(매개 변수 바탕)
(6) MTD 완성
6.2 Today Amount / %
(1) Gift Amount의 총합을 가져오는 계산식 (FIXED라 필터 영향 X)
(2) Amount vs %에 따라 절댓값-차지 비율
매개 변수에 따른 절댓값 - 차지하는 비율 반환
현재 선택된 day의 Gift Amount / 전체 Gift Amount 총합
(3) % 기호 표현
매개변수 2가 선택될 경우 %
이외 NULL
(4) 완성
6.3 대시보드
인사이트 없는, MoM, YoY, MTD, YTD 표현과 FIXED를 통한 비율 표현에 중점을 둔 대시보드
💪🏻 좋았던 점, 앞으로 개선해야 할 점 (추가로 배워야 할 점)
📌 매개변수와 시간 다루는 기법들을 한 번에 이해하지 못했고,
교육 종료 후 추가적인 학습을 통해 어느 정도 감을 잡을 수 있었다.
확실히 교육장에 남았을 때 더 집중이 잘 되는 거 같다! 앞으로도 이해가 안 되는 부분은 남아서 다 끝내고 가자~💪🏻
#유데미, #유데미코리아, #유데미부트캠프, #취업부트캠프, #부트캠프후기, #스타터스부트캠프, #데이터시각화 #데이터분석 #태블로
'STARTERS 4기 🚉 > TIL 👶🏻' 카테고리의 다른 글
[STARTERS 4기 TIL] 프로젝트 기반 태블로 실전 트레이닝 #9 - LOD (230323) (0) | 2023.03.26 |
---|---|
[STARTERS 4기 TIL] 프로젝트 기반 태블로 실전 트레이닝 #8 - ATTR, 결합된 필드(차원 정렬), 집합과 필터, VLOD 이론 (230322) (0) | 2023.03.22 |
[STARTERS 4기 TIL] 프로젝트 기반 태블로 실전 트레이닝 #6 - 계산된 필드, Primary 함수 (230320) (0) | 2023.03.20 |
[STARTERS 4기 TIL] 프로젝트 기반 태블로 실전 트레이닝 #5 (230317) (0) | 2023.03.20 |
[STARTERS 4기 TIL] 프로젝트 기반 태블로 실전 트레이닝 #4 (230316) (0) | 2023.03.16 |