Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
W skrócieProjekt końcowy kursu to pulpit zarządu Nordvelli złożony z tego, czego nauczyłeś się w 27 lekcjach. Porządkujemy plik do sześciu stron dla zarządu, ukrywamy strony ćwiczeń, liczymy realizację budżetu do dnia sprzedaży, dodajemy stronę zwrotów, foldery miar i drążenie do sklepu, a na koniec sprawdzamy rolę.
Lekcja 28 z 28 bezpłatnego kursu Power BI, od pierwszego raportu do Fabric i Copilota, na jednym zestawie danych sieci Nordvella.
<-- Spis wszystkich lekcjiDwadzieścia siedem rozdziałów za Tobą: dane Nordvelli w Power Query, model w gwiazdę, miary DAX, wizualizacje, motyw, role, publikacja, potok wdrażania i układ na telefon. W pliku z lekcji 27 jest tego dużo, za dużo dla zarządu: 23 strony, w tym strony ćwiczeń, i 75 miar na jednej długiej liście.
W tym rozdziale robimy z niego raport do oddania. Zostawiamy sześć stron, każdą pod jedno pytanie zarządu, dokładamy dwie brakujące (realizację budżetu i zwroty), porządkujemy miary w folderach i sprawdzamy, co zobaczy kierownik sklepu z rolą. Po drodze znajdziemy w naszym własnym raporcie błąd, który siedzi w wielu firmowych pulpitach: realizację budżetu liczoną wobec budżetu całego roku. Każdy krok nagraliśmy w Power BI Desktop, a liczby sprawdziliśmy zapytaniem DAX.
Z tej lekcji dowiesz się:
Pliki do tej lekcji
Gotowy efekt: plik Power BI Desktop w stanie z końca tej lekcji, z tymi samymi zapytaniami, modelem i stronami raportu, które widać na zrzutach. Parametr SciezkaPliku ma w nim wartość C:\Kurs_PBI\Nordvella_dane.xlsx. Jeśli arkusz trzymasz w innym folderze, zmień ją w Przekształć dane, Zarządzaj parametrami.
Pobierz nordvella_28_projekt_koncowy.pbix
Plik startowy: stan z końca poprzedniej lekcji. Otwórz go, jeśli chcesz wykonywać kroki tej lekcji od razu, bez odtwarzania wcześniejszych.
Pobierz nordvella_27_mobile.pbix
Dane źródłowe:
Nordvella_
Co chcemy osiągnąć. Raport, w którym każda widoczna strona odpowiada na jedno pytanie zarządu, a nic poza tym nie przeszkadza.
Zarząd sieci sklepów zadaje kilka powtarzalnych pytań: gdzie sprzedajemy najwięcej, czy idziemy zgodnie z budżetem, ile tracimy na zwrotach, co się stanie, jeśli damy rabat, i co się dzieje w konkretnym sklepie. Infografika na początku rozdziału przypisuje każdemu pytaniu jedną stronę. Tę listę warto zapisać przed pierwszym kliknięciem: wizualizacja, która nie odpowiada na żadne pytanie, nie trafia na widoczną stronę.
Startujemy z pliku z końca lekcji 27 (przycisk w ramce Pliki do tej lekcji). Otwórz go i od razu zapisz kopię pod nową nazwą, na przykład nordvella_
Co chcemy osiągnąć. Odbiorca widzi Przegląd, Dashboard, Realizację budżetu, Zwroty, Rabat i Scenariusz cen. Strony ćwiczeń zostają w pliku, ale znikają z widoku.
Plik z lekcji 27 ma 23 strony. Część to strony ćwiczeń z lekcji o DAX (CALCULATE, iteratory, inteligencja czasu), część to robocze Strona 1 do Strona 9. Nie kasujemy ich: miary i wizualizacje z tych stron przydają się, gdy wracasz do lekcji. Ukrywamy je, a dwóm stronom co-jeśli z lekcji 10 nadajemy nazwy, które coś mówią.
Nawigator stron na Przeglądzie (lekcja 11) sam z siebie tego nie wie. Po ukryciu stron pokazał u nas 17 przycisków, w tym ukryte Strona 4 do Strona 6 i strony DAX, a nie pokazał Rabatu ani Scenariusza cen. Dwa powody: przełącznik Pokaż ukryte strony był u nas włączony, a Strona 7 i Strona 8 zostały kiedyś wyłączone na liście Pokaż.
Wskazówka: ukrycie strony nie jest zabezpieczeniem. Kto dostanie plik .pbix albo uprawnienia do edycji w usłudze, zobaczy wszystkie strony. Dane przed konkretnymi osobami chronią role z lekcji 21, nie ukrywanie stron.
Co chcemy osiągnąć. Strona, na której zarząd od razu widzi, czy sieć dowozi budżet, i liczba, której można wierzyć także w trakcie roku.
Karta realizacji pokazuje 86,3 procent. Wygląda na to, że sieć jest 14 punktów pod budżetem. Wykres mówi co innego: linia sprzedaży przez cały okres idzie tuż pod linią budżetu. Wyjaśnienie widać po prawej stronie wykresu. Sprzedaż w danych Nordvelli kończy się 31.05.2026, a budżet jest rozpisany do grudnia 2026. Miara Realizacja budżetu % dzieli sprzedaż z 53 miesięcy przez budżet z 60 miesięcy. Siedem miesięcy budżetu, na które sprzedaż jeszcze nie mogła powstać, ściąga wynik w dół.
Zobacz też: Szkolenie Power BI - Desktop, DAX i Online + Copilot
Poprawka to druga miara budżetu: budżet tylko do dnia ostatniej sprzedaży. Utwórz ją w tabeli FaktBudzet (Narzędzia główne, Nowa miara):
Budżet do ostatniej sprzedaży =
VAR OstatniaSprzedaz =
CALCULATE ( MAX ( FaktSprzedaz[DataID] ), REMOVEFILTERS ( DimKalendarz ) )
RETURN
CALCULATE (
[Budżet sprzedaży],
KEEPFILTERS ( DimKalendarz[DataID] <= OstatniaSprzedaz )
)
Zmienna OstatniaSprzedaz to najpóźniejszy DataID w tabeli sprzedaży, liczony bez filtra kalendarza (REMOVEFILTERS ( DimKalendarz )), czyli 20260531 niezależnie od tego, jaki rok wybierzesz we fragmentatorze. Potem CALCULATE liczy budżet tylko z dni, które nie są późniejsze. KEEPFILTERS zostawia filtr z fragmentatora albo z osi wykresu w mocy, więc dla roku 2024 miara zwraca budżet 2024, a nie budżet od początku danych do maja 2026. Ten sam wzorzec, filtr dokładany do istniejącego, poznałeś w lekcji 14. Budżet Nordvelli jest miesięczny (DataID pierwszego dnia miesiąca), więc maj 2026 wchodzi w całości.
Druga miara to zwykłe dzielenie:
Realizacja budżetu do daty % =
DIVIDE ( [Łączna sprzedaż], [Budżet do ostatniej sprzedaży] )
Wstaw ją do czwartej karty. Ustaw jej format procentowy z jednym miejscem po przecinku, a mierze Budżet do ostatniej sprzedaży format waluty jak w Budżecie sprzedaży (karta Narzędzia miary, Format).
Najmocniej różnicę widać po wybraniu we fragmentatorze roku 2026. Sprzedaż to 50 mln zł, budżet całego roku 116 mln zł, więc zwykła realizacja spada do 43,3 procent. Realizacja do daty pokazuje 98,3 procent. Wykres tłumaczy to bez słów: czerwona linia sprzedaży kończy się w maju, czarna linia budżetu idzie dalej do grudnia.
Którą miarę pokazać zarządowi? Obie, podpisane wprost. Realizacja budżetu % w jednym roku odpowiada na pytanie, ile rocznego planu już zrobiliśmy: w maju 43 procent to nie jest katastrofa, tylko pięć miesięcy z dwunastu. Realizacja budżetu do daty % odpowiada na pytanie, czy idziemy zgodnie z planem. Bez wybranego roku pierwsza miara miesza lata pełne z niepełnym i nie odpowiada na żadne z tych pytań.
Liczby z kart sprawdź w widoku zapytania DAX (ikona po lewej stronie okna Desktopu). Zapytanie liczy obie realizacje rok po roku:
// Realizacja budżetu w każdym roku: całego budżetu i do dnia ostatniej sprzedaży
EVALUATE
ADDCOLUMNS (
VALUES ( DimKalendarz[Rok] ),
"Sprzedaż", [Łączna sprzedaż],
"Budżet", [Budżet sprzedaży],
"Budżet do daty", [Budżet do ostatniej sprzedaży],
"Realizacja", [Realizacja budżetu %],
"Realizacja do daty", [Realizacja budżetu do daty %]
)
ORDER BY DimKalendarz[Rok]
| Rok | Sprzedaż | Budżet | Budżet do daty | Realizacja | Do daty |
|---|---|---|---|---|---|
| 2022 | 83 351 894,30 zł | 84 897 978,84 zł | 84 897 978,84 zł | 98,2% | 98,2% |
| 2023 | 94 204 340,25 zł | 96 195 401,39 zł | 96 195 401,39 zł | 97,9% | 97,9% |
| 2024 | 113 091 001,24 zł | 115 189 442,92 zł | 115 189 442,92 zł | 98,2% | 98,2% |
| 2025 | 126 734 270,47 zł | 129 209 118,49 zł | 129 209 118,49 zł | 98,1% | 98,1% |
| 2026 | 50 393 502,91 zł | 116 425 247,76 zł | 51 290 755,26 zł | 43,3% | 98,3% |
| Razem | 467 775 009,17 zł | 541 917 189,40 zł | 476 782 696,90 zł | 86,3% | 98,1% |
W latach pełnych obie miary są równe, bo budżet do daty to cały budżet roku. Różnią się tylko w roku bieżącym i w sumie. Sprawdzenie arytmetyki: 467 775 009,17 / 541 917 189,40 = 0,863, a 467 775 009,17 / 476 782 696,90 = 0,981.
Co chcemy osiągnąć. Kolory realizacji na Dashboardzie mówią, które miasta naprawdę są pod budżetem.
Tabela na stronie Dashboard ma kolumnę Realizacja budżetu % i tło według miary Kolor realizacji budżetu z lekcji 12: zielony od 100 procent, żółty od 90, czerwony poniżej. Ma ten sam mianownik co karta z poprzedniego rozdziału. Efekt: ani jedno miasto nie jest zielone, Łódź ma 73,3 procent, a suma 86,3 procent.
Kolor realizacji budżetu =
VAR Realizacja = [Realizacja budżetu do daty %]
RETURN
SWITCH (
TRUE (),
ISBLANK ( Realizacja ), "#F0F0F0",
Realizacja >= 1, "#D5F0DC",
Realizacja >= 0.9, "#FCF3CF",
"#F7D4CC"
)
Bez trzeciego kroku liczba i kolor rozjechałyby się: kolumna pokazywałaby 101,1 procent dla Warszawy, a tło nadal byłoby czerwone, policzone ze starej miary.
| Miasto | Realizacja % | Do daty % | Kolor po poprawce |
|---|---|---|---|
| Szczecin | 95,4% | 109,5% | zielony |
| Lublin | 92,5% | 106,3% | zielony |
| Wrocław | 88,8% | 101,4% | zielony |
| Warszawa | 88,6% | 101,1% | zielony |
| Gdańsk | 86,9% | 98,8% | żółty |
| Kraków | 86,1% | 97,8% | żółty |
| Katowice | 84,6% | 95,9% | żółty |
| Bydgoszcz | 82,0% | 92,2% | żółty |
| Białystok | 80,0% | 89,8% | czerwony |
| Poznań | 75,7% | 84,6% | czerwony |
| Łódź | 73,3% | 81,6% | czerwony |
Kolejność miast jest w obu kolumnach taka sama, zmienia się wniosek. Przed poprawką rozmowa w zarządzie dotyczyłaby całej sieci pod budżetem, po poprawce trzech miast: Łodzi, Poznania i Białegostoku.
Co chcemy osiągnąć. Odpowiedź na pytanie, ile tracimy na zwrotach i z jakiego powodu klienci oddają towar.
Tabela FaktZwroty jest w modelu od dawna, a w lekcji 27 Copilot pomógł nam napisać miarę Sprzedaż netto po zwrotach. Brakuje trzech prostych miar. Utwórz je w tabeli FaktSprzedaz, każdą osobno przez Nowa miara:
Liczba zwrotów = COUNTROWS ( FaktZwroty )
Wartość zwrotów = ABS ( SUM ( FaktZwroty[WartoscZwrotu] ) )
Współczynnik zwrotów % = DIVIDE ( [Liczba zwrotów], [Liczba transakcji] )
Kolumna WartoscZwrotu jest w danych zapisana ze znakiem minus, dlatego ABS: na karcie zwrot ma być kwotą dodatnią. Współczynnik dzieli liczbę zwrotów przez liczbę transakcji sprzedaży. Formaty: liczba zwrotów #,0, wartość waluta, współczynnik procent z jednym miejscem po przecinku.
Arytmetyka: 2 714 / 108 675 transakcji = 0,025, czyli 2,5 procent. 467 775 009,17 zł sprzedaży minus 14 022 095,44 zł zwrotów to 453 752 913,73 zł, na karcie zaokrąglone do 454 mln zł. Trzy najczęstsze powody (Nie spełnia oczekiwań 666, Uszkodzenie fabryczne 454, Zamówiono pomyłkowo 356) to razem 1 476 zwrotów, ponad połowa wszystkich. Fragmentator roku działa tu tak samo jak na stronie budżetu, przez relację FaktZwroty[DataZwrotu] z kalendarzem.
Co chcemy osiągnąć. Panel Dane, w którym osoba po Tobie znajdzie miarę w kilka sekund.
Model ma teraz 80 miar (75 z lekcji 27 i pięć nowych z tego rozdziału): 52 miary raportu i 28 miar ćwiczeniowych z lekcji o DAX, w tym celowo błędne pary do porównań. Wszystkie są w panelu Dane na jednej liście alfabetycznej. Folder wyświetlania grupuje je bez zmiany nazw i bez wpływu na wizualizacje.
| Folder | Miar | Przykłady |
|---|---|---|
| 01 Sprzedaż | 9 | Łączna sprzedaż, Liczba transakcji, Sprzedaż netto po zwrotach |
| 02 Marża | 6 | Marża %, Łączna marża, Marża po zwrotach % |
| 03 Budżet | 8 | Budżet sprzedaży, Realizacja budżetu %, Realizacja budżetu do daty % |
| 04 Zwroty | 6 | Liczba zwrotów, Wartość zwrotów, Współczynnik zwrotów % |
| 05 Klienci | 2 | Średnia ocena, Wskaźnik NPS |
| 06 Czas | 12 | Sprzedaż YTD, Zmiana r/r %, Średnia krocząca 3M |
| 07 Scenariusze | 6 | Kwota rabatu, Sprzedaż po rabacie, Prognoza przychodu |
| 08 Tytuły | 3 | Tytuł wykresu, Tytuł szczegółów, Segment Sklepu |
| 99 Ćwiczenia | 28 | miary porównawcze i robocze z lekcji o DAX |
Dwie zasady wyszły z praktyki. Numeruj dwucyfrowo: przy numerach jednocyfrowych folder 10 stanie w kolejności alfabetycznej przed folderem 2. Trzymaj nazwy krótkie: panel Dane ucina je po kilkunastu znakach, a jego szerokości u nas nie dało się zmienić. Pierwsza wersja folderów, 08 Tytuły i nawigacja oraz 99 Ćwiczenia z kursu, wyświetlała się z wielokropkiem.
Wskazówka: folder działa w obrębie jednej tabeli. Miara budżetu założona w tabeli FaktSprzedaz nie trafi do folderu 03 Budżet w tabeli FaktBudzet, tylko do folderu o tej samej nazwie w FaktSprzedaz. Dlatego nowe miary budżetu tworzymy w FaktBudzet.
Co chcemy osiągnąć. Dwie strony, na których zarząd sam sprawdza skutki decyzji cenowej, bez dzwonienia do analityka.
Obie strony powstały w lekcji 10 z parametrów co-jeśli. W projekcie zmieniły tylko nazwy i miejsce na liście. Na stronie Rabat suwak Rabat proc ustawiony na 15 procent daje sprzedaż po rabacie 398 mln zł i kwotę rabatu 70 mln zł (467,8 mln zł razy 0,15 to 70,2 mln zł). Karta oceny scenariusza ostrzega: marża pod 5 procent. Wykres marży po rabacie pokazuje, skąd to ostrzeżenie: komputery i telefony schodzą poniżej zera.
Scenariusz cen łączy zmianę ceny z elastycznością popytu. Przy podwyżce o 10 procent i elastyczności minus 2 sprzedaż ilościowa spada o 20 procent, więc prognoza przychodu to 467,8 mln zł razy 1,1 razy 0,8, czyli 411,6 mln zł (na karcie 412 mln zł). Wykres po prawej liczy marżę jednostkową wybranego produktu dla cen testowych od 2 000 do 6 000 zł.
Co chcemy osiągnąć. Odbiorca dochodzi do jednego sklepu z tabeli na Przeglądzie, a w spisie stron widzi tylko sześć pozycji.
Strona Szczegóły sklepu z lekcji 11 jest ukryta, ale działa: ma pole drążenia DimSklepy[Nazwa]. Opcja przejścia pojawia się tylko na wizualizacjach, które mają to pole. Na wykresie miast prawy przycisk pokazuje menu bez pozycji Drąż wskroś, bo wykres ma tylko kolumnę Miasto.
Sklep w Katowicach ma ocenę klientów wyższą od średniej sieci (4,46 wobec 4,08) i NPS niższy od sieciowego (30,78 wobec 31,44). Przycisk w lewym górnym rogu wraca na stronę, z której przyszedłeś. W Desktopie kliknij go z klawiszem Ctrl, w usłudze Power BI wystarczy zwykłe kliknięcie.
Co chcemy osiągnąć. Pewność, że role z lekcji 21 działają także na nowych stronach i na nowych miarach.
Nowe strony i miary nie dostają osobnych uprawnień: działają na nich te same role. Warto to zobaczyć, zanim raport trafi do odbiorców, bo na stronie budżetu jest teraz miara z REMOVEFILTERS.
Sprzedaż spada do 223 mln zł (dokładnie 222 818 294,93 zł), budżet do 252 mln zł, realizacja do daty to 101,1 procent, ta sama liczba co w wierszu Warszawy na Dashboardzie. REMOVEFILTERS ( DimKalendarz ) zdejmuje tylko filtr kalendarza, a filtra roli nie zdejmuje nic: rola działa na poziomie wierszy, zanim miara zacznie liczyć. Na koniec kliknij Zatrzymaj wyświetlanie po prawej stronie paska.
Osiem punktów, które sprawdzamy w każdym raporcie przed wysłaniem linku. Ostatni łatwo przeoczyć: plik otwiera się na stronie, która była aktywna przy zapisie, więc przed ostatnim zapisem przejdź na Przegląd.
Gotowy plik zapisz, opublikuj w obszarze roboczym tak jak w lekcji 23 i przenieś potokiem na produkcję jak w lekcji 26. Plik z końca tego rozdziału jest w ramce Pliki do tej lekcji.
Masz raport, który przeszedł całą drogę: od arkusza Excel, przez Power Query, model i DAX, po role, publikację, potok i telefon. Najlepsze ćwiczenie to ta sama droga na danych z Twojej firmy. Zacznij od listy pytań, nie od wizualizacji, i wracaj do lekcji, gdy dojdziesz do danego etapu. Wszystkie są w spisie kursu.
Komentarze (0)
Brak komentarzy...