Analiza danych sprzedażowych i tworzenie dashboardów w Tableau

Przedsiębiorstwo handlowe posiada ponad 3 letnią historię sprzedaży. Firma zajmuje się sprzedażą materiałów i akcesoriów biurowych. Kadra kierownicza oraz Zarząd firmy podjęli decyzję o konieczności monitorowania w czasie rzeczywistym kluczowych informacji związanych z działalnością operacyjną organizacji.  Dzięki wdrożeniu narzędzia do wizualnej analizy danych Tableau, organizacja zyskała możliwość szybkiej budowy operacyjnego kokpitu (dashboardu) sprzedaży, a co za tym idzie, możliwość monitorowania rentowności poszczególnych produktów czy transakcji oraz ich wpływu na wynik finansowy. 

Danymi wejściowymi dla naszego raportu jest baza danych systemu transakcyjnego organizacji (może być ona oparta na dowolnym popularnym systemie bazodanowym). Łączenie narzędzia Tableau ze źródłem danych odbywa się w czasie rzeczywistym aby zawsze dysponować aktualnymi informacjami (rys.1). 

W naszym przypadku skorzystamy z bazy demonstracyjnej Sample – Superstore preinstalowanej w każdej wersji narzędzia Tableau Desktop. 

    Rysunek 1 - podłączenie danych Live/Exract
    Rysunek 1 - źródło własne

Na podstawie danych transakcyjnych przygotowany zostanie raport operacyjny przedstawiający wybrane informacje dotyczące poziomu zysku oraz osiąganej marży.   Dane wejściowe dla przygotowywanego raportu umieszczono w tabeli o następującej strukturze (tab.1):  

    Tabela 1 - lista zmiennych źródła danych
    Tabela 1 - źródło własne

Przykładowy raport podzielony został na 5 segmentów (rys. 2), które prezentują poniższe informacje: 
    podsumowanie całościowego zysku organizacji od początku analizowanego okresu oraz zysk z dnia bieżącego (segment #1)
    pięć produktów o największej sumie sprzedaży z informacją o marżowości każdego z nich (segment #2)
    wizualizacja kroczącej sumy sprzedaży na osi czasu (segment #3)
    podsumowanie sprzedaży za ostatnie 7 dni ze wskazaniem wykonania celu marżowego (segment #4
    analiza wyników sprzedaży QTD (quarter-to-date) w podziale na regiony sprzedaży (segment #5)

      Rysunek 2 - dashboard operacyjny - przegląd
     Rysunek 2 - źródło własne

Kokpit operacyjny stworzony został w narzędziu Tableau 9.3 z 6 oddzielnych elementów - arkuszy, które następnie zostały zagregowane w pojedynczym widoku - dashboardzie.  Omówimy zasadę budowy każdego elementu oraz sam proces integracji elementów.

Segment #1 - podsumowanie zysku organizacji 

Element ten stworzymy w trzech krokach:
    krok 1 - wyświetlenie zsumowanego zysku 
    krok 2 - skalkulowanie sumy zysku dla dnia bieżącego 
    krok 3 - określenie procentowego udziału zysku dnia bieżącego w całkowitym zysku organizacji 

KROK 1 - Suma zysku 

W arkuszu Tableau (nazwijmy go Segment 1) z listy Measures wybieramy zmienną Zysk przeciągając ją na boks Text (rys.3.) Tableau wyświetli nam zsumowaną wartość zysku organizacji za pełen okres, który wczytaliśmy do narzędzia. 

Rysunek 3 Boks Text
Rysunek 3 - źródło własne

Kolejnym elementem jest dodanie informacji czym jest liczbą, którą wyświetliliśmy. W tym celu klikamy ponownie w boks Text i kolejno w trzy-kropek (rys.4) aby otworzyć okno edycji pola tekstowego.  

                                       Rysunek 4 - edycja pola tekstowego
                                Rysunek 4 - źródło własne

W polu tekstowym wyświetliliśmy już całkowitą wartość zysku, która została przez Tableau opisana w jako <SUM(Zysk)>. W otwartym polu tekstowym mamy możliwość dopisania dowolnego statycznego ciągu znaków lub wstawienia innej zmiennej, dynamicznie zmieniającej wartości poprzez funkcję Insert. Na potrzeby naszego raportu dodajmy, dowolnie sformatowany, napis SUMA ZYSKU (rys.5). 

      Rysunek 5 - dodanie opisu w edytorze tabelki
    Rysunek 5 - źródło własne

KROK 2 - Zysk dla dnia bieżącego 

Kolejnym krokiem jest skalkulowanie zysku tylko dla dnia bieżącego, który będzie aktualizował się automatycznie wraz z odświeżaniem danych ze źródła oraz zmianą daty. 
W tym celu należy przygotować nowe pole obliczeniowe poprzez kliknięcie prawym przyciskiem w sekcji Dimensions lub Measures i wybranie opcji Create calculated field… (nazwijmy je Today Profit), które zwróci wartość sumy zysku tylko dla dnia bieżącego (rys.6). 

Aby osiągnąć taki efekt zastosujemy formułę logiczną IF sprawdzającą czy zmienna Data Zamówienia jest równa zmiennej TODAY().
Jeżeli obie wartości będą tożsame Tableau zwróci wartość zmiennej Zysk dla wspomnianych rekordów.  

    Rysunek 6 - pole kalkulowane Today Profit
    Rysunek 6 - źródło własne

Utworzoną zmienną przeciągamy z listy miar (Measures) ponownie do boksu Text. Tableau automatycznie zagreguje wartości jako suma zysku dla dnia bieżącego. Edytując ponownie pole tekstowe możemy dodać opis naszego pola obliczeniowego (Dziś).
KROK 3 - Udział procentowy 

Ostatnim elementem Segmentu 1 jest obliczenie udziału procentowego zysku dnia bieżącego względem całkowitego zysku. Ponownie skorzystamy z możliwości stworzenia pola obliczeniowego.  Tworzymy dwa pola obliczeniowe, które nazywamy % Decline     (rys.7) oraz % Growth (rys.8).
Chcemy uzyskać osobne pola z uwagi na konieczność nadania im koloru czerwonego dla wartości ujemnych oraz zielonego dla wartości dodatnich. Oba pola mają zbliżoną konstrukcję do kalkulacji tworzonej w kroku 2. Stosujemy również funkcję logiczne IF gdzie sprawdzamy czy suma zysku dnia bieżącego (zmienna Today Profit) jest większa lub mniejsza od zera. W obu przypadkach pola mają zwrócić iloraz sumy zysku dnia bieżącego oraz sumy zysku dla całego rozpatrywanego okresu. Oba pola zwrócą wartość liczbową w przypadku spełnienia warunku, w przeciwnym wypadku zwrócona zostanie wartość NULL

     Rysunek 7 - pole kalkulowane % Decline
     Rysunek 7 - źródło własne

    Rysunek 8 - pole kalkulowane % Growth
      Rysunek 8 - źródło własne

Oba pola przeciągamy kolejny raz w boks Text. Edytując pole tekstowe wartości <AGG(%Decline)> nadajemy kolor czerwony a kolejnej zmiennej <AGG(%Growth)> kolor zielony

Finalne pole tekstowe, które będzie pierwszym elementem dashboardu operacyjnego, powinno mieć zbliżoną formę do przedstawionej na rysunku (rys.9). 

     Rysunek 9 - edycja pola tekstowego
     Rysunek 9 - źródło własne

Segment 2 - pięć produktów o największej sumie sprzedaży

Drugi element kokpitu przedstawia za pomocą wykresu słupkowego wartość sprzedaży pięciu najlepiej sprzedających się produktów z oferty firmy Superstore. Dodatkowo każdy produkt opatrzony został informacją o poziomie marży a kolor słupków określa czy wybrany produkt spełnił cel marżowy.

 Wykres ten stworzymy w dwóch krokach: 
    krok 1 - stworzenie wykresu słupkowego z filtrem TOP 5
    krok 2 - stworzenie pola kalkulowanego sprawdzającego realizację celu marżowego

KROK 1 - stworzenie wykresu słupkowego TOP 5

Klikamy dwukrotnie miarę Sprzedaż, Tableau automatycznie tworzy wykres słupkowy. W następnej kolejności czynność tą powtarzamy dla wymiaru Produkty.  Aby wyświetlić wartości sprzedaży na każdym ze słupków przeciągamy ponownie miarę Sprzedaż na boks Label (rys.10).

Rysunek 10 – boks Labelki
 Rysunek 10 - źródło własne

Otrzymujemy mało czytelny wykres wartości sprzedaży dla wszystkich produktów w ofercie firmy. Projektując dashboard założyliśmy, że interesuje nas pięć produktów o największym wolumenie sprzedaży. Aby ograniczyć nasz wykres tylko do interesujących nas produktów należy zdefiniować filtr na zmiennej Produkty. Prawym przyciskiem klikamy na zmiennej Produkty we wstędze Columns i wybieramy opcję Filter…->Top.

Po wybraniu opcji By field i ustawienie żądanej ilości rekordów, które chcemy filtrować, Tableau automatycznie zaproponuje pole, które będzie podstawą do filtrowania. W tym przypadku będzie to pole Sprzedaż gdzie za funkcję agregującą Tableau uzna zastosowaną w wykresie sumę (rys. 11). 

Po zaakceptowaniu takiego wyporu otrzymamy listę produktów ograniczoną jedynie do pięciu produktów o największej wartości sprzedaży.  

Rysunek 11 - okno edycji filtra
Rysunek 11 - źródło własne

Po zaakceptowaniu takiego wyporu otrzymamy listę produktów ograniczoną jedynie do pięciu produktów o największej wartości sprzedaży.  Wykorzystując funkcjonalność Swap (rys.12) obracamy wizualizację zamieniając oś rzędnych z osią odciętych. 

      Rysunek 12 - funkcja SWAP
      Rysunek 12 - źródło własne

Pomiędzy nazwą produktu a wartością sprzedaży wyrażoną słupkiem chcemy wyświetlić wartość marży jaką organizacja wypracowała dla danego produktu.  Dane, którymi dysponujemy, nie posiadają miary Marża. Mamy jednak możliwość obliczenia jej za pomocą nowego pola kalkulowanego. Przygotujmy nowe pole o nazwie Marża (rys.13). 

      Rysunek 13 - pole kalkulowane Marża
     Rysunek 13 - źródło własne

Uzyskane pole obliczeniowe powstało z podzielenia sumy zysku dla danego produktu przez sumę wielkości sprzedaży. Obie miary mają wartości ciągłe więc wynik kalkulacji również zostanie tak zinterpretowany. Aby wyświetlić na naszym wykresie marże w postaci liczbowej musimy zmienić typ naszego nowego pola obliczeniowego z ciągłego na dyskretny. Wystarczy prawym przyciskiem myszy kliknąć na zmiennej Marża i wybrać opcję Convert to discrete (rys.14). 

                                                              Rysunek 14  - konwersja zmiennej z ciągłej do dyskretnej
 Rysunek 14 - źródło własne

Tak skonfigurowane pole możemy przeciągnąć do wstęgi Rows i upuścić po lewej stronie znajdującej się tam zmiennej Produkt

KROK 2 - weryfikacja realizacji celu marżowego 

W kolejnym kroku oznaczymy kolorem słupki wielkości sprzedaży tych produktów, których marża przekracza założony przez nas poziom. W tym przypadku kolorem czerwonym oznaczymy produkty, które nie spełniają tego warunku czyli nie zrealizowały celu. Aby dokonać takiej segmentacji posłużymy się ponownie polem obliczeniowym z kolejną funkcją logiczną IF. Wynikiem pola o nazwie Performance #1 są znaki określające realizację, bądź nie, celu marżowego. W tym przypadku cel został określony na poziomie 1% marży (rys.15).  

      Rysunek 15 - pole kalkulowane Performance #1
     Rysunek 15 - źródło własne

Przeciągając otrzymane pole kalkulowane do boksu Color Tableau oznaczy odmiennymi kolorami te produkty, których marża spełnia nasze założenie, odróżniając je od tych, które naszego celu nie spełniają (rys.16).


Rysunek 16 - boks Color
Rysunek 16 - źródło własne

Dwukrotne kliknięcie na legendzie koloru pozwoli na dowolną konfigurację koloru, który zostanie zastosowany do różnicowania.  Realizacja obu kroków zaowocuje wykresem słupkowym dla pięciu produktów o największej sumie sprzedaży z oznaczeniem celu marżowego (rys.17). 

     Rysunek 17 - wykres słupkowy TOP 5 produktów
     Rysunek 17 - źródło własne

Segment #3 - wizualizacja kroczącej sumy sprzedaży na osi czasu

Wykres szeregu czasowego przedstawiającego sumę kroczącą zysku przygotujemy podobnie jak wykres słupkowy dla segmentu drugiego.

Rozpoczniemy od dwukrotnego kliknięcia w miarę Zysk. Tableau ponownie rozpozna naszą intencję i przygotuje wykres słupkowy dla sumy zysku firmy. Zysk ten chcemy przedstawić na osi czasu, w tym celu na wstęgę Columns przeciągamy wymiar Data zamówienia. Tableau automatycznie zamieni typ prezentacji danych ze słupkowego na wykres liniowy. Ponadto zmienną czasu wyświetlił jako wymiar dyskretny zagregowany do pełnych lat. Naszym zadaniem jest prezentacja danych jako szereg czasowy. Aby osiągnąć zamierzony efekt musimy przekonwertować zmienną czasu na typ ciągły.   Kliknięcie prawym przyciskiem myszy na zmiennej Data zamówienia znajdującej się na wstędze Columns pozwoli na wybór sposobu prezentacji zmiennej czasu. Nasze dane posiadają granulację najniższego rzędu na poziomie dnia. Właśnie w takiej formie chcemy prezentować dane na wykresie szeregu czasowego. Wybieramy więc granulację Day typu ciągłego (rys. 18). 

Rysunek 18 - wybór granulacji zmiennej daty
 
 Rysunek 18 - źródło własne

Otrzymany wykres sumy zysku w granulacji dziennej przypomina bardziej biały szum niż oczekiwaną równię pochyłą. Celem naszej wizualizacji jest przedstawienie sumy kroczącej, która zobrazuje w czasie proces osiągania bieżącej sumy zysku.   W tym celu wykorzystamy funkcjonalność Quick table calculation. Opcja ta zawiera predefiniowane pola kalkulacyjne, które są najczęściej wykorzystywane podczas tworzenia wizualizacji w narzędziu Tableau.  Aby przyspieszyć obliczenia, Tableau zaimplementował popularne kalkulacje w menu kontekstowym. Kliknijmy prawym przyciskiem myszy w zmienną Zysk znajdującą się na wstędze Rows i wybierzmy opcję Quick table calculation->Running total (rys.19). Program automatycznie dokona kalkulacji na naszej zmiennej Zysk oznaczając ją dodatkową ikoną delta (rys.20) informującą nas, że na zmiennej wykonane zostały dodatkowe obliczenia. 

Rysunek 20 - oznaczenie zmiennej ze skonfigurowaną kalkulacją tabelaryczną
Rysunek 20 - źródło własne


Rysunek 19 - tworzenie szybkiej kalkulacji tabelarycznej

 Rysunek 19 - źródło własne

Efektem modyfikacji wizualizacji jest krzywa o trendzie rosnącym przedstawiająca przyrost zysku w funkcji czasu. Aby uatrakcyjnić wykres, oznaczymy kolorem pole powierzchni pod krzywą skumulowanego zysku.  W boksie Marks redefiniujemy automatyczny dobór typu wykresu wybierając, z listy rozwijanej, typ Area (rys.21). 

Rysunek 21 - wybór typu wykresu - wykres powierzchniowy
Rysunek 21 - źródło własne

Efekt końcowy wykresu szeregu czasowego po zastosowaniu szybkich kalkulacji tabelarycznych powinien być zbliżony do poniższego widoku (rys.22). 

      Rysunek 22 - wykres sumy kroczącej zysku
      Rysunek 22 - źródło własne

Segment 4 / Segment 5

Budowa pozostałych segmentów oparta jest na podobnych technikach, do tych, które zostały już przedstawione. Zachęcam do samodzielnej budowy pozostałych elementów zaproponowanego dashboardu lub stworzenia zupełnie nowych elementów, które chcieliby Państwo umieścić w swoim raporcie operacyjnym. Pełne rozwiązanie wraz danymi potrzebnymi do wykonania dashboardu są dostępne do pobrania po zalogowaniu. 

Dashboard - integracja poszczególnych segmentów

Po przygotowaniu wszystkich segmentów, które chcemy umieścić w raporcie operacyjnym możemy przejść do etapu integracji w jeden widok - dashboard.  Tworzymy nowy arkusz - Dashboard klikając ikonę Nowy Dashboard (rys.23).

      Rysunek 23 - tworzenie nowego dashboardu
     Rysunek 23 - źródło własne

Wstęga zawierająca do tej pory listę zmiennych przeobraziła się w listę przygotowanych arkuszy. Przeciągając wybrane wizualizacje na obszar roboczy możemy ułożyć je w pożądanym przez nas układzie (rys.24). 

Rysunek 24 - gotowy dashboard operacyjny

Rysunek 24 - źródło własne

Zachęcam do przygotowania kilku układów kokpitów oraz zapoznania się z możliwościami formatowania poszczególnych elementów dashboardu.  Jednym z możliwych układów dashboardu operacyjnego jest propozycja, którą dla Państwa przygotowałem korzystając z opisanych w artykule segmentów. 

Autor: Piotr Adamczyk, ASTRAFOX

KOMENTARZE

Nazwa

Alteryx,8,astrafox,1,ASTRAFOX ACADEMY,16,case study,16,Data Science,44,Konferencje,31,Mapy i geokodowanie,6,Opinie,1,Przygotowane danych - ETL,4,R,4,Tableau,202,Tips & Tricks,61,Wizualizacja danych,50,
ltr
item
Polski blog Tableau - ASTRAFOX: Analiza danych sprzedażowych i tworzenie dashboardów w Tableau
Analiza danych sprzedażowych i tworzenie dashboardów w Tableau
https://1.bp.blogspot.com/-6OdbRraeyV4/Vyn3OhEq5mI/AAAAAAAAAEI/h3HCdIaTCD02FH_fuTRFzXXjWkhkoB5UACLcB/s640/graf1.png
https://1.bp.blogspot.com/-6OdbRraeyV4/Vyn3OhEq5mI/AAAAAAAAAEI/h3HCdIaTCD02FH_fuTRFzXXjWkhkoB5UACLcB/s72-c/graf1.png
Polski blog Tableau - ASTRAFOX
http://blog.tableau-software.pl/2016/05/analiza-danych-sprzedazowych-i.html
http://blog.tableau-software.pl/
http://blog.tableau-software.pl/
http://blog.tableau-software.pl/2016/05/analiza-danych-sprzedazowych-i.html
true
9139349578575077505
UTF-8
Załadowano wszytskie posty Nie znaleziono żadnych postów ZOBACZ WSZYSTKIE Czytaj więcej Odpowiedz Usuń komentarz Usuń Napisane przez Home STRONY POSTY Zobacz wszystko POLECANE ETYKIETA ARCHIWUM SZUKAJ WSZYSTKIE POSTY Nie znaleziono tematów ani postów pasujących do twoich kryteriów Powrót Niedziela Poniedziałek Wtorek Środa Czwartek Piątek Sobota Nd Pon Wt Śr Czw Pt Sob Styczeń Luty Marzec Kwiecień Maj Czewiec Lipiec Sierpień Wrzesień Październik Listopad Grudzień Styczeń Luty Marzec Kwiecień Maj Czerwiec Lipiec Sierpień Wrzesień Październik Listopad Grudzień teraz minutę temu $$1$$ minutes ago godzinę temu $$1$$ hours ago wczoraj $$1$$ days ago $$1$$ weeks ago ponad 5 tygodni temu Obserwujący Obserwuj TO JEST TREŚĆ PREMIUM Udostępnij, by odblokować Kopiuj cały kod Zaznacz cały kod Cały kod został skopiowany Nie można skopiować kodu / tekstu, naciśnij [CTRL]+[C] (or CMD+C w Mac) by skopiować