Chapter
📗 3. 태블로 함수
📝 (1) PRIMARY 함수
📝 (2) 문자열 함수
📝 (3) DATE 함수
함수 내에 다른 함수가 포함된 함수이다.
✔ RUNNING_SUN : 누계
계산 필드를 이용해서 확인해보자.
계산 필드와 '주문 일자'필드를 사용해서 2016-2019 누계 매출액을 확인할 수 있다.
그렇다면 누계와 과연 다른가 직접 확인해보자.
따로 '매출'필드를 행 선반 위에 올려서 퀵 테이블 계산을 활용한다.
동일한 값이 나오는 것을 확인할 수 있다.
✔ RUNNING_AVG : 해당 데이터부터 이전 데이터들의 누적 평균
마찬가지로 계산된 필드를 이용해서 2016-2019 누적 평균을 확인한다.
이동 평균과 비교해보자. 퀵 테이블 계산을 이용했다.
확실한 비교를 위해 '주문 일자'를 연속형 분기값으로 변경해준다.
running_avg는 특정 기간을 포함한 이전 기간의 모든 값의 평균값을 나타내면, 이동평균은 특정 기간부터 지정한 일정한 이전 기간 만큼(현재 그래프에서는 2분기 전까지)의 값의 평균을 나타낸다.
총 합계를 구한다. 먼저 계산된 필드를 만들어주었다.
'제품 대분류'필드를 이용해 제품 대분류별 매출 합계액의 초기 테이블을 만들어 주었다.
total 계산 필드도 더블클릭해서 넣어준다.
여기에 '제품 중분류' 필드를 행 선반에 추가해서 세분화한다.
sum과 비교해보면 sum은 차원을 나누면 그에 맞게 합계를 다시 구해주지만, total함수는 차원에 따라 나눠지는 것과 상관없이 총합계로 나타내는 것을 확인할 수 있다.
현재 행 기준으로 일정한 구간의 떨어진 값을 대상으로 주어진 값을 구한다.
우선 '주문 일자'와 '매출'필드를 이용해서 2016-2019 매출합계액 초기 테이블을 만들어 준다.
활용할 계산된 필드를 만들어 준다. 합계를 출력하되, 현재 행으로부터 -1행만큼 떨어진 값을 가져오는 계산식이다.
계산된 필드를 테이블에 출력해보자.
당연히 2016년의 lookup 함수값은 나오지 않고, 2017년부터 1년 이전의 매출합계액을 출력하게 된다.
계산된 필드를 수정해보았다. 오프엣을 -1이 아닌 1로 수정했더니 2016년부터 1년 후의 매출액의 합계를 출력하는 것을 확인할 수 있다.
이번에는 lookup함수를 활용해서 전년도 매출액과의 차이를 확인해보자.
계산된 필드를 복제해서 편집해주었다. 해당 함수값이 null이면 0을 출력하는 zn()함수를 사용해서 다음과 같이 계산식을 작성했다.
계산된 필드를 테이블에 넣어준다.
계산 결과가 맞는지 퀵 테이블 계산을 통해 확인해보자.
계산된 필드와 동일한 결과값을 출력하는 것을 확인할 수 있다.
현재 화면 내에서 해당식을 반환한다.
✔ WINDOW_AVG : 지정한 범위 만큼의 데이터 평균 출력
우선 2016-2019 분기별 매출합계액 라인 그래프를 만들어주었다.
계산된 필드를 만든다. 현재 데이터로부터 3개의 이전 데이터까지의 평균을 구할 수 있도록 계산식을 작성했다.
행 선반 위에 추가하였더니 총 4분기 동안의 매출 평균을 확인할 수 있다.
이동평균과 비교해보자.
window_avg와 똑같게 이전 범위를 3으로 지정해준다. 계산된 필드와 똑같은 것을 확인할 수 있다.
.
.
'제품명' 필드로 초기 테이블을 만들었다. 이제 함수를 사용해서 원하는 정보를 출력해낸다.
제품명을 살펴보았더니, 제조사, 제품, 부가정보가 연달아 들어있다. 원하는 정보는 스마트폰 제품에 대해서만 정보를 출력해내려고 한다. 그런데, 계산된 필드를 사용해서 'Smart Phone' 문구가 든 셀만 출력하려고 했더니, 모든 셀이 동일하게 대문자를 문자 앞글자만 대문자인지 확신이 안 선다. 그래서 모든 문자열을 대문자로 변환해서 'SMART PHONE'이 포함된 제품명을 True로 반환한다.
이제 필드를 필터에 넣어 참인 셀만 출력하게 하면, 스마트폰에 대한 정보만 확인할 수 있게 된다.
이번에는 계산된 필드를 이용해서 제품과 브랜드명을 분리해준다. SPLIT함수를 이용해서 공백을 기준으로 문자열을 분리해서 첫 번째 문자열을 반환해서 브랜드명을 출력했다.
앞에서 'Smart Phone' 사이에 공백이 있다는 것을 확인했다. REPLACE함수를 사용해서 제품의 공백을 제거한다음 SPLIT함수로 품목만 따로 떼어내려고 한다. 우선 계산된 필드로 공백을 제거해보자.
이제 품목만 따로 떼어낸다.
방금 만든 REPLACE필드에서 공백을 기준으로 2번째에 있는 'SMARTPHONE'만 출력한다.
그런데 품목에 ','가 딸려온 것이 확인되었다. 계산된 필드를 수정해서 ','를 제거해보자. LEFT함수를 활용했다.
이제 계산된 필드를 활용해서 스마트폰 브랜드별 매출 비중 그래프를 그려냈다.
.
.
DATEPART, DATETRUNC, DATEDIFF
지정한 날짜를 정수로 반환한다.
먼저 '주문 일자'를 열 선반 위에 올려놓아보자. 이 때 올라간 필드를 더블클릭해보면 함수식을 확인해볼 수 있는데, 여기에 DATEPART함수가 사용되어서 연도가 표시된 것을 확인할 수 있다.
필드를 드릴 다운해서 함수식을 확인해봐도 모두 DATEPART함수로 해당 날짜가 정수로 표시된 것을 확인할 수 있다.
DATEPART함수를 사용해서 계산된 필드로 직접 확인해보자.
연도와 분기를 정수로 표현할 필드를 두 개 만들었다.
데이터가 정수로 표현되었기 때문에 자연스럽게 측정값에 위치되는데, 이들을 차원으로 이동시킨다.
드릴다운으로 연속으로 보기 위해서 계층을 만들어준다.
만들어진 계층을 열 선반 위에 올려서 드릴다운해보면 똑같이 출력되는 것을 확인할 수 있다.
이번에는 DATEPART함수를 응용해서 날짜의 요일을 표시해보자.
먼저 '주문 일자'필드를 불연속형으로 바꿔서 행 선반 위에 올려놓아 날짜를 나열해준다.
이제 계산된 필드로 요일을 표시해보자. 필드를 텍스트 마크 위에 올리면 다음과 같이 요일을 표시할 수 있다.
원하는 날짜를 잘라내서 다른 날짜로 대체할 수 있다.
'주문 일자'필드를 연속형 연속형 연도로 바꿔서 열 선반 위에 올려 놓았다.
필드를 더블클릭해서 확인했더니 DATETRUNC함수로 표현된 것을 확인할 수 있다(a). 이는 예를 들어 '주문 일자' 필드의 데이터가 2016-12-01이면 DATETRUNCE함수의 기준이 'year'이므로 연도의 첫 날로 모두 묶이는 것을 말한다. 2016년의 날짜면 모두 2016-01-01으로 묶이는 것이다(b).
a | b |
---|
기준을 일로 세분화해도 마찬가지로 DATETRUNCE함수로 표현된 것을 확인할 수 있다.
날짜 간의 차이를 구해준다.
함수를 사용해서 주문일로부터 배송일자까지 걸린 기간을 확인해보자.
먼저 다음과 같이 '주문 번호'별 '주문 일자'와 '배송 일자'를 테이블로 만들었다.
여기에 DATEDIFF함수를 이용해서 계산된 필드를 적용해보자.
하지만 완벽하게 맞지가 않는다. 이는 주문 번호가 고유값이 아니기 때문이다. 하나의 주문 번호에 여러 제품명이 있을 수 있기 때문에 '제품명'으로 다시 세분화해야 한다. '제품명' 필드를 추가했더니 배송기간이 정확한 것을 확인할 수 있다.
.
우선 사용할 날짜 매개변수를 만들어 뷰에 표시해준다.
다음으로 불연속형 '주문 일자'와 '매출'필드를 올려서 주문 일자별 매출 합계 테이블을 만들어준다.
이제 매개변수와 사용할 계산식을 만든다. MTD는 월초 대비 증감율이므로 월초부터 현재 날짜까지의 차이액을 확인해야 하므로 다음과 같은 계산식이 필요하다. 필드가 만들어졌다면 필터에 씌워서 데이터를 확인해보자.
.
방금 만든 MTD를 이용해 QTD시트를 만들어보자. 계산된 필드를 분기에 맞게 수정해서 교체해준다.
.
.
이제 만들어진 시트를 대시보드로 표현해서 한 눈에 비교해보자.
우선 대시보드에 시트를 사용하기 위해 행 선반의 필드는 전부 제거해주었다.
시트를 다음과 같이 배치(a)해준 다음, 레이블 서식을 변경하고 제목을 달아주었다(b).
a | b |
---|
매개 변수의 날짜를 바꿔가면서 데이터를 비교해보자.