Wykres Pareto w Power BI przez długi czas robiłam tak jak wszyscy: kolumny posortowane malejąco, linia narastająca na drugiej osi, do tego linia stała na 80%. Działał, ale za każdym razem miałam wrażenie, że odbiorca musi się nad nim za długo zastanawiać.
W końcu przebudowałam go w Deneb. Udział i krzywa narastająca dostały osobne miejsca, a na samej górze pojawiła się liczba, o którą w analizie Pareto chodzi najbardziej, czyli ile pozycji potrzeba, żeby dojść do 80%. Pokażę ten układ za chwilę. Najpierw krótko o tym, skąd w ogóle wzięło się to 80/20, bo historia jest ciekawsza, niż się wydaje.
Table of Contents
Skąd się wzięła zasada 80/20
Vilfredo Pareto był włoskim ekonomistą, który pod koniec XIX wieku przyglądał się rozkładowi majątku. Wyszło mu, że mniej więcej 80% ziemi we Włoszech należy do około 20% ludzi. Krąży też historia, że to samo zauważył we własnym ogrodzie, gdzie 20% strąków grochu dawało 80% ziaren. Brzmi uroczo, ale nikt tego porządnie nie udokumentował, więc traktuję to jako anegdotę.
Sam wykres i nazwa „zasada Pareto” pojawiły się dużo później, za sprawą Josepha Jurana, specjalisty od zarządzania jakością. Juran widział w fabrykach to samo, co Pareto w danych o majątku: większość wad brała się z kilku przyczyn. Nazwał je „vital few”. Najzabawniejsze jest to, że po latach sam przyznał, że podpięcie tej idei pod nazwisko Pareta było jego uproszczeniem. Pareto nigdy nie zajmował się jakością produkcji. Nazwa jednak się przyjęła i została z nami do dziś.
Jedna rzecz, o której warto pamiętać: 80/20 to tylko skrót myślowy. W prawdziwych danych równie dobrze wyjdzie 90/10 albo coś znacznie bardziej płaskiego. Za chwilę pokażę przykład, w którym właśnie tak jest.
Co mi przeszkadza w klasycznym wykresie Pareto w Power BI
Power BI nie ma osobnego typu wykresu Pareto, więc zwykle składa się go z wykresu kombinowanego. Kolumny pokazują wartości, linia pokazuje procent skumulowany, a każda z nich ma swoją oś. I tu zaczyna się problem. Lewa oś pokazuje wartości sprzedaży, prawa procenty, a linia biegnie po słupkach, więc przy większej liczbie pozycji etykiety zaczynają na siebie wchodzić.
Próg 80% też nie rzuca się w oczy. Owszem, można dorzucić linię stałą, ale żeby odczytać, która pozycja go przekracza, trzeba prowadzić wzrok od linii w dół do osi. Do tego dochodzą długie nazwy produktów, które Power BI obraca albo ucina. Wykres, który miał szybko wskazać priorytety, wymaga od odbiorcy sporo pracy.
Mój wykres Pareto w Power BI zbudowany w Deneb

Zaczęłam od pytania, co odbiorca chce wiedzieć jako pierwsze. Zwykle nie interesuje go, ile dokładnie ma piąty produkt. Chce wiedzieć, ile pozycji odpowiada za większość sprzedaży. Dlatego ta liczba trafiła na górę, w kartę KPI, i jest wyróżniona kolorem: tutaj to 7 z 10. Obok są jeszcze lider (Basic Membrane Keyboard), jego udział (14,3%) i wartość łączna (3 047 258), żeby było wiadomo, o jakiej skali mówimy.
Pod kartami wykres dzieli się na dwie części. Po lewej są poziome słupki z rankingiem i udziałem każdej pozycji. Poziome, bo wtedy długie nazwy produktów mieszczą się w całości i nic nie trzeba obracać. Pozycje, które składają się na pierwsze 80%, są niebieskie, a reszta jest wyszarzona. Podział widać, zanim przeczyta się jakąkolwiek liczbę.
Po prawej jest krzywa narastająca, ale w osobnej kolumnie, a nie nałożona na słupki. Przerywana linia oznacza próg 80%, a punkt, w którym krzywa go przekracza, ma pomarańczowy pierścień. To jest dla mnie najważniejszy element całego wykresu, bo dokładnie w tym miejscu kończy się grupa pozycji, na których warto się skupić. Wartości za progiem są wyszarzone tak samo jak słupki po lewej. Obie części mają te same wiersze, więc łatwo przejść wzrokiem od udziału produktu do jego miejsca na krzywej.
Dlaczego Deneb, a nie kolejne miary DAX
Większość poradników o wykresie Pareto w Power BI zaczyna się od DAX: miara udziału, miara rankingu, suma narastająca, a potem jeszcze kombinowanie z remisami. Da się, tylko że model zapełnia się miarami, które istnieją wyłącznie po to, żeby obsłużyć jeden wizual.
W Deneb wystarczy mi jedna zwykła miara, np. suma sprzedaży, i kolumna z nazwą produktu. Udział, ranking i sumę narastającą liczy już sam wizual w specyfikacji Vega-Lite. Najwięcej myślenia wymagała flaga progu. Pozycja trafia do grupy „do 80%”, jeśli suma narastająca przed nią była poniżej 80%. Gdybym porównywała sumę razem z tą pozycją, siódmy produkt wypadłby z grupy, a to przecież on domyka próg.
Tak wygląda ta część mojego specu (skrót, bez czyszczenia danych i pozycjonowania elementów):
"transform": [
{ "joinaggregate": [
{ "op": "sum", "field": "_val", "as": "TotalValue" },
{ "op": "count", "field": "_cat", "as": "TotalCategories" }
]},
{ "calculate": "datum._val / datum.TotalValue", "as": "Share0" },
{
"window": [
{ "op": "row_number", "as": "Rank0" },
{ "op": "sum", "field": "Share0", "as": "CumShare0" }
],
"sort": [{ "field": "_val", "order": "descending" }]
},
{ "calculate": "datum.CumShare0 - datum.Share0", "as": "Prev0" },
{ "calculate": "datum.Prev0 < 0.8 ? 1 : 0", "as": "Top80_0" },
{ "joinaggregate": [{ "op": "sum", "field": "Top80_0", "as": "CatsTo80" }] },
{ "calculate": "datum.CatsTo80 + ' z ' + datum.TotalCategories", "as": "TopNLabel" }
]
Deneb dostaje dane już po filtrach raportu, więc gdy ktoś wybierze inny region albo miesiąc, cały układ przelicza się sam, razem z kartą „7 z 10”. A ponieważ spec nie zależy od konkretnego modelu, mogę go przenieść do innego raportu i podpiąć inną miarę oraz inną kategorię.
Co pokazuje ten przykład
Tu nie ma żadnego 80/20. Szósta pozycja kończy na 79%, więc dopiero siódma przekracza próg i zamyka grupę na 85%. Żeby dojść do 80% sprzedaży, potrzeba aż 7 z 10 produktów.
I to też jest dobry wniosek. Sześć pierwszych pozycji ma bardzo podobne udziały, od 11,8% do 14,3%, więc sprzedaż nie wisi na jednym produkcie. Jeśli lider nagle spadnie, wynik całości to przetrwa. Ciekawsze pytanie dotyczy trzech ostatnich pozycji, które razem dają około 15%. Czy ich utrzymanie się opłaca? Tego wykres nie powie, ale dobrze pokazuje, od czego zacząć rozmowę.
Dlatego nie traktuję wykresu Pareto jako sposobu na udowodnienie reguły 80/20. Dla mnie to po prostu najszybszy sposób, żeby zobaczyć, jak naprawdę rozkłada się wartość.
Gdzie jeszcze przyda się analiza Pareto
Sprzedaż to najbardziej oczywisty przykład, ale ten sam układ sprawdzi się wszędzie, gdzie szukasz kilku pozycji, które robią większość roboty.
W magazynie to klasyczna analiza ABC. Indeksy z grupy A odpowiadają za większość rotacji, więc stawia się je najbliżej strefy kompletacji. W Deneb wystarczy dodać drugi próg, np. 95%, i z dwóch grup robią się trzy.
W obsłudze klienta zwykle kilka typów zgłoszeń generuje większość ticketów. To zresztą najbliższe temu, czym zajmował się Juran: zamiast gasić wszystkie pożary naraz, zaczynasz od tych, które wracają najczęściej.
Podobnie jest z należnościami i zakupami. Na liście przeterminowanych faktur kilku kontrahentów potrafi odpowiadać za większość zaległej kwoty, a w wydatkach kilku dostawców skupia większość budżetu. W obu przypadkach wykres od razu pokazuje, od kogo zacząć.
FAQ: wykres Pareto w Power BI
Czy w Power BI jest gotowy wykres Pareto?
Nie ma. Najczęściej składa się go z wykresu kombinowanego i kilku miar DAX albo buduje w custom visualu, takim jak Deneb.
Czy do wykresu Pareto w Deneb potrzebny jest DAX?
Tylko jedna podstawowa miara, np. suma sprzedaży. Udział, ranking, suma narastająca i próg są liczone w specyfikacji Vega-Lite.
Czym różni się analiza Pareto od analizy ABC?
Pareto dzieli pozycje na dwie grupy: te do progu i resztę. ABC ma dwa progi, np. 80% i 95%, więc grupy są trzy.
Czy zasada 80/20 zawsze się sprawdza?
Nie. W tym wpisie wyszło 7 z 10 pozycji na 85% i to jest zupełnie normalny wynik.
Czy wykres reaguje na fragmentatory?
Tak. Deneb dostaje dane po filtrach, więc wszystko przelicza się dla wybranego zakresu.
Na koniec
Wykres Pareto nie musi mieć dwóch osi i linii przeciskającej się między słupkami. Wystarczy rozdzielić udział od krzywej narastającej, wyciągnąć na górę liczbę pozycji do progu i wyraźnie zaznaczyć miejsce, w którym ten próg pada.
Jeśli chcesz sprawdzić ten układ na swoich danych, szablon Deneb znajdziesz:
Podepnij własną miarę i kategorię, a jeśli zrobisz z niego analizę ABC albo raport reklamacji, napisz w komentarzu, co Ci wyszło. Chętnie zobaczę.

