[2023.12.22] Tableau for Business Analytics(3)

하은·2023년 12월 22일
0

Date 함수

시계열 분석 때 필수, 외국계 회사에서는 회계연도를 다르게 써서 알아두면 유용

- DATEPART

= 지정한 날짜의 부분을 정수로 반환시켜주는 함수
= 의도치 않았지만 '주문일자' 활용해 차트 만들때마다 활용 중

  • 예) 년(주문일자) 더블클릭 후 계산식 복사
    -> '계산된필드만들기' - 계산식 붙여넣기
    -> 필드 복제 - 열선반의 분기(주문일자) 계산식 복사 - 편집 - 계산식 붙여넣기
    = 두 필드는 모두 측정값에 포함됨. 데이터파트 함수는 결과값을 정수로 반환.
    -> 두 필드를 선택해서 '차원'으로 올려줌 - 우클릭 - '계층- 만들기'
    -> 화면에 있는 '주문일자' 빼고, 방금만든 계층 넣기 - 드릴다운 - 연도별 분기가 나옴
  • 계산된 필드에 함수써서 요일을 표현
    -> 새 시트 - '주문일자' 드래그해서 행선반 - 불연속형
    -> 계산된 피드만들기 - '요일' -
    IF DATEPART('weekday', 주문일자드래그) = 1 THEN 'SUN'
    ELSEIF DATEPART('weekday', 주문일자드래그) = 2 THEN 'MON'
    ELSEIF DATEPART('weekday', 주문일자드래그) = 3 THEN 'TUS'
    ELSEIF DATEPART('weekday', 주문일자드래그) = 4 THEN 'WED'
    ELSEIF DATEPART('weekday', 주문일자드래그) = 5 THEN 'THUR'
    ELSEIF DATEPART('weekday', 주문일자드래그) = 6 THEN 'FRI'
    ELSE 'SAT'
    END
    -> '요일' 드래그 - '마크-텍스트' - 요일표현 가능

- DATETRUNC

지정한 날짜 부분 기준으로 잘라내고, 새날짜를 반환하는 함수
-> 새 시트 - '주문일자' 드래그해서 열선반(연속형 년(주문일자)) - '매출' 더블클릭
-> 열 앞의 +버튼 누르면 불연속형과 다르게, 연속형은 그 자리에서 그대로 대체된다. '일'레벨까지 드릴다운 - 더블클릭

  • DATEPART, DATETRUNC 차이
    -> 좌측화면에서 '주문일자' 드래그 - 행선반 '매출' 앞 올리기 - 우클릭 - '날짜부분을 일'로 변경

- DATEDIFF

날짜란의 차이를 구해주는함수

  • 예) 각 제품별 배송까지 걸리는 기간 만들기
    -> 새 시트 -'주문번호' 더블클릭 - '주문일자'를 주문번호 뒤에 넣고(주문일자-불연속형) - '배송일자'도 동일하게
    -> '계산식필드' - 배송까지 걸린 기간 - DATEDIFF('day', 주문일자드래그(시작), 배송일자드래그(끝))
    -> 필드 드래그 - '마크-텍스트'
  • 주문번호 하나에 여러 제품이 포함돼있어 제품별 배송기간이 다를 수 있음. 제품명 추가해야 정확한 기간이 나옴
    -> '제품명' 드래그 - 행의 '주문번호' 뒤에 붙여줌 - 경고창뜨면 모든맴버선택

- 날짜함수

MTD(Month to day), QTD(querter ~ ), YTD(year ~)
= 연 분기 월의 시작일로부터 특정일까지 합계매출을 볼 때 사용
= 합계로 보는 이유? 현재 기준에서 목표대비, 작년대비 성장률을 보기 위함

- MTD

  • 예)
    -> '매개변수만들기' - 'date', 날짜유형: 날짜, 2019년 12월 18일
    -> 우클릭 - '매개변수표시'
    -> '주문일자' - 행선반으로 드래그 - '주문일자-불연속형'
    -> '매출' 더블클릭
  • 매개변수를 동쪽으로 만들어주기 위한 계산식
    -> '계산된필드' - F_MTD -
    DATEDIFF('month', 주문일자드래그, 메개변수드래그') = 0
    AND
    DATEDIFF('day', 주문일자드래그, 매개변수드래그') =0
    -> 필드 드래그 - 필터 - 참만 가져오기
    -> 첫번째 조건인 같은 달에서, 두번째 조건인 매개변수의 날짜기준과 이전날짜까지만 가져오게 됨
  • 방금만든 시트의 이름을 MTD로 변경 - 복제 - QTD
    -> F_MTD 복제 - QTD로 이름 수정 - 'month대신 'querter 입력'
    -> 드래그해서 F_MTD위로 올리기
  • 시트 QTD - 복제 - YTD
    -> F_QTD 복제 - YTD로 이름 수정 - 'querter 대신 year 입력'
    -> 드래그해서 F_QTD위로 올리기
    -> 각 시트 열에 있는 불연속형 주문일자 뺴기
  • 대시보드 만들기(1000*500)
    -> 차례로 넣고 폰트색상을 바꿔줌 - 값이 표시된 영역 우클릭 - 서식 -빨간색 볼드
    -> 테두리 서식 - 테투리 굵게 넣고 - 전체보기
    -> 상단에 텍스트 박스 삽입 - '매출 현황판' - 글자 20, 볼드체
    -> 오른쪽 매개변수를 바꿔주면 값이 달라짐

LOD(Level Of Detail) 세부수준식

= 필수로 이해하고 사용해야함
= 세부수준에서 데이터 깊이를 결정하고, 집계해 계산하는 방식

{INCLUDE[차원1], [차원2] : SUM([측정값])}

반드시 중괄호 안에 식을 써야하고, 차원과 측정값 사이 :

표현식

- INCLUDE

= 화면에 포함되지 않은 특정 차원을 포함해 결과를 계산

  • 예)
    -> '제품대분류, 매출' 더블클릭 - '계산된필드만들기' - INCLUDE_제품중분류 - {INCLUDE 제품중분류드래그 : SUM (매출드래그) }
    -> 더블클릭 -> 제품대분류와 값이 동일하게 나옴 = 중분류에서 집계한 값을 대분류에서 다시 합계로 재집계했기 때문
  • 이해하기 쉽게, 매출과 INCLUDE 제품중분류 필드 집계방식을 합계가 아닌 최대값으로 변경
    -> 중간 측정값 '최대(매출)'에서 우클릭 - 합계 - 최대값
    -> 합계(INCLUDE)도 동일하게 변경
    -> 좌측 'NUMBER OF RECORDS'를 측정값 상단으로 끌어오기
  • 두 값의 차이가 큼. 매출 값이 어떻게 나왔는지 이해할 필요가 있음
    -> 시트 복제 - 제품 대분류의 가구만 유지 - INCLUDE 제품 중분류는 빼기
    -> '고객명' 더블클릭 - 내림차순 정렬 - '원하얀'고객만 유지
    -> '주문번호' 더블클릭 - '제품코드 '더블클릭
    = 최하위레벨에서 각 RECODE를 확인가능
    -> 시트 1로 돌아오기
    = 가구의 최대값 매출은 2428개의 주문건수 중 가장 높은 값을 가져온 거라고 볼 수 있음
  • 제품 대분류에서 최대값 INCLUDE가 어떻게 계산된건지 확인
    -> 시트 복제 - '매출, RECODE'뺴기
    -> '제품 중분류'를 대분류 옆에 놓고 - 내림차순정렬
    = 의자 매출이 5억 2천
    = INCLUDE는 눈에 보이지 않지만, 화면에서 보이는 차원에서 더 깊은 차원에서 집계해, 값을 갖고 있고, 지금과같이 화면에서 재집계하면 값을 가져와 계산해줌

- EXCLUDE

= 화면에 포함된 특정 차원을 제외해 결과를 계산

  • 예)
    -> '제품대분류, 중분류' 더블클릭, '마크'에 '매출' 넣기
    -> '계산된필드만들기' - EXCLUDE_제품중분류 - {EXCLUDE 제품중분류드래그 : SUM([매출])}
    -> 드래그해서 뷰화면에 넣기 -> INCLUDE와 다르게 값이 중복돼 들어감. = 대분류 안에 있는 중분류의 합계
    -> 매출 드래그해서 합계를 보면 EXCLUDE와 값이 같음을 알 수 있음
    = EXCLUDE도 값을 백단에서 갖고 있고, 화면에서 표현하는 과정에서 대분류별 합계값 하나만 갖고 있어서 복제해줌. 값을 평균으로 바꿔도 값은 변하지 않음
    = 현재화면에 보이는 차원값을 무시하고 집계를 내기 떄문에, 특정 차원을 빼고 재집계할 때 사용할 수 있는 함수
  • INCLUDE, EXCLUDE는 특정 차원레벨에서 집계를 해줘서 다양한 계산을 할 수 있지만, 크게 활용되지 않음.

- FIXED

= 화면에 상관없이 특정 차원을 고정해 결과를 계산
반드시 중괄호 안에 식을 써야하고, 차원과 측정값

  • 예)
    -> 새 시트 - '계산된필드만들기' - Fixed제품대분류 - { FIXED 제품대분류드래그 : SUM([매출])}
    = 제품대분류 차원 수준에서 매출의 합계를 만들어준다
    -> 필드 복제 - 편집 - Fixed
    제품중분류 - { FIXED 제품중분류드래그 : SUM([매출])}
    -> '제품대분류, 중분류' CTRL로 선택 - 우클릭 - '계층-계층만들기-'제품 분류'
    -> '제품분류' 계층 드래그 해서 뷰에 넣고, '매출' 더블클릭
    -> FIXED 두개도 더블클릭
    = 제품 대분류는 값이 다 같게 나옴
    -> '제품대분류' 드릴다운
    = 중분류 레벨에서 고정해 합계를 계산했기 때문에 중분류는 제대로 나옴.
    = 대분류는 차원을 고정해서 만드니까 중분류합계에 대한 결과값이 복제돼 표현됨
    = INCLUDE, EXCLUDE와 같은 개념.

  • 지난 시간에 사용하던 'EXCLUDE중분류' 드래그 - 측정값 중 '제품 대분류와 중분류' 사이에 두기
    -> 지난 시간에 사용하던 'INCLUDE
    중분류' 드래그 - 측정값 중 'FIXED 중분류' 뒤에 두기
    -> 값 비교가 잘 되도록, 좌측의 '측정값 이름'을 '마크-색상'에 넣고 - 오른쪽 '색상정렬' 더블클릭 - 'FIXED대분류 & EXCLUDE중분류'는 빨 / 'FIXED중분류 & INCLUDE중분류'는 파 / 매출은 회색
    -> '마크-측정값' 우클릭 - '측정값 - 합계'
    -> 중분류에서 고정된 FIXED 대분류값과, 중분류를 제외한 EXCLUDE값은 동일한 결과값
    -> 열에서 '제품 중분류'를 빼면, 합계로 재집계돼서, 표시되는 값은 모두 같아짐
    -> '마크-측정값'- 우클릭 - '측정값-최대값'
    = 재집계방식을 합계가 아닌 최대값으로 바꿔주면 FIXED중분류, INCLUDE중분류는 그 안에서 최대값을 가짐
    = FIXED대분류, EXCLUDE중분류는 제품 대분류기준의 합계; 하나의 결과값만 존재해서 이전과 동일한 값

  • 실습) FIXED를 사용해 유입시점별 고객매출기여도 알아보기
    -> 새시트 - '매출, 주문일자' 더블클릭 - 차트는 막대로 변경

  • 각 연도별 신규 ㅇ유입된 고객이 구매를 일으키고, 다음에도 구매를 하는지, 전체의 몇퍼센트를 차지하는지
    -> 처음 구매한 시점을 보기위해 '계산된필드' 생성 - First_구매일 - {FIXED 고객명드래그: MIN([주문일자])}
    -> 필드 드래그 -'마크-색상'
    -> 행선반 '합계(매출)- 퀵테이블(구성비율) - 다음을 사용해계산(테이블아래로) - 툴바의 마크레이블

  • 고객별 첫 구매일, 두번째 구매까지 걸린 경과
    -> '고객명' 더블클릭, '주문일자' 드래그해서 '고객명'옆(불연속 주문일자)
    -> 'FIRST_구매일' 을 '주문일자' 옆에 드래그해서 '불연속형'
    ---> 두번째 구매일 계산
    '주문일자'의 첫번째 구매일은 제외 - '계산된~' -

FIRST_구매일제외 - IIF([주문일자] > [FIRST_구매일), [주문일자], NULL)
크면 주문일자를 가져오고 , 아니면 NULL로 처리

-> FIRST구매일제외'도 'F_구매일'뒤에 넣어줌

0개의 댓글