[Tableau]

테이블 계산 주요 함수 - INDEX, SIZE, RANK, TOTAL

indongspace 2025. 3. 6. 23:23

 

 

 

데이터 : Sample - Superstore

준비

 

 

INDEX

마크카드에서 'INDEX()' 라는 필드를 직접 만들고 화면 내에 드랍한다.

 

INDEX() : 위치에 따라 줄을 세운다

 

INDEX() 필드에서 테이블 계산을 열어보면,

이전 글 테이블 계산에서와 같이 '특정 차원' 의 체크박스를 다룰 수 있다는 걸 알 수 있다.

- 각 A와 B 별로 : A와 B의 체크박스 비움

- C와 D에 대해서 : C와 D의 체크박스 선택

 

 

SIZE

측정값 카드에서 'SIZE()' 필드를 생성한다.

 

SIZE() : 모든 셀에 그 줄의 제일 끝 번호를 넣어준다

= INDEX와 SIZE가 동일한 방식으로 테이블 계산이 Configure 되어 있을 때는 INDEX의 제일 끝 값이 모든 셀에 대해 채워진다.

 

SIZE() 필드의 테이블 계산

 

 

RANK

RANK의 경우 괄호 안에 집계된 결과가 들어가야 한다.

RANK([집계된 계산])

 

이유는?

테이블 계산의 정의 중 하나가 Secondary Calculation인 것을 알 것이다. RANK라는 테이블 계산 안에는 먼저 First Level Calculation의 집계 계산이 들어가야 두번째로 테이블 계산이 일어나기 때문이다.

 

RANK 생성

 

RANK([Aggregated Calc]) : Aggregated Calc에 따라 줄을 세운다(=순위를 매긴다)

 

지금은 Category 별로 '합계(Quantity)' 에 따라 순위가 매겨진 것을 확인할 수 있다.

 

계산 대상 으로 계산방식에 대한 위치를 바꿔주면 결과도 바뀌는 것을 확인할 수 있다.

RANK 함수도 결국은 테이블 계산이기 때문에 테이블 계산을 어떻게 Configure 하느냐에 따라 순위를 조정할 수 있는 것이다.

 

 

TOTAL

TOTAL([집계된 계산])

 

 

TOTAL([Aggregated Calc]) : 지정된 범위 전체에서의 Aggregated Calc

 

마찬가지로 계산방식에 대한 위치 변경 가능

 

 

INDEX vs RANK

준비

INDEX 함수와 RANK 함수의 결과가 다른 것을 확인할 수 있다.

SQL 함수로 따지면 INDEX는 ROW_NUMBER()와 기능이 같고, RANK는 RANK()와 기능이 같다.

 

INDEX : 차원 sorting 자유롭다

vs

RANK : 그렇지 못하다

 

RANK : 다수 동점자의 처리 방식 지원

vs

INDEX : 그렇지 못하다

 

 

이번엔 RANK 함수를 바꿔보자.

Sean Miller의 경우 sales 기준으로는 1위이지만, 주문횟수(카운트(고유 order id))는 5번 뿐인 것을 알게 된다.

이처럼 RANK는 View에 없는 측정값에 대해서도 순위를 매길 수 있다.

그러나 INDEX는 불가능하다.

 

계산된 필드 -> 테이블 계산 에서

사용가능한 함수의 목록을 보면 다양한 RANK_ 함수가 존재하는 것을 확인할 수 있다.

이걸 이용해서 동점자 처리를 다양하게 할 수 있다.

 

 

※ RANK를 오름차순으로 만들고 싶다면?

준비

마이너스만 붙여주면 된다.

 

result

 

 

 

 

 

공부내용 :

https://www.inflearn.com/course/%ED%83%9C%EB%B8%94%EB%A1%9C-%EC%A4%91%EA%B8%89

 

[지금 무료]태블로 레벨UP 강의 | VizLab - 인프런

VizLab | , 🗒 강의소개 강의를 만들게된 계기가 어떻게 되시나요? 왜 이 강의를 만들게 되신거죠?저는 2015년 말에 태블로라는 툴을 처음 접하게 되었습니다. 당시에도 한국에 태블로가 소개되지

www.inflearn.com