W artykule opiszę jak dodać do tabeli funkcjonalność „pokaż
top N oraz zwiń pozostałe”. Efektem finalnym będzie niewielka, dynamicznie
zmieniająca się w zależności od wybranego parametru tabela.
Przykład jest opracowany na źródle danych „Superstore
Subset”, standardowo dołączonym do
Tableau Desktop. Dlatego zachęcam do samodzielnego odtworzenia przygotowanej
tabeli.
Punktem wyjściowym jest długa, nieuporządkowana lista
klientów wraz z przyporządkowaną im wartością sprzedaży.
Po posortowaniu oraz ponumerowaniu klientów jest lepiej, ale
to jeszcze nie koniec.
Dla osób początkujących wskazówki dotyczące:
1)
Sortowania
2)
Kalkulacji rankingującej
Create calculated field:
rank(sum([Sales]))
Przejdźmy do kluczowych elementów widoku. Dodajemy parametr aby
tabela była interaktywna, czyli dająca odbiorcy możliwość wyboru ilu top
klientów chce zobaczyć.
Aby parametr był widoczny wybieramy opcję „Show Parameter
Control”. Wybrałam typ parametru „Type In”, który dobrze sprawdza się przy
licznych wartościach paramertu (w naszym przypadku 100 liczb).
Kolejnym krokiem jest utworzenie zestawu (Create Set...) na
wymiarze Customer Name i uzależnienie go od nowo utworzonego parametru oraz
miary Sales.
Teraz możemy dodać do tabeli (do wierszy) nowo utworzony
zestaw Customer Name condensed.
Jeśli pracujemy na danych live tabela będzie zawierała tylko
wartości top. Aby uzyskać podział na wartości top oraz pozostałe, czyli IN oraz
OUT trzeba zrobić ekstrakt.
Jeśli pracujemy na ekstrakcie uzyskamy taki wygląd tabeli:
Pozostaje nam tylko „zwinąć” wartości OUT. W tym celu
wystarczy utworzyć następujące pole kalkulowane:
if [Customer Name condensed] = false then "Others"
else [Customer Name]
end
Formuła znaczy tyle, co: jeśli wartości nie znajdują się w
zestawie ([Customer Name condensed] = false), czyli są OUT pokazuj tekst „Others”,
jeśli są w zestawie (IN) pokazuj nazwy klientów.
Po zamianie wymiaru Customer Name na nowo utworzone pole
kalkulowane Customer Name condense otrzymamy taką tabelę:
Możemy ukryć „In/Out..” oraz „rank” i na tym poprzestać.
Jednak ja pozostawiłam „rank” widoczny i wprowadziłam jeszcze drobne zmiany –
zmodyfikowałam kalkulację rank i pokolorowałam wartość sprzedaży.
1) Zmodyfikowana
kalkulacja rank:
if str(rank(sum([Sales]))-1) =
"0" then ""
else str(rank(sum([Sales]))-1)
end
2)
Kolorowanie uzyskamy przez dodanie miary Sales
do kontrolki Color oraz zminę typu Marks na opcję Square
Rozwiązanie jest opublikowane na Tableau Public (parametr zmienia się po nadpisaniu nowej liczby całkowitej z zakresu od 1 do 100) :
KOMENTARZE