** 영상 학습 :
** 학습 자료
** 테이블 계산식의 원리
테이블 계산식은 “Raw Data”를 “집계한 값 (Aggregation)”을 가지고 “테이블 계산 (Table Calculation)”을 실행합니다.
우리는 국가별 가격 변동 비율을 구하기 위해서
(1) Dollar Price(Raw Data)의 합계(Aggregation) 를 구하고,
(2) 그 합계 값을 가지고 “구성비율”이라는 테이블 계산식(Table Calculation)을 통해 변동 비율을 계산했습니다.
즉, 이미 집계된 Dollar Price 합계 값을 가지고 ‘재계산’했죠.
** Dollar Price의 합계를 구한 기준은 연도(Date)와 국가명(Name)!!
기본적으로 태블로는 집계 값을 통해 시각화를 합니다. 이 때, 집계의 기준은 “시각화의 세부 수준”에 따라 결정되는데요.
시각화의 세부수준이 무엇인지 함께 살펴봅시다.
새로운 시트를 여시고 Dollar Price를 더블 클릭해보세요. 그럼 전체 데이터의 총 Dollar Price의 합계가 표현되는 것을 볼 수 있습니다. 그 상태에서 Name을 열 선반에 올려보세요. 이번엔 Dollar Price가 국가 수준으로 집계가 되는 것을 볼 수 있습니다.
이처럼 시각화에 추가되는 차원에 따라 집계의 기준이 변경 되는데, 여기서 말하는 측정값의 집계 기준을 시각화의 세부 수준 또는 뷰의 수준이라고 합니다.
그리고 이러한 시각화 세부 수준에 영향을 미치는 곳은 아래 그림에 붉은색으로 표시된 곳입니다.
붉은색에 추가되는 “차원”이 시각화의 세부 수준을 결정 짓는다라고 생각하시면 됩니다.
앞에서 보셨던 것처럼 측정값은 시각화의 세부 수준에 따라 집계가 되고, 이 집계 값을 갖고 다시 재계산 해야 하는 테이블 계산은 어떤 기준으로 계산을 해야할 지 지정해줘야 하는 것이죠. 이 때, 재계산이 되는 범위(테이블, 패널, 셀)와 방향, 기준에 따라 값이 달라 질 수 있기 때문에 범위와 방향을 신중하게 설정해줘야 합니다.
1번_테이블 계산식 - 차이
1. 열-날짜, 연속형(아래) '일'
2. 행-종가(합계)
3. 필터-날짜-년- 2019년만 선택
4. 행의 종가 ctrl한 채 드래그(복사), 우클릭-이중축
5. 마크 합계(종가) 2개 생성됨, 하나는 라인, 하나는 원
6. 세로 축(종가) 우클릭-축 편집- 고정 시작 30500, 끝 38000 설정 - 반대쪽 축 동기화
7. 마크- 레이블- 최소/최대 표시
8. "전일 대비 종가 등락" 계산식 만들기 : 등락/동일/하락 표현
>> 만드는 법 1)
- 행 선반에 '종가' 추가 - 퀵 테이블 계산 '차이'
- 범위 '테이블 전체', 차이 기준 '이전(전일)'
- 만들어진 행을 다시 측정값 위치에 가져다 놓기, 이름 변경, 편집-계산식 확인
>> 만드는 법 2) 계산된 필드 만들기-계산식 : ZN(SUM([종가])) - LOOKUP(ZN(SUM([종가])), -1)
- ZN(식) : null이 아니면 <식> 반환, 그렇지 않으면 0 반환
- LOOKUP(식, [오프셋]) : 지정된 기준 오프셋만큼 현재 행으로부터 떨어진 대상 행에서 주어진 식을 계산하여 그 값을 반환. 대상을 파티션의 첫/마지막 행으로부터의 상대 위치로 지정하려면 FIRST()+n / LAST()-n 사용.
- -1 은 기준일자로부터 -1일자를 의미함.
- ZN을 사용한 이유 : 첫 번째 날(2019-01-02)은 비교할 이전 값이 없으니, 그 날짜에는 테이블 계산 값이 보이지 않음 (하단의 1 NULL, 계산되지 않은 값이 있음)
9. "등가 여부 색상" 계산식 만들기, 위에서 만든 "전일 대비 종가 등락" 이용"- 마크 합계(종가) 원에 '색상'으로 표현
- 전일 대비 종가 등락 > 0 이라면 등락
- 전일 대비 종가 등락 < 0 이라면 하락
- 전일 대비 종가 등락 = 0 이라면 동일
10. 코드명-마크 합계(종가) 원에 '세부정보'로 표현
1) 메뉴-워크시트-동작
2) 동작 추가-URL로 이동
3) 이름 : 증권정보로 이동, 동작실행조건-메뉴, URL 입력 https://finance.naver.com/item/main.nhn?code=
4) URL 뒤 코드명 선택, 확인
5) 원 마크 클릭 후 "증권정보로 이동" 클릭 시 링크 이동 됨
2번_테이블 계산식 - 구성비율
1. 세부정보 - '국가', '시도', 색상-'매출(합계)', 레이블 - '시도'
2. 레이블 - '매출(합계)' - 퀵 테이블 계산 '구성비율' ( 계산식 : SUM([매출]) / TOTAL(SUM([매출])) )
3. 필터 - '지역', 수도권 선택, 필터표시-단일값 선택(목록)
전체일 때 서울 22% / 경기도 20%
수도권 필터 지정 시 서울 46% / 경기도 42%
>> 변경 이유 :
"구성 비율" 구할 때 계산 범위 '테이블'로 지정했음.
지역 필터를 적용하기 전에는 화면에 보이는 전체 시도에 대해 범위가 지정이 됐다면,
필터를 적용한 후에는 해당 지역에 포함된 '시도'에 대한 범위로 계산 범위가 바뀌게 됩니다.
즉, 필터 적용 전에는 서울특별시 매출 합계 / 전국 매출 합계 (TOTAL의 범위가 전국)로 구성비율이 구해졌다면,
필터 적용 후에는 서울특별시 매출 합계 / 인천,서울,경기도 매출 합계 (TOTAL의 범위가 수도권) 로 계산 되다보니
구성비율의 수치가 달라지게 된 것.
3번_세부수준 계산식(LOD) : 전국 기준 매출 구성비율 구하기
* 세부수준 계산식(LOD) : "현재 뷰의 시각화 세부 수준"과 "실제 내가 필요한 집계의 기준"이 상이할 때 사용할 수 있는 것
1. "전국 기준 매출" 계산식 만들기 : { FIXED [국가] : SUM([매출])}
: FIXED는 지정된 특정 차원을 기준으로 집계를 하는 방법, 국가의 전체 매출 합을 FIX해서 가지고 있는 것을 의미!
2. "전국 기준 구성비율" 계산식 만들기 : SUM([매출]) / SUM([전국 기준 매출])
: 필터에 따른 뷰가 변경이 되어도 전국 기준 매출은 FIX되어 있기 때문에 테이블 계산식에도 변동이 없게 하기 위함.
뷰의 세부 수준이 “시도”이니 매출 합계는 시도의 매출 합계를 나타내는 것!
3. 레이블 - "전국 기준 구성비율" 추가 - 레이블 편집, 필터 변경해도 전국 기준 매출 구성 비율 값 변하지 않음
4번_세부 수준 계산식 : 과거 고객 매출 기여도 및 신규 유입 고객 현황 분석
1. 열-년(주문 일자), 행-매출(합계)
2. "고객별 최초 구매일" 계산식 만들기 : { FIXED [고객번호] : MIN([주문 일자]) }
(고객별이므로 고객으로 차원 고정, 고객번호가 고객을 유일하게 구분할 수 있는 필드)
3. 만든 계산식 마크-색상으로 추가
추가_코호트 분석
: 최초 구매 후 두번째 구매까지의 기간 시각화
1. "고객별 최초 구매일" 계산식, 4번에서 만들어 놓음
2. "고객별 최초 재구매일" 계산식 :
{ FIXED [고객번호] :
MIN(
IIF( [고객별 최초 구매일] < [주문 일자], [주문 일자], NULL )
)
}
>> 설명 : 우리가 구해야하는 “고객 별 최초 재구매일” 에 사용되어야 하는 집계 기준과 “시각화 세부수준 (뷰의 세부수준)”이 다르기 때문에 FIXED 세부 수준식을 사용해야 한다.
(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', [고객별 최초 구매일], [고객별 최초 재구매일])
4. 열-"고객당 재구매 경과기간", 행-"년(고객별 최초 구매일)", "분기(고객별 최초 구매일)"- 불연속형
5. 마크-색상 "고객번호" 우클릭 드래그, 고유 카운트로 집계
>> 해당 기간에 해당하는 고객을 카운트해줌
+ 분기 서식 수정하는 법
: 1분기, 2분기, 3분기, 4분기로 표현됨
6일차 개어렵다...
'TABLEAU' 카테고리의 다른 글
Day8_Set Action & Parameter Action (0) | 2023.04.11 |
---|---|
Day7_도넛차트, 워터폴차트, 범프차트, 퍼널차트, 간트차트 (0) | 2023.04.11 |
Day5_공간 분석 (1) | 2023.04.11 |
Day4_Time Analysis (0) | 2023.04.10 |
댓글