Tableau - for business analytics 2 : 데이터 취업 스쿨 스터디 노트 1/11

slocat·2024년 1월 11일
0

start-data

목록 보기
63/75

Tableau - for business analytics 1

5. DATE 함수

5-1. DATEPART

지정한 날짜의 부분을 정수로 변환시켜주는 함수이다. 주문일자를 연속형으로 열에 올려놓고 더블클릭하면 DATEPART 함수가 적용되어 있는 것을 알 수 있다.

DATEPART('year', [주문 일자])

DATEPART('quarter', [주문 일자])

DATEPART 함수가 결과값을 정수로 반환하기 때문에 계산된 필드는 측정값으로 표시된다. 필드를 선택해서 차원으로 올리고 계층을 만들어준다.

# 요일 만들기
IF DATEPART('weekday', [주문 일자]) = 1 THEN 'SUN'
ELSEIF DATEPART('weekday', [주문 일자]) = 2 THEN 'MON'
ELSEIF DATEPART('weekday', [주문 일자]) = 3 THEN 'TUE'
ELSEIF DATEPART('weekday', [주문 일자]) = 4 THEN 'WED'
ELSEIF DATEPART('weekday', [주문 일자]) = 5 THEN 'TRU'
ELSEIF DATEPART('weekday', [주문 일자]) = 6 THEN 'FRI'
ELSE 'SAT'
END

5-2. DATETRUNC

지정한 날짜 부분을 기준으로 잘라낸 후 새로운 날짜를 반환하는 함수

✔ 주문일자를 연속형(년)으로 열에 올려주고 + 버튼을 누르면 불연속형과 다르게 그 자리에서 분기로 대체된다.

# 주문일자의 날짜 형식을 일간 단위로 하나씩 잘라서 연결
DATETRUNC('day', [주문 일자])

행에는 DATEPART 함수가 적용된 주문일자(일), 열에는 DATETRUNC 함수가 적용된 주문일자(일)이 있다. DATEPART 함수는 주문일자에서 단순히 일자를 잘라낸 것이라서 년, 분기, 월은 무시하고 일자만 반환한다. 반면 DATETRUNC 함수는 일자를 기준으로 새로운 날짜를 반환하기 때문에 년, 분기, 월도 모두 나타난다.(특정 부분의 값만 반환 vs 날짜 형태 유지)

5-3. DATEDIFF

날짜 간 차이를 구해주는 함수

DATEDIFF('day', [주문 일자], [배송 일자])

주문번호가 고유값으로 존재하는 게 아니라서 계산이 맞지 않는 것이다. 화면에 [제품명]을 추가하면 정상적으로 계산된다.(경고창 뜨면 모든 멤버 추가)

5-4. 날짜 함수 응용 : MTD, QTD, YTD

연/분기/월의 시작일로부터 특정 일까지의 합계 매출액으로, 현재 기준에서 목표나 작년 대비 성장률을 보기 위해 사용한다.

# f-MTD
DATEDIFF('month', [주문 일자], [Date]) = 0 # 두 날짜의 월 차이가 0일 때 같은 월
AND
DATEDIFF('day', [주문 일자], [Date]) >= 0 # 선택한 일자까지만 나오도록 조건 추가
# f-QTD
DATEDIFF('quarter', [주문 일자], [Date]) = 0
AND
DATEDIFF('day', [주문 일자], [Date]) >= 0
# f-YTD
DATEDIFF('year', [주문 일자], [Date]) = 0
AND
DATEDIFF('day', [주문 일자], [Date]) >= 0

6. LOD(Level of Detail) 표현식

  • 세부 수준에서 데이터 깊이를 정하고 데이터를 집계하여 계산하는 방식
  • INCLUDE, EXCLUDE 보다는 FIXED를 더 많이 사용한다.

6-1. INCLUDE

화면에 포함되지 않은 특정 차원을 포함하여 결과 계산

{ INCLUDE [제품 중분류] : SUM([매출]) }

INCLUDE 제품 중분류, 매출 필드의 집계 방식을 최댓값으로 변경하면 차이를 알 수 있다.

최댓값 매출은 2428개 레코드 중에서 가장 큰 값을 가져온 것이고, 최댓값 INCLUDE 제품 중분류는 화면(제품 대분류)에서 보이지 않는 더 깊은 차원(제품 중분류)에서 집계한 값을 화면에 가지고 와서 재집계한다.

6-2. EXCLUDE

화면에 포함된 특성 차원을 제외하여 결과 계산

{ EXCLUDE [제품 중분류] : SUM([매출]) }

EXCLUDE 제품 중분류에 중복되어 들어간 값은 제품 대분류 안에 있는 중분류의 합계이다.
특정 차원을 제외한 집계값을 뒷단에서 가지고 있고, 이를 화면에 표현하는 과정에서 값이 하나이기 때문에 복제해서 여러 번 보여준다. EXCLUDE 제품 중분류의 집계 방식을 변경해도 값은 변하지 않는다.

6-3. FIXED

화면에 상관없이 특정 차원을 고정하여 결과 계산

# 제품 대분류/중분류 차원 수준에서 매출의 합계
{ FIXED [제품 대분류] : SUM([매출]) }
{ FIXED [제품 중분류] : SUM([매출]) }

FIXED 적용

연도별 신규 유입된 고객이 구매를 일으키고 그 고객이 다음 해에도 구매를 하는지, 구매를 했다면 전체 비중의 몇 %를 차지하는지 확인하기

# 첫 구매일
{ FIXED [고객명] : MIN([주문 일자]) }

# 첫 구매일 제외
IIF([주문 일자] > [first 구매일], [주문 일자], NULL)

# 두 번째 구매일
{ FIXED [고객명] : MIN([first 구매일 제외]) }

# 경과일
DATEDIFF('day', [first 구매일], [second 구매일])

✨7. 태블로 작동 순서(Order of Operation)

[C] = 계산 영역, [F] = 필터 영역

[F] Extract Filters
[C] Row Level Calculations

[F] Context Filters
[C] FIXED
[F] Set, Top N, Conditional Filters
[F] Dimansion Filters(bins, actions, groups)
[C] INCLUDE, EXCLUDE
[C] Aggregate Calculations
[F] Aggregate Calculation Filters

[C] Densification
[C] Data Blending
[F] Blended Aggregate Filters
[C] Table Calculations
[F] Table Calculation Filters
[F] Lat/Long Filters
[F] Manually Hidden Marks
[C] Trend Lines
[C] Annotations
[C] Titels
[C] Reference Lines
[C] Pages
[C] Tooltips

7-1. 6개월 기준의 이동평균을 계산하고 최근 1년의 이동평균만 라인차트로 표현하기

6개월 기준의 이동평균을 계산하고 필터에 최근 1년만 설정해주면, 6개월 이동평균이 제대로 반영되는 기간은 6월 이후이다. 최근 1년 주문일자를 필터에 추가하는 순간 2019년 이전 데이터가 날아간다.
원하는 결과를 얻기 위해서는 테이블 계산보다 후순위에 있는 필터를 사용해야 한다.(테이블 계산 필터)

LAST()

LAST 필드를 필터에 넣는다. 가장 뒤에서부터 0, 1, 2, ... 카운트한다. 최근 1년을 보려면 0~11로 설정한다.

7-2. FIXED : 시도별 매출을 표현한 지도를 통해 제품 대분류별 수익률을 필터링하는 대시보드 만들기

지역을 선택할 때 막대 차트의 참조선 라인도 같이 필터링된다.
수익률 참조선 라인은 집계 계산이고, 대시보드 동작은 차원 필터라고 보면 된다. 단순 집계 계산인 수익률을 FIXED 값으로 만들어주면 차원 필터에 영향을 받지 않는다.

# 제품 대분류별 수익률
{ FIXED [제품 대분류] : [수익률] }

계산된 필드를 참조선에 사용하려면 필드가 화면 뷰 안에 들어가 있어야 한다. 제품 대분류별 수익률 필드를 세부 정보에 추가시킨 후 참조선을 만든다.

7-3. CONTEXT 필터 : 매개변수를 활용하여 호남 지역의 매출 상위 10명의 고객 리스트 만들기

고객별 매출 상위 10명만 화면에 표시

행 더블클릭하여 RANK 표시(불연속형으로 전환)

RANK(SUM([매출]))

행에 지역 필드를 넣고 필터 넣기

필터에 있는 지역에서 마우스 우클릭 - [필터 표시]
호남을 선택하면 상위 10위가 아니라 1명만 나온다.
TOP N이 지역 차원 필터보다 우선순위가 더 높다. TOP N 보다 우선순위가 높은 CONTEXT 필터를 사용하여 해결할 수 있다.

필터에 있는 지역에서 마우스 우클릭 - [컨텍스트에 추가]
지역을 컨텍스트에 추가하여 우선 지역을 필터링하고, 그 이후에 TOP N이 필터링되는 것이다.

8. 실무에서

  • 회사 내에 태블로를 사용하는 사람의 비중이 얼마나 되는지 파악하기 ➡ 트레이닝을 통해 사용자 비율 늘리기
  • 비용 및 인력 문제가 있을 때 ➡ public 우선 사용
  • 태블로는 만능 툴이 아니다. 각 영역에 적합한 도구를 선택하자.

0개의 댓글