본문 바로가기
IT,SW,Data,Cloud,코딩/Tableau (태블로)

Tableau 공부 6 고급 계산식 - LOD, 테이블 계산식, 하이퍼링크, 코호트 분석

by 착실하게 2023. 9. 7.
반응형

드래그 앤 드롭을 할 때 마우스 왼쪽 버튼을 눌려서 옮기는게 아니라 오른쪽 버튼을 사용해서 옮기면 

드롭 이후에 이런 팝업창이 뜬다. 

 

YMD 선택하면 아래와 같이 나온다.

 

 

 

계산된 필드 만들기. 

DATEDIFF 함수 사용. 맨 앞에는 기준을 넣어주고, 뒤에는 계산할 2개 필드 넣어준다. 

만들어진 필드는 연속형 말고 불연속형으로 바꿔주니까 아래 처럼 행 별로 계산해서 표시가 된다. 

 

 

세부 수준 계산식 LOD

 

 

FIXED 함수

 

{ FIXED [제품 대분류] : SUM( [매출] )}

고정하고 싶은 차원 수준 =  [제품 대분류] 

집계하고자 하는 측정값 = SUM( [매출]  

제품 대분류 수준으로 전체 매출액을 집계하고 싶다는 의미의 계산식임. 

 

EXCLUDE

집계할때 제외하고 집계하겠다는 식이다. 

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

위의 FIXED 식과 결과가 동일하게 나온다. 

 

 

INCLUDE

현재 뷰 수준에는 없는데 이 필드를 고려해서 집계하고 싶다고 할때 사용하는 함수임

 

유입 시점별 고객 매출 기여도: 2014년도 처음 구매한 고객이 2017년도 매출에 얼마나 기여하고 있을까?

 

 

화면에 표시되는 필드는 아니지만 고객 필드로 고정해서 계산 식을 계산하고 싶다는 함수임. 

고객 별 최초 주문일자 구하기.

 

주문 번호 당 평균 매출 금액 - LOD: 하나의 숫자로 표현하기. 주문 번호는 화면에 표현 안하기

그리고 이 계산된 필드를 평균내면 된다.

 

TABLEAU LOD EXPRESSION 을 참고해서 개발하시라.

 

 

 

원본 데이터에서 집계한 이후에 추가로 테이블 에서 계산 하는 것.

 

아래 그림처럼 이럴 때가 있음 

 

 

이렇게 지역에도 정렬 넣고 중분류도 정렬 넣었는데 

원하는대로 정렬이 안됨.

 

그런데 맨 앞의 '지역'을 빼고 '제품 중분류'만 있는 상태 에서나,

'지역' 만 있고 '제품 중분류'는 안 넣은 상태에서는 원하는대로 정렬이 됨.

 

해결 방법은 테이블 계산식 사용.

 

 

'마크'의 '세부 정보'에 넣어줌. 뷰에 표시는 안되고 뭔가 계산은 가능해짐.

우클릭해서 '퀵 테이블 계산' 에서 '순위' 클릭.

그러면 이 알약에 오른쪽 끝에 삼각형이 생긴다. 

 

이걸 불연속형으로 변경하고 행에 추가한다. 

그리고 우클릭 > 테이블 계산 편집 > 테이블(아래로)가 아니라 패널(아래로) 선택해준다. 

 

 

그리고 1위부터 N위 까지 다 보이는게 아니라 3위까지 보이게 하려면 

복사해서 필터에 넣어주고, 1,2,3을 선택하고 나머지는 선택 해제.

 

그리고 순위가 화면에서 안 보이게 하려면 

행에 있는 파란 알약 우클릭해서 '머리글 표시'를 선택 해제 하면 된다.

 

 

 

RUNNING_MAX 함수

그냥 MAX는 분기별 최대

RUNNING_MAX는 누적 최대값.

 

 

기록 수익인가? 분기별 수익이 최대 수익일 때를 확인하기.

참/거짓 파악 계산식. 그냥 이렇게 하면됨. IF 꼭 안써도됨.

 

이중 축

 

이중축 적용 후: 

아래와 같이 바뀐다. 

 

 

 

테이블 계산은 범위 지정 에 따라 값이 달라질 수 있다. 

 

실습 

https://help.tableau.com/current/pro/desktop/ko-kr/functions_functions_tablecalculation.htm

 

테이블 계산 함수

이 문서에서는 Tableau의 테이블 계산 함수와 관련 사용법을 소개합니다

help.tableau.com

https://help.tableau.com/current/pro/desktop/ko-kr/calculations_calculatedfields_lod.htm

 

세부 수준 식

세부 수준 식(LOD 식이라고도 함)을 사용하여 데이터 원본 수준 및 비주얼리제이션 수준에서 값을 계산할 수 있습니다

help.tableau.com

https://www.tableau.com/ko-kr/blog/LOD-expressions

 

상위 15가지 LOD 표현식

Tableau의 사명은 사람들이 데이터를 보고 이해하는 일을 돕는 데 있습니다. Tableau 기능은 사용자가 데이터를 의미 있는 정보로 변환할 수 있도록 신중하게 설계되었습니다. Tableau에서 중점적으로

www.tableau.com

https://www.tableau.com/ko-kr/blog/top-10-tableau-table-calculations

 

Tableau의 상위 10가지 테이블 계산

여기에는 10가지 유용한 Tableau 테이블 계산 예제가 소개되어 있습니다. 대부분의 예제는 간단한 수식 작성이 필요합니다. 각 예제의 탭 뷰에는 실제 예와 방법이 포함되어 있습니다. 통합 문서를

www.tableau.com

 

축 범위 바꾸려면 우클릭 ㅡ> ' 0 포함' 체크 되어 있을때, 없을때에 따라 

'자동' 선택되는 범위가 달라짐. 0 포함 체크 선택 되어 있었을 때는 0부터 시작 했었음.

 

 

 

차트에서 특정 데이터 클릭해서 연결되도록 하이퍼링크 만들수 있음

 

 

SUM([매출]) / TOTAL(SUM([매출]))

 

 

 

 

세부 수준 계산식: 현재 뷰의 시각화 세부 수준과 실제 내가 필요한 집계의 기준이 상이할 때 사용

 

 

 

2번째 구매일 (“고객별 최초 재구매일”)

{ FIXED [고객번호] :
MIN(
IIF( [고객별 최초 구매일] < [주문 일자], [주문 일자], NULL )
)
}

 

 

'마크'의 '색상'으로 옮기는 것도

마우스 우클릭 상태로 가능하고, 아래와 같은 팝업창이 뜬다. 

 

코호트 분석

 

더보기

https://quip.com/yNb9AgsFTn5k

 

6일차 과제

6일차 과제를 시작하시기 전에 안내드린 동영상을 반드시 보시길 바랍니다 ! 

quip.com

[추가 도전] 코호트 분석

최초 구매가 일어난 후, 두번째 구매가 발생하기까지의 기간이 어느 정도 되는지를 시각화 해봅니다.
즉, 2015년 2분기에 처음 구매를 한 고객은 2분기가 지난 후 가장 많이 재구매를 했음을 나타냅니다.

사용 Data : 주문+반품 추출


[시각화를 위한 HINT]

1. 최초 구매일은 이미 4번 과제에서 “고객별 최초 구매일” 만들어 놓았습니다.

2. 최초 구매일을 활용해서 2번째 구매일 (“고객별 최초 재구매일”)을 구해볼까요?

우리는 아래와 같은 시각화를 그리게 될텐데요.
4번 과제와 마찬가지로 우리가 구해야하는 “고객 별 최초 재구매일” 에 사용되어야 하는 집계 기준과
“시각화 세부수준 (뷰의 세부수준)”이 다르기 때문에 FIXED 세부 수준식을 사용해야 합니다.

아래 식을 이용해서 “고객별 최초 재구매일” 계산식을 만들어 주세요.

{ FIXED [고객번호] :
MIN(
IIF( [고객별 최초 구매일] < [주문 일자], [주문 일자], NULL )
)
}

식이 의미하는 바를 가장 안쪽 식부터 차근차근 살펴볼까요?

(1) IIF 함수는 제일 첫 번째 조건이 만족하면, 2번째 값을, 아니라면 3번째 값을 적용한다는 의미입니다.
즉, “고객별 최초 구매일"이 "주문일자" 보다 작으면 주문일자를 가져오고, 아니라면 NULL 값이라는 얘기인데요.

아래 표와 같은 결과가 나오겠죠.

고객ID 고객명 주문일자 고객별 최초 구매일 IIF 함수를 이용했을 때까지의 주문일자
1 신효임 1/3/2015 1/3/2015 NULL
1 신효임 3/13/2015 1/3/2015 3/13/2015
1 신효임 1/13/2016 1/3/2015 1/13/2016
1 신효임 2/13/2017 1/3/2015 2/13/2017
1 신효임 3/13/2018 1/3/2015 3/13/2018
2 김민지 1/3/2015 1/3/2015 NULL
2 김민지 2/3/2016 1/3/2015 2/3/2016
3 최수현 1/4/2016 1/4/2016 NULL
3 최수현 1/3/2018 1/4/2016 1/3/2018
4 이수림 7/5/2017 7/5/2017 NULL
4 이수림 3/1/2018 7/5/2017 1/3/2018

(2) IIF를 통해 구해진 주문일자 중 가장 최소값을 갖고 오게 되니, 고객별 두번째 구매날짜를 구할 수 있겠죠??
(위의 표에서 파란색 값을 가져오게 될꺼에요.)

3. “고객별 최초 구매일”“고객별 최초 재구매일”을 가지고 DATEDIFF 함수를 이용해서 ‘quarter기준으로
재구매가 일어나기 까지의 시간 차이를 구해보세요. 계산식 이름은 “고객별 재구매 경과기간”으로 합니다.

DATEDIFF('quarter', [고객별 최초 구매일], [고객별 최초 재구매일 ])

4. “고객별 재구매 경과기간”의 결과 값은 숫자이기 때문에, 새로운 계산식이 측정값에 위치하는 것을 볼 수 있습니다.
하지만 우리는 “고객별 재구며 경과기간”을 집계 형태로 사용하는 것이 아니라 하나의 “차원”으로 사용해야 겠죠.
“고객별 재구매 경과기간” 필드를 드래그 하여 측정값에서 차원으로 이동시켜 주세요.

5. 구해 놓은 “고객별 최초 구매일”행 선반에 불연속형 “년”, “분기” 수준으로 놓아주세요.

6. “고객당 재구매 경과기간”을 열 선반에 놓아 주세요.

7. “고객번호”에서 마우스 오른쪽 버튼을 누른채 (Mac의 경우 Option을 누른채) 로 색상에 드래그 하고,
고유 카운트로 집계해주세요. 해당 기간에 해당하는 고객을 카운트 합니다.

 

 

반응형

댓글