[신병훈련소 22기] Day 6-1 고급계산식 2
안녕하세요. 태블로 신병훈련소 22기 day 6의 첫 번째 기록입니다.☺
이번에는 태블로의 고급계산식에 대해 공부한 과정을 기록하려고 합니다.
<INDEX>
1. 배송일자
2. 세부 수준 계산식
3. 유입 시점별 고객 매출 기여도 ⭐
4. 주문 번호 당 평균 매출 금액 LOD : 하나의 숫자로 표현하기 ⭐
5. 테이블 계산 ⭐
6. 기록 수익 ⭐
1. 배송일자
1. 행 선반에 주문 번호, 주문 일자, 배송 일자를 놓습니다.
이때, 주문 일자와 배송 일자는 오른쪽 버튼을 누르면서 행 선반에 놓으면 필드 놓기라는 창이 뜨고, YMD 로 설정하면 년/월/일자로 표현됩니다.
2. 계산된 필드로 배송기간 (분단위)를 생성합니다.
DATEDIFF('minute', [주문 일자], [배송 일자]) : 배송 일자 - 주문 일자 의 차이를 분단위로 반환해주는 날짜 함수입니다.
생성된 배송기간 (분) 측정값을 행 선반에 불연속형으로 변경하여 놓습니다.
3. 계산된 필드로 배송 기간 (시간)을 생성합니다.
위에서 생성한 분 단위 배송기간 측정값을 사용하여 날짜 계산식 INT( [배송기간 (분)] / 60 ) 을 생성하고 배송 기간을 시간 단위인 정수로 반환합니다.
생성된 배송기간 (시간) 측정값을 행 선반에 불연속형으로 변경하여 놓습니다.
4. 계산된 필드로 배송 기간 (남은 분)을 생성합니다.
위에서 생성한 시간, 분 단위 배송기간 측정값을 사용하여 [배송기간 (분)] - ([배송기간 (시간)] * 60 ) 을 생성하고 분 - (시간 * 60)을 하여 정수로 반환했을 때 버려진 분 단위를 반환합니다.
4. 계산된 필드로 배송 기간 (시간 & 분)을 생성합니다.
위에서 생성한 배송기간 STR( [배송기간 (시간)]) + '시간' + ([배송기간 (분)]) + '분' 을 생성하고 시간 + 분을 차원으로 표시합니다.
+ 배송 시간 (지도 표현)
지도에 매출은 크기로, 평균(배송 기간(시간))은 색상으로 놓고 시각화합니다.
원의 크기가 클수록 매출은 상승하고, 색상이 진할 수록 배송기간이 길다는 것을 의미합니다.
2. 세부 수준 계산식
{[INCLUDE|EXCLUDE|FIXED][차원] ... : 집계식([측정값])}
화면상의 세부 수준 (LoD)와 관계 없이 계산이 필요한 경우에 사용
- 고객 당, 주문 당 등 '~ 당' 계산이 필요한 경우
- 집계를 다시 집계해야 하는 상황
- 집계 결과를 기준으로 구간을 나눠야 하는 경우
- 뷰에서 보고 있는 수준 보다 아래 또는 위 수준에서 계산 결과를 만들어야 하는 경우
{ FIXED [제품 대분류] : SUM([매출]) } : 지정된 제품 대분류 차원만 사용하여 집계 매출 계산
{ EXCLUDE [제품 중분류] : SUM([매출]) } : 지정된 제품 중분류 차원만 제외하고 사용하여 집계 매출 계산
두 측정값을 열 선반에 놓고 비교했을 때 값이 동일한 것을 확인할 수 있습니다.
{ INCLUDE [지역] : SUM([매출]) } : 지정된 지역 차원과 뷰 차원을 사용하여 집계 매출 계산
생성한 include 계산식을 열 선반에 놓고, 행 선반에 지역, 제품 코드 측정값도 추가합니다.
3. 유입 시점별 고객 매출 기여도
고객당 첫 구매 시점을 계산된 필드로 생성합니다. { FIXED [고객명] : MIN([주문 일자]) } : 고객명을 기준으로 고객의 최소 주문 일자를 계산하는 집계 계산식을 생성합니다.
연도 별 고객이 첫 구매한 시점을 위에서 생성한 집계 함수로 시각화했습니다.
→ 2014년도 첫 구매 고객이 매출에 큰 기여를 하고 있는 것을 확인할 수 있습니다.
연도 별 첫 구매고객이 매출에 기여한 정도를 구성 비율로 확인하고 싶을 때는 ① 합계(매출) → 퀵 테이블 계산 → 구성 비율 | ② 합계(매출) → 다음을 사용하여 계산 → 테이블(아래로)
마지막으로 Ctrl를 누르면서 행 선반에 있는 합계(매출)을 레이블로 옮겨 구성 비율의 수치도 함께 시각화 할 수 있습니다.
제가 생각했을 때 방금 진행한 첫 구매 시점의 매출 기여도를 확인하는 방법을 시각화 하는 것이 현업에서 쓰일 수 있는 시각화 방법이라고 생각됩니다. 매개변수를 활용해서 연도마다 얼마만큼의 비율을 차지하는지도 동적으로 보이는 방법도 있을 것 같고, 유용한 계산식이라고 생각됩니다. 😄
4. 주문번호 당 평균 매출 금액 LOD : 하나의 숫자로 표현하기
평균 라인을 넣었을 때 전체 금액의 평균라인을 확인할 수 있고, 하나의 숫자로는 표현할 수 없습니다.
원하는 주문번호 당 평균 매출 금액을 확인하기 위해 { INCLUDE [주문 번호] : SUM([매출]) } 로 지정된 주문 번호 차원을 활용하여 매출 집계하는 계산식을 생성합니다.
이처럼 평균(매출)과 주문번호 당 평균(매출)값은 다른 것으로 확인할 수 있습니다.
매출과 관련된 LOD를 대시보드 시각화로 표현한 것들을 많이 봤었는데, 참고하면 좋을 듯 싶습니다. 😁
5. 테이블 계산
기존 집계 계산의 결과 집합 위에 추가 계산을 실행
지역 별 제품 중분류 별 내림차순 집계가 제대로 정렬되지 않았습니다.
합계(매출)을 불연속형으로 설정한 뒤, 지역과 제품 중분류 차원의 중간인 행 선반에 놓고, 퀵 테이블 계산에서 순위로 설정하게 되면 전체 매출의 순위를 계산하게 됩니다. 그러다보니 지역별 매출의 순위로 집계된 것이 아닌데요.
*불연속형 : Y축을 기준으로 정렬된다.
우선 지역별 순위를 정렬하기 위해서는 합계(매출) → 다음을 사용하여 계산 → 패널(아래로) 로 설정합니다.
행 선반에 있는 합계(매출)을 Ctrl을 누른채로 필터로 옮겨 체크박스에서 1, 2, 3만 체크 후 설정합니다.
지역 차원을 색상에 옮겨 지열별 매출 기준 Top3 제품을 확인할 수 있도록 시각화했습니다.
이것 또한 매출 대시보드에서 유용할 것으로 생각됩니다.
6. 기록 수익
분기 별 수익이 최대 수익일 때 확인하려면 어떻게 해야할까요?
우선 계산된 필드 중 테이블 계산식인 RUNNING_MAX(SUM([수익]))을 사용하여 파티션에 있는 첫 번째 행에서 현재행까지 주어진 합계(수익)의 누계 최대값을 반환할 수 있도록 생성했습니다.
기록 수익이라는 SUM([수익])= [현재 가장 높은 수익] 이 참인지 거짓인지 반환하는 계산식을 생성했습니다.
기록수익을 색상에 놓았더니 누계 함수 중 가장 최댓값에만 참인 색으로 표현되었습니다.
아래 그래프의 마크를 원으로 표시하였고, 두번째 그래프를 이중축으로 놨더니 분기 별 어느 구간에서 최대 수익인지 확인할 수 있습니다.
또한 주문일자를 열 선반에 놓아 연도 별로 그래프를 나눌 수 있습니다.
이때 기록 수익의 계산을 패널(옆으로)로 설정하면 연도 별 기록 수익을 확인할 수 있습니다.
오늘 공부한 테이블 계산식은 매출 대시보드에서 유용하게 활용될 수 있을 것 같습니다.
어떤 목적으로 표현하고 싶은지 명확한 정의만 내린다면 태블로로 쉽게 시각화할 수 있습니다.
감사합니다.