[Tableau] 테이블 계산

김소정·2022년 4월 3일
1

Tableau

목록 보기
1/4
post-thumbnail

본 포스팅은 인프런의 태블로 레벨UP 강의를 바탕으로 작성되었습니다.

Configurable Secondary Calculation

테이블 계산은 Configurable Secondary Calculation이다.

Calculation

사칙연산이 포함되는, 태블로에서 제공하는 계산 방법 중 하나

  • 일반적인 관점: + / - / * / ÷
  • 태블로의 관점: 로 레벨 / 집계 / LOD / 테이블 계산

Secondary

첫 번째 계산이 존재하고, 그 이후에 연이어서 (종속되어) 나타나는 계산

화면에서 보이는 막대 그래프, 라인 차트 등 모든 것들이 First-Level에서 이루어지는 집계 계산이다. 한마디로 태블로가 우리에게 보여주는 마법과 같다.

  1. 데이터 원본 소스와 무관하다
  • First: 어떤 행위를 했을 때, 태블로가 데이터 소스가 알아들을 수 있는 query language로 바꿔줌
    즉, 데이터 원본 소스를 향해서 질의를 날리고 결과물을 가지고 오는 것
  • Secondary: 첫 번째 계산의 결과물들에 대해서 재계산이 이루어지는 방식
  1. 작동 우선 순위가 비교적 늦다
    태블로의 계산, 필터, 명령 등은 태블로의 order of operations에 따라 작동됨
    테이블 계산은 매우 편리한 반면에, 집계 계산이나 명령 등 선행되는 것들에 영향을 받기 쉬움 (뭉개지기 쉬움)

Configurable

계산의 범위를 설정할 수 있다.

  • 테이블: 전체
  • 패널: 일부
  • 셀: 특정한 결과물

Quick Table Calc

빈번하게 사용되는 것들 중심으로 사용자가 쓰기 편리하도록 구성해놓은 패키지


테이블 계산 범위 설정

  1. 테이블 옆으로 : 각 지역과 각 연도별로 쿼터에 대해서 누적 합계
    테이블 계산 - 특정 차원 - Order Date 분기

    • 각 A와 B 별로: A와 B의 체크박스 비움
    • C와 D에 대해서: C와 D의 체크박스 선택
  2. 테이블 아래로 : 각 연도와 각 분기별로 지역에 대해서 누적 합계
    테이블 계산 - 특정 차원 - Region

  3. 각 연도별로 지역과 분기에 대해서 누적 합계 : Region, Order Date분기 선택

    • Region이 분기보다 위에 위치해 있으면 Region에 대한 누적합이 먼저 이루어짐
    • 특정차원에서는 순서가 중요함

      위 그림과 같이 설정시, Region에 따라 연도와 분기에 대해 누적합을 구해줌

INDEX, SIZE, RANK, TOTAL

INDEX()

위치에 따라 줄을 세움
'위치의 범위를 어디까지 정할 것인가'가 중요함

SIZE()

그 줄의 제일 끝 번호

RANK([Aggregated Calc])

Aggregated Calc에 따라 줄을 세운다
특정 기준에 의한 순위

  • RANK : 1, 2, 2, 4
  • RANK_DENSE : 1, 2, 2, 3
  • RANK_MODIFIED : 1, 3, 3, 4
  • RANK_UNIQUE : 1, 2, 3, 4 (INDEX와 같은 방식)

오름차순으로 정렬하고 싶을 때는 RANK(-COUNTD([Order ID]))와 같이 앞에 -를 붙여줌

TOTAL([Aggregated Calc])

지정된 범위 전체에서의 Aggregated Calc

INDEX vs RANK

  • INDEX는 차원의 sorting이 자유로운 반면 RANK는 그렇지 못함
  • RANK는 View에 없는 측정값에 대해서도 순위를 매길 수 있는 반면, INDEX는 그렇지 못함

1위인 Sean Miller는 주문 횟수는 비교적 낮은 편에 속하지만, 구매 금액 자체는 크다는 사실을 알 수 있다.

INDEX는 사용하기 간단하고 편리하기 때문에 자주 사용하지만, 조금 더 정교하고 다양한 방식으로 순위를 배길 때는 RANK가 편리하다.


WINDOW 함수

WINDOW_AVG WINDOW_COUNT WINDOW_MAX WINDOW_MIN WINDOW_SUM

Customizable Calculation Range
: 사용자 중심의 커스터마이징이 가능한 계산의 범위

Example

  1. 자신과 뒤에 있는 세개를 포함한 총 네개의 평균
    WINDOW_AVG(SUM([Sales]), 0, 3)
    # 0은 자기 자신의 위치
    # 다른 숫자는 자신을 기준으로 상대적인 위치
  2. 자신 앞에 있는 하나, 뒤에 있는 하나를 포함해 총 3개의 평균을 구해줌
    WINDOW_AVG(SUM([Sales]), -1, 1)
  3. 조건을 만족할 때만 결과 값 반환
    IF WINDOW_COUNT(SUM([Sales]), -1, 1) = 3 THEN
    WINDOW_AVG(SUM([Sales]), -1, 1)
    END

위 그림과 같이 년도와 분기로 나눠줬을 때는 패널별로 WINDOW 함수를 적용해주기 위해, 테이블 계산을 패널(옆으로)로 변경해줘야 한다.

Normaliztion (Feature Scaling)


XXminXmaxXmin\frac{X-X_{min}}{X_{max}-X_{min}}

WINDOW 함수는 데이터의 분포가 상이하게 나타나는 차원값에 대해서 정규화(Normalization)시킬 때 굉장히 유용하다

Example

⛔️ 고객별 매출 분포를 확인하기 위해서는 테이블 계산 - 특정 차원 - Customer Name을 설정해줘야 한다.

  • 정규화 전
    각 지역에서의 최대 매출 고객이 모두 다른 위치에서 나타나는 것을 볼 수 있다.

  • 정규화 후
    매출 규모를 상대화시킴으로써, 각 지역에서의 최대 매출 고객을 동일 선상에서 확인할 수 있다.

    # Sales - Normalized
    (SUM([Sales]) - WINDOW_MIN(SUM([Sales])))
    / (WINDOW_MAX(SUM([Sales])) - WINDOW_MIN(SUM([Sales])))
profile
Yonsei University, Applied Statistics

0개의 댓글