brunch

You can make anything
by writing

C.S.Lewis

by Cheon Aug 08. 2016

기업의 매출 측정지표 대시보드 만드는 방법

Sales KPIs 

기업에서 여러가지 측정지표 중 이익률도 있지만 순수 매출액만을 보는 경우도 있다. 시간에 따른 매출액의 변화, 각 상품별 매출액의 증가 및 감소 등을 확인하기도 한다. 그래서 한 기업의 데이터를 가지고 매출 측정지표 대쉬보드를 태블로를 이용해서 만들어 볼 것이다. 


여기서 사용할 데이터는 Superstore 데이터로, 태블로를 실행하면 기본적으로 제공되는 데이터이다. Superstore는 미국의 슈퍼마켓이고, 이 데이터를 이용해서 Superstore의 매출액의 변화를 시각화 해보자. 


항상 대쉬보드를 만들기 전에 생각해야 할 것은 목적과 대쉬보드를 볼 사용자, 그리고 인사이트, 즉 어떤 메세지를 줄 것인가이다. 여기서는 Superstore의 임원들에게 기업의 매출액의 변화를 보여줌으로써 각 카테고리별 어디에서 매출액이 많이 나고 적게 나는지를 보여주는 것이 목표이다. 


그리고 최종 대쉬보드를 구상해보면서 어떤식으로 만들건지 정하고 그 대쉬보드에 필요한 각 파트들을 나눠서 그래프나 차트 등을 만들면 된다. 나는 보통 최종 대쉬보드를 손으로 공책에 그려보면서 어떻게 태블로를 이용해서 대쉬보드를 만들지 정리하고 시작한다. 


자, 이제 본격적으로 시작해보자. 


먼저 만들 대쉬보드는 아래와 같다. 

물론 이것은 내가 이미 대쉬보드를 만들었기 때문에 이것을 볼 수 있지만, 보통은 손으로 대충 그려서 '대쉬보드를 어떻게 디자인할 거다' 라고 간단히 구상하고 시작하면 된다.  


이 대쉬보드를 만들기 위해 첫번째 단계로, 시간이 지남에 따라(연도별) 카테고리별 매출액의 변화율 표를 만들어보자. 


이것을 통해 보고 싶은 것은 Superstore의 카테고리별 매년 매출액의 변화율은 얼마나 되고 변화율의 증가 또는 감소를 화살표 모양으로 보여주는 것이다. 


우선 표를 만드는 것부터 시작하자. 
◆ Order Date를 Columns로, Category를 Rows로 드래그하자.
◆ Sales를 Text로 드래그 한 후, Text를 클릭하여 Quick Table Calculation에서 Year Over Year Growth를 선택한다.

◆ Marks 카드안에서 Shape를 선택한다.

이번단계에서 제일 중요한 연도가 바뀜에 따라 매출액의 변화량에 따른 증감 또는 감소를 표시하기 위해 식을 하나 작성해보자. 
◆ Create calculated field에서 제목: T/F YoY, 식: 아래와 같다.


◆ 식 설명:
위의 식에서 사용된 태블로의 ZN과 LOOKUP function을 이해할 필요가 있다. 우선 ZN은 Zero Number이란 뜻으로, 데이터가 비어있거나 null로 되어있으면 숫자 ‘0’으로 바꿔주고, 데이터가 있으면 데이터 그대로 보여준다. 그래서 여기서 쓰인 ZN(SUM([Sales]))는 그 년도의(여기서는 sales를 년도별로 보여주기 때문에) 총 판매량의 값이 비어있거나 null이면 숫자 ‘0’으로 바꿔주고 데이터가 있다면 그 데이터 그대로 보여준다. 이 대쉬보드에서 년도가 바뀜에 따라 매출액의 변화량을 계산해야 하는데 어떤 년도의 매출액이 없으면 계산이 에러가 나기 때문에 ZN function을 쓴 것이다.

LOOKUP function은 어떤 위치에 있는 데이터를 본다는 의미로, 위에서 쓴 식을 예로 들면, (LOOKUP(ZN(SUM([Sales])), -1)), -1이 현재 데이터의 한칸 뒤의 데이터를 의미한다(다른 숫자도 가능한데, 예를 들어 2를 쓰면 현재 데이터의 두칸 앞의 데이터를 의미한다.). 즉, 현재 보고 있는 매출액의 총량 데이터에서 한칸 뒤의 데이터를 보고 그 데이터를 가져온다는 의미로 해석될 수 있으면, 년도별 매출액의 변화량을 계산할 때 유용하게 사용될 수 있다.

◆ 마지막으로 전체식을 이해해보자. 위의 식에 의미는 전년도와 이번년도 사이의 매출의 변화량을 의미하는 것이다.(쉽게 말하면, (올해 매출액-작년 매출액)/작년 매출액, 이렇게 이해를 하면 될 것 같다.)

그리고 식의 끝에 ‘> 0’ 추가했는데, 위의 식이 0보다 크면 True(참), 같거나 작으면 False(거짓), 둘 다 아니면 null을 나타나게 하기 위해 추가한 것이다.


◆ T/F YoY를 Color와 Shape에 드래그하자.
◆ AGG(T/F YOY) 박스 안에서 원하는 색깔과 모양으로 바꾸자.

다음과 같다.



두번째로는 좀 더 깊은 분석을 위해, 시간이 지남에 따라(Year over Year) 카테고리별 총 매출액의 평균의 변화량과 부분 카테고리(Sub-Category)별 매출액의 변화량을 구해보자.


우선 기본적인 표를 만들기 위해서는 
◆ Order Date를 Columns로, Category를 Rows로 드래그 하자.
◆ Sales를 Columns로 드래그 하자.

시간이 지남에 따른 카테고리별 총 매출액의 평균의 변화량을 구하기 위해서는 매년 카테고리별 총 매출액의 평균을 구해야 하고, 그것을 구하기 위해서는 부분 카테고리(Sub-Category)들의 총 매출액의 평균을 먼저 구해야 한다. 예를 들어, 2011년도의 Furniture의 4가지 부분 카테고리(Bookcases, Chairs, Furnishings, Tables)의 각각의 매출액이 다르지만, 이것들은 Furniture 카테고리에 속해 있기 때문에 여기에 4가지 부분 카테고리의 총 매출액의 평균을 구하면, 그것이 Furniture의 2011년도 매출액의 평균이 된다.

이것을 구하기 위해서는 
◆ Create calculated field에서 제목: Average Sales, 식: WINDOW_AVG(SUM(Sales)) 라고 작성한다.


WINDOW_AVG function은 일정 범위(window)안에서 매출액의 합(SUM(Sales))의 평균을 구한다는 뜻이다.

개념의 이해를 돕기 위해 위의 사진을 읽어보기 바란다.(자세한 사항은 웹사이트를 참조하자.)


이것을 위의 데이터에 적용시키면, Furniture안에 속한 4가지 부분 카테고리들의 매출액의 평균을 구한다는 뜻이다.


◆ 그리고 Average Sales를 Detail로 드래그 하자.

여기까지만 해놓으면, WINDOW_AVG function을 이용해서 각 년도의 매출액의 평균을 계산해 높은 상태이다. 그런데 내가 알고 싶은 것은 카테고리별 매출액의 평균이다. 
카테고리별 매출액의 평균을 구하기 위해서는, Average Sales를 마우스 오른쪽 버튼으로 클릭 후, Compute Using - Pane Down을 클릭하자(Pane은 위의 두번째로 만들 표에서 가로선이 끝나기 전까지, 예를 들어 2011년도 Furniture 칸을 의미하고, Down은 방향이 밑으로 향한다는 뜻이다.). 이렇게 함으로써, 카테고리별 매출액의 평균을 볼 수 있다(카테고리마다 매출액의 평균은 다르지만, 각 카테고리에 속해 있는 부분 카테고리들의 매출액의 평균은 같다).


여기까지 해서 카테고리별 총 매출액의 평균을 구했다. 이제 본격적으로 연도별 변화량을 구해보자. 우선 식을 하나 만들어야 한다. Create calculated field에서 제목: YoY Average 식: 아래와 같다.

아까 구한 Average Sales의 변화량을 구하는 식이다.


◆ YoY Average를 Color로 드래그 하자.
◆ YoY Average를 클릭 후, Click edit table - YoY Average 선택, 드랍다운 메뉴 클릭 후, Compute Using - Table Across를 선택하자.



◆ Sales를 Label로 드래그 하고, Quick Table Calculation - Year over Year Growth를 선택하자.


다음과 같다. 



세번째로는 각 부분 카테고리의 평균 매출액을 전체 수량 중 각 상품의 판매한 수량의 가중치를 부여하여 가중 평균 매출량(판매량)을 비교하는 것이다. 


예를 들어, 아래 그림과 같이 Sub-Category 중 Machines의 평균 매출액은 $2,386으로 상대적으로 높은 편이지만, 수량은 상대적으로 적은 96개이기 때문에 가중치를 부여한 평균 판매량은 다른 Sub-Category 중에서 가장 높지는 않다. 여기서 알 수 있는 것은 단순히 평균 매출액만을 비교한 것 보다 수량의 가중치를 부여해서 비교하면 좀 더 정확하게 평균 판매량을 비교할 수 있다. 



그럼 이렇게 가중치를 부여해서 평균판매액을 비교하는 과정까지를 실행해보자. 
◆ Sales를 Columns로 드래그 하고, Average로 바꾸고, Quantity를 Columns로 드래그 하자.
◆ Category와 Sub-category를 Rows로 드래그 하자.


가중치를 부여하여 평균판매량 구하기 위해 식을 작성해 보자.
◆ Create calculated field에서 제목: Weight, 식: SUM(Quantity)/WINDOW_SUM(SUM([Quantity]), FIRST(), LAST())

각 부분 카테고리(Sub-category)의 수량을 모든 부분 카테고리의 수량의 총 합으로 나눠서, 각 부분 카테고리의 수량이 전체에서 얼마를 차지하는 가에 따라 가중치를 부여하기 위해 만든 식이다.

그 다음, 원래 구했던 평균 판매량(AVG([Sales]))에 위에서 구한 가중치를 곱하는 식을 작성해 보자.
◆ Create calculated field에서 제목: Weighted Average Order Sale Amount
식: AVG([Sales]) * [Weight]


◆ Weighted Average Order Sale Amount를 Columns로 드래그 하고, Compute Using - Table(Down)으로 하자.


◆ 위에서 구한 식들을 연도별로 보기 위해 Order Date(Year)를 Columns로 드래그 하자.
◆ Quantity와 Weighted Average Order Sale Amount를 각각 다른 색깔로 바꾸자.


마지막으로 가중치를 부여한 평균판매량들의 평균을 기준으로 보기 위해 평균선을 만들자.


◆ Reference Line을 이용해서 아래와 같이 Value값을 정하자.


그럼 다음과 같이 평균선이 생긴다.


위에서 만든 3가지 표와 그래프들을 대쉬보드란에서 드래그하여 하나의 대쉬보드를 만든다. 그리고 대쉬보드를 좀 더 인터렉티브하게 하기 위해 Action 기능을 사용할 수 있다.



최종 대쉬보드는 다음과 같다.



위의 대시보드를 실제로 태블로를 이용해 만든 대쉬보드로 체크해보자.

매거진의 이전글 기업의 이익률 측정지표 대시보드 만드는 방법
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari