Analiza attendee rate w odniesieniu do daty rejestracji

Sebastian Wareluk

gru 27, 2018

Tableau

Analiza Danych

Koniec starego roku i początek nowego to czas podsumowań, dlatego dzisiaj pokażę Ci, jak przy pomocy Tableau stworzyć bardzo szybką i efektywną analizę wydarzeń, które były organizowane w danym okresie. Będziemy pracować w obrębie jednej zakładki, która pod koniec stanie się funkcjonalnym dashboardem.

Skąd pomysł na takie rozwiązanie? Z końcem roku w Astrafox, chcąc dopracować do perfekcji proces promocji naszych webinariów postanowiliśmy przeanalizować te sesje, które odbyły się w 2018 roku, tak by w 2019 dostarczyć Wam jeszcze więcej praktycznej wiedzy, którą będziecie mogli wykorzystać w codziennej pracy.

Dane na których będziemy dzisiaj pracować to zanonimizowane listy obecności z naszych tegorocznych wydarzeń, które na co dzień zbierane i przechowywane są w Google Sheets. Oczywiście możemy się podłączyć z Tableau bezpośrednio do tego źródła, natomiast na potrzeby anonimizacji zostały pobrane do pliku xlsx i dopiero później podłączone do Tableau.

Stworzenie podobnego raportu może być bardzo przydatne dla wszystkich, którzy zajmują się organizacją eventów.

Ze względu na to, że anonimizujemy dane w zakresie nazwisk uczestników, ich ilości i nazw organizacji, niniejsza analiza nie będzie zawierała informacji takich jak ilość eventów w których wzięła udział konkretna osoba czy osoby z danej firmy. Natomiast po przeczytaniu tego wpisu z pewnością będziesz potrafił stworzyć taką analizę choćby w postaci prostego bar charta.

Dane i ich przygotowanie do analizy w Tableau

Ok, zaczynajmy – Dane i przygotowanie. Do stworzenia raportu ilościowego wystarczające będą dla nas kolumny:

  • data rejestracji,
  • obecność,
  • nazwa wydarzenia,
  • data wydarzenia,
  • rodzaj wydarzenia.

W moim pliku dane są podzielone na dwie zakładki – pierwsze i drugie półrocze. Zaczniemy od połączenia tych dwóch tabel tworząc Union. Żeby stworzyć Union dwóch tabel, czyli połączyć je w jedną, dopisując rekordy z jednej z nich pod rekordami z drugiej, zaznaczam z wciśniętym klawiszem Ctrl obie tabele (H1 i H2) i przenoszę do obszaru opisanego ‘Drag sheets here’. W tym przypadku tabele H1 i H2 odpowiadają zakładkom w Excelu, natomiast proces ten wyglądałby identycznie w przypadku podłączenia do baz danych.

Następnie, w prawym górnym rogu ekranu w sekcji ‘Filters’ ograniczam dane do zakresów, które będą mi potrzebne. W obu kolumnach daty wybieram tylko rok 2018, a następnie przechodzę do ograniczenia kategorii naszych wydarzeń, ponieważ baza zawiera dane dotyczące nie tylko webinariów, ale również innych eventów.
Okazuje się, że napotykamy pierwszy problem – w danych mamy dwie nazwy kategorii, które powinny być ze sobą scalone. Zapamiętam tę informację, żeby za chwilę rozwiązać ten problem, a w międzyczasie dodam ostatni filtr, który będzie odnosił się do kolumny ‘Obecność’. Obecność może przybrać trzy wartości: V, X i On demand. Nie chcę w tym raporcie pokazywać odtworzeń webinariów On demand, dlatego wybieram tylko dwie pierwsze opcje.

Krótki komentarz do przygotowania danych. Na tym etapie możemy wybrać jedną z dwóch dróg – przygotować dane w Tableau Desktop (wraz z grupowaniem o którym za chwilę opowiem) lub wykonać wszystkie te czynności w Tableau Prep. Ja zdecydowałem się na użycie Tableau Desktop, aby nie sugerować Ci wykonywaniem bardzo prostych czynności w Prep, że Tableau Desktop sobie z nimi nie poradzi. Obie drogi mają swoje dobre i złe strony, w Prep zrobisz to szybciej, a w Desktop będziesz mógł łatwiej edytować filtry, cofając się do poprzedniego okna, a nie do innej aplikacji.

Dlatego też najbardziej optymalne byłoby opublikowanie danych z Prep na Tableau Server i łączenie się z Desktopa właśnie do tego źródła, ale hej, mówimy tu o budowie raportu 🙂 O obiegu danych w środowisku Tableau będzie oddzielny wpis, w którym dużo szerzej opiszę te możliwości.

Grupowanie danych w Tableau

Ostatnią czynnością z zakresu przygotowania danych będzie pogrupowanie ich w zakresie kategorii i tytułu eventu. O kategorii wspominałem już wcześniej, natomiast wiem też, że tytuły webinariów mogą zawierać pewne niespójności.

W panelu z danymi rozwijam właściwości pigułki ‘Kategoria’ i wybieram opcję grupowania.

W kolejnym oknie zaznaczam obie pozycje, klikam ‘Group’ i nadaję nazwę Grupy, która będzie wyświetlała się jako oddzielna pigułka w panelu z danymi. Jeśli nasz raport miałby zawierać dane dotyczące tylko webinariów, to ze względu na to, że inne kategorie zostały wcześniej odfiltrowane nie musielibyśmy tworzyć tej grupy. Dobrze jest mimo wszystko zachować pewien porządek w danych, ponieważ zawsze mamy możliwość powrotu do wcześniej stworzonych filtrów i dodania do analizy innych kategorii. Gdybyśmy tak zrobili nie mając stworzonej grupy, dane zaczęłyby się nam ”rozjeżdżać” na poziomie kategorii, a tego przecież nie chcemy.

 

Podobną operację powtarzam z tytułami webinariów, a następnie dodaje je do obszaru wizualizacji i edytuje ich aliasy tak, żeby maksymalnie skrócić wyświetlane nazwy. Zmieniam również nazwy pigułek w panelu danych, ponieważ za kilka chwil będą się wyświetlały również na wizualizacji, a więc już na wstępie zadbamy o pewien porządek i kosmetykę.

Założenie raportu jest takie, żeby pokazać datę webinarium, ilość rejestracji, ilość obecnych osób, czas od pierwszej rejestracji do eventu, procent obecnych vs rejestracje oraz oś czasu, która ułatwi analizę. Dodatkowo raport musi zawierać możliwość sortowania według każdej z tych miar.

Mamy już tytuły naszych eventów, dodajmy zatem datę. W tym celu przenoszę pigułkę ‘Data’ do obszaru ‘Rows’ i zmieniam jej właściwości na ‘Exact Date’ oraz formę na ‘Discrete’.

Następnie przejdziemy do wyświetlenia ilości rejestracji. W tym celu tworzę nowe pole kalkulowane, którego nazwa to ‘Ilość Rej.’, a jego treść to po prostu odniesienie do miary ‘Number of Records’. Dodaję miarę do ‘Rows’ i wyświetlam ją w formie dyskretnej.

Kolejną miarą, której nie mamy w bazie, ale z łatwością możemy stworzyć, jest ilość uczestników obecnych na webinariach. W tym celu tworzę nowe pole kalkulowane, które nazywam ‘Obecni’, a jego treść wygląda następująco:

if [OBECNOŚĆ] = ’V’ THEN [Number of Records] END

Kalkulacja zapisana w postaci nowej miary znajdzie miejsce w ‘Rows’ obok ilości rejestracji, a my przechodzimy do kolejnego zadania, którym będzie obliczenie ilości dni od pierwszej rejestracji do daty wydarzenia. Tworzymy nowe pole kalkulowane w którym skorzystamy z funkcji ‘DATEDIFF’, która pozwala nam na obliczenie czasu np. w dniach lub tygodniach pomiędzy dwiema datami. Miara ta wygląda następująco:

Ponieważ chcemy policzyć ilość dni od pierwszej rejestracji do wydarzenia, to zgodnie ze składnią, którą nam podpowiada Tableau, najpierw definiujemy w jakiej formie ma być wyświetlany wynik (‘day’), następnie data pierwszej rejestracji, a więc z agregacją ‘MIN()’, a następnie data wydarzenia. Druga data ma agregację ‘MAX()’. Nie wpływa to na wynik kalkulacji, ale jeśli agregowaliśmy pierwszy czynnik, to musimy to zrobić również z kolejnym, ponieważ inaczej Tableau nie zaakceptuje kalkulacji.

 

Miarę dodajemy do widoku tak jak poprzednie i przechodzimy do budowy ostatniego elementu, który będziemy umieszczać w ‘Rows’, czyli informacji o tym, jaki procent zarejestrowanych osób wzięło udział w danym webinarium. Ostatnia kalkulacja wygląda następująco:

SUM([Obecni])/SUM([Number of Records])

Zbuduję teraz wykres, który pozwoli łatwo porównać, ile czasu trwała rejestracja na poszczególne eventy oraz wyświetli je wszystkie na osi czasu.

Do obszaru ‘Columns’ dwukrotnie przenoszę datę wydarzenia. Pierwsza pigułka ma właściwości ‘Exact Date, Continous’, a druga ‘Day, Continous’. Rozwijając właściwości drugiej pigułki tworzę wykres Dual Axis, a następnie skalę obu osi blokuję ustawieniami ‘Fixed start: 01.01.2018’, ‘Fixed end: 31.12.2018’. Następnie ukrywam górną oś, a mój widok wygląda tak, jak na ilustracji poniżej.

Zwróć uwagę na to, że w obszarze ‘Marks’ pojawiły się nowe zakładki, których ustawienia będą odpowiadały za wygląd poszczególnych miar na naszym wykresie. Poświęcę teraz chwilę na sformatowanie tego, co już zbudowaliśmy tak, żeby nieco uatrakcyjnić wizualizację. Będę formatował głównie tekst, żeby zyskać nieco miejsca na osi czasu. Po kilku szybkich zabiegach raport wygląda tak jak poniżej:
Ok, teraz pozostaje nam wyświetlić czas rejestracji, stworzenie sortowania i finalna kosmetyka. Otwieramy środkową zakładkę w ‘Marks (Data)’ i do półeczki ‘Size’ dodajemy wcześniej stworzoną miarę, która mówi o czasie trwania rejestracji. Teraz na wykresie pojawiły się słupki obrazujące naszą miarę. Możliwość takiej wizualizacji oferuje nam wykres Gantta, który Tableau automatycznie zaproponował dla moich danych. Wizualizacja nie pokazuje jednak dokładnie tego, co chcielibyśmy uzyskać, ponieważ obecnie widzimy ilość dni od wydarzenia, a nie do wydarzenia. Żeby naprawić ten błąd, we właściwościach miary mówiącej o ilości dni w panelu ‘Marks’ wybieramy opcję ‘Edit in Shelf’ i przed wyrażeniem stawiamy minus. Po zatwierdzeniu działania sytuacja na wykresie odwróci się, a my klikając w kwadracik ‘Size’ będziemy mogli zmienić grubość wyświetlanego słupka tak, żeby wizualizacja wyglądała tak jak poniżej:

TIP: Jak stworzyć nagłówek do wizualizacji zamiast osi, którą wcześniej ukrywaliśmy? Wystarczy zbudować nowe pole kalkulowane z dowolną treścią w tym przypadku będzie to:

‘Data webinarium vs. czas trwania rejestracji’

Następnie umieszczamy to pole przed miarami. W tym przypadku w ‘Columns’ i ukrywamy ‘Header’ (Hide Field Label for Columns).

Sortowanie danych w Tableau

Pierwszy etap sortowania wykonamy przy pomocy menu ‘Sort’ we właściwościach pigułki Webinar w sekcji ‘Rows’. Chcąc posortować webinaria chronologicznie, wybieramy opcję sortowania według pola daty, rosnąco z agregacją Minimum. Proste, ale statyczne.

Idąc o krok dalej, możemy dać użytkownikowi możliwość sortowania webinariów według wybranej miary. Jak to zrobić? Tworzę parametr o następujących właściwościach, gdzie pozycje na liście odpowiadają miarom, które pokazujemy na wizualizacji:

Następnie wyświetlam panel kontrolny parametru (Show control panel). W tej chwili Tableau nie wie jeszcze co zrobić z parametrem, a więc nie zmienia on wyglądu naszej wizualizacji. Żeby go “podpiąć” pod widok tworzymy nowe pole kalkulowane, które pozwoli powiązać parametr z raportem.

 

W polu kalkulowanym wykorzystamy funkcję ‘Case’, której treść wygląda tak, jak na kolejnej ilustracji. Zrzut pokazuje również nasze pole kalkulowane osadzone w sekcji ‘Rows’. Pigułka oczywiście wyświetla wartości w formie dyskretnej, a sortowanie, które tworzy, układa nasze rekordy rosnąco. Nie jest to najlepsza opcja dla tego raportu, dlatego otwieramy właściwości pigułki, wybieramy opcję ‘Edit in Shelf’. Przed wyrażeniem dodajemy minus. Taka operacja spowoduje układanie elementów wykresu w porządku malejącym.

Ostatni krok to czysta kosmetyka. We właściwościach pigułki odznaczamy opcję ‘Show header’, co spowoduje ukrycie wartości kolumny sortującej. Formatujemy wygląd osi czasu, usuwając informację o roku (na dashboardzie umieścimy ją w tytule) i tworzymy dashboard.

Finalnie raport wygląda tak, jak na rysunku poniżej.

Teraz sam możesz zwizualizować wydarzenia tworzone przez Twoją firmę i w nadchodzącym roku poprawić strategię swoich działań.

Przygotowaliśmy dla Ciebie podsumowanie naszych webinariów w mijającym roku. Zobacz jakie przygody napotkały nas podczas nagrań, a także dowiedz się, co planujemy pokazać Wam w następnym roku!

Błędny URL filmu