태블로, LOOKUP 함수의 쓸모

Journey log·2025년 3월 16일
0

Tableau

목록 보기
1/1
post-thumbnail

1. 수치를 이해할 때 도움이 되는 지표

대시보드에 숫자가 굉장히 많을 때, 이런 설명이 함께 있으면 이해에 도움이 되는 것 같다.

  • 전월 동기간 대비 n% 증가
  • 이번달 목표 대비 m% 달성
  • 전체 가입자수 대비 n% 달성

이중 "전월 동기간 대비 n%" 를 표시하고 싶을 때 가장 단순한 방법은 태블로로 추출할 마트 테이블에 컬럼을 추가하는 것이다. 예를 들면 LAG 함수를 써서 지난달에 해당하는 값을 row마다 가져오는 방식이다.

하지만 한창 대시보드를 만들고 있다가 뒤늦게 지표를 추가하려고 하면, 마트를 다시 만들어야하는 과정이 매우 번거롭다. 이때 태블로에서 사용 가능한 LOOKUP 함수를 알게되어 사용법을 정리해보았다.

데이터는 태블로 클라우드의 기본 데이터 Superstore Datasource를 이용했다.


2. 필요한 것은?

  • 기준일자를 조정하면서
  • 지난주 같은 요일 대비 증감을 확인하고 싶다.
  • (디자인도 개선이 필요하지만 일단 이건 패스..)

2.1 매개변수 만들기

최신 데이터만 보여주지 않고, 기준일자를 조정하는 리모컨을 만들고 싶다면 매개변수를 만들면 된다.

좌측 상단 메뉴에서 매개변수 만들기를 누르고, 데이터 유형 및 기본값을 정의한다. 태블로 데스크탑 유료 제품에선 통합 문서가 열릴 때의 값을 max_date (추출된 데이터중 가장 최근값)으로 지정 가능한 것 같은데 여긴 클라우드라서 안 되는 것인지? 아니면 데이터 자체가 추출방식으로 가져오는 것이 아니라서 그런 것인지 잘 모르겠다.

그리고 매개변수 이하 날짜들만 보여줄 것이므로 새로 boolean 변수를 생성한다.

  • order date가 기준일자 이하면 참, 초과하면 거짓

그리고 필터에 추가하여 "참"일 때만 보여준다.
"매개변수 표시"한 다음, 매개변수(target date)의 날짜를 조정하면 해당 날짜까지의 데이터만 노출된다.


2.2 지난주 대비 변화

기준일자 or 기준일자 - 7days 일자만 필터에서 변화를 표현하고 싶다. 이것도 boolean으로 정의한다.

함수 사용법이 헷갈릴 땐 오른쪽 함수 검색을 사용한다.

방금 정의한 boolean 변수와 Order Date를 같이 행에 올린 다음, 측정값(Quantity)는 셀에 올린다.

{기준일자}와 {기준일자 일주일 전} 데이터만 나타난 것을 확인할 수 있다.

이제 변화한 양을 계산할 것인데

  • LOOKUP : 한 단계 다음 값을 가져옴. 쿼리에서 LEAD 함수와 유사하다. (그림처럼 offset이 음수라면? LAG 함수처럼 이전 단계 값을 가져온다.)
  • ZN : if x is null then 0 else x (NULL 대신 0을 반환하는 함수)

여기서 주의할 점은 LOOKUP 함수는 입력값이 반드시 집계치여야한다는 것이다. (x 가 아니고 SUM(x) 여야함)

이 데이터의 경우 date 일자별로 quantity 값이 중복은 아니기에 SUM 함수를 씌워도 무방하다. (SUM을 씌울 때는 항상 row 가 중복이 아닌지 체크)

2.3 레이블 편집

만약 증가했다면 빨간색으로, 감소했다면 파란색으로 색상을 표시하고 싶다면 변수를 추가로 정의한다.

  • amount_change_plus : if amount change >= 0 then amount change end
  • amount_change_minus : if amount change < 0 then amount change end

그리고 이렇게 레이블 편집을 하면, 양수라면 빨간색으로 음수라면 파란색으로 표시가 될 것이다

.. 라고 적어놓고 보니 다른 대안은 정말 없는 것일까..? ㅎㅎ

사용자 서식으로 기호도 추가 가능하다.
자세히 알아보기를 눌러서 태블로 문서를 읽어보니, 구문은 세미콜론으로 구분하며 차례대로 양수, 음수, 0 이렇게 세 부분으로 구성된다고 한다.

그리고 이제 기준일자만 표시하기 위해 지난주에 해당하는 날짜는 "숨기기" 처리를 해준다.

참고로 '제외', '이 항목만 유지' 는 필터 조정 기능이다. 그래서 '제외'를 사용하면 지난주 수치가 필터로 제외되기 때문에 LOOKUP 함수가 제대로 작동하지 않는다.


그런데.. 여기까지 진행한 다음, 매개변수로 날짜를 또 다른 값으로 조정하면 지난주 값이 숨겨지지 않고 다시 화면에 나타나는 (?) 현상을 겪게 될 것이다.

방금 "지난주 날짜"를 숨기지 않고 특정 일자 셀(2024.08.26)을 숨겼기 때문이다.

특정 날짜를 숨기는 대신 "지난주" 값을 숨기려면, boolean 값으로 target_date 인지 여부를 새로 정의한다.

그 다음 boolean 값이 target_date 가 아닐 때 "숨기기"를 적용한다.

이제 매개변수를 조정할 때마다
기준일자의 Quantity와 지난주 같은 요일 대비 증감이 변화하는 것을 확인할 수 있다.

3. 마무리하며

시각화 관점에서 파이썬과 태블로를 난이도로 비교하면, 나에겐 태블로가 더 어렵고 구글링 자체도 쉽지 않은 것 같다. 태블로의 기본 용어가 익숙하지 않은 상태이다보니, 구글 검색보다는 chat gpt에게 물어보는 것이 좀 더 의도한 답변을 얻는 경우가 많았다.

오히려 누군가가 만든 대시보드를 로컬에 다운 받아 변수 생성과 세팅을 그대로 따라하는 것도 괜찮은 방법 같다. LOOKUP 함수도 누군가의 태블로의 대시보드를 뜯어보다가 알게 되었다. 깨달음을 주신 귀인들에게 감사함을 느끼며 이 글을 바친다..

profile
DEEP DIVER

0개의 댓글