Blog JSystems - uwalniamy wiedzę!

Szukaj
Schemat parametru co-jeśli w Power BI: tabela zakresu wartości, fragmentator wyboru i miara przeliczająca wynik
Anatomia parametru co-jeśli: tabela zakresu (rabat od 0 do 30 procent) zasila fragmentator, a miara odczytuje wybraną wartość i przelicza sprzedaż. Zmieniasz suwak, przelicza się cały wykres.

W skrócieAnaliza co-jeśli (what-if) to symulacja scenariuszy: suwak zmienia założenie, a raport przelicza wynik na żywo. Na 108 675 transakcjach Nordvelli budujemy parametry rabatu, marży i podwyżki z GENERATESERIES, wpinamy je do wizualizacji i poznajemy parametry pól, które przełączają miary i wymiary.

Lekcja 10 z 28 bezpłatnego kursu Power BI, od pierwszego raportu do Fabric i Copilota, na jednym zestawie danych sieci Nordvella.

<-- Spis wszystkich lekcji
<-- Lekcja 9: Wizualizacje zaawansowane, mapa i custom visualsLekcja 11: Drill-through, zakładki i nawigacja w raporcie -->

Zarząd Nordvella S.A. pyta na spotkaniu: co się stanie z marżą, jeśli dorzucimy 12 procent rabatu na cały asortyment przed świętami? A jeśli 8, a jeśli 20? Do tej pory odpowiedzią był Excel z ręcznie wpisaną liczbą i kolejny plik, i jeszcze jeden. W Power BI odpowiadasz na to jednym suwakiem, a wykres przelicza się na żywo na wszystkich 108 675 transakcjach Nordvelli. To właśnie jest analiza co-jeśli (po angielsku what-if, czyli symulacja scenariuszy), i w tym rozdziale zbudujesz ją od zera.

Pokażemy dwa różne mechanizmy, które często się mylą: parametr co-jeśli (podaje liczbę do obliczeń, na przykład wysokość rabatu) oraz parametry pól (po angielsku field parameters, pozwalają użytkownikowi przełączać, którą miarę albo które pole widać na wykresie). Na koniec złożysz z nich realne scenariusze biznesowe Nordvelli: widełki cen produktu, prognozę sprzedaży i pulpit z przełącznikiem perspektyw.

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.

Pobierz nordvella_10_parametry.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_09_wiz_zaawansowane.pbix

Dane źródłowe:
Nordvella_dane.xlsx - dziewięć tabel Nordvelli w arkuszu Excel.
Nordvella.bak.gz - te same dane jako baza MS SQL Server (odtwarzasz poleceniem RESTORE DATABASE), do ćwiczeń z połączeniem z bazą SQL.

Pobierz Nordvella_dane.xlsxPobierz Nordvella.bak.gz

Czym jest analiza co-jeśli i po co jej parametr

Co chcemy osiągnąć. Zarząd Nordvelli przed świątecznymi promocjami pyta, co stanie się ze sprzedażą i marżą przy danym rabacie albo zmianie ceny. Chcemy zrozumieć mechanizm, który pozwala odpowiadać na takie pytania suwakiem w raporcie, zamiast liczyć każdy wariant osobno.

Analiza co-jeśli to odpowiedź na pytanie zaczynające się od słowa "gdyby". Gdyby cena wzrosła o 10 procent, ile stracimy na wolumenie? Gdyby rabat wyniósł 15 procent, czy marża jeszcze się broni? W klasycznym raporcie liczby są zamrożone: pokazujesz to, co już się wydarzyło. W raporcie z parametrem co-jeśli dokładasz jedną ruchomą liczbę, którą użytkownik ustawia sam, a cały model natychmiast przelicza wynik pod ten scenariusz.

Parametr co-jeśli składa się z trzech elementów, które warto zapamiętać, bo do nich będziemy wracać. Po pierwsze, tabela zakresu, czyli lista wszystkich dozwolonych wartości (na przykład rabat od 0 do 30 procent co 1 punkt). Po drugie, fragmentator (po angielsku slicer, czyli filtr do klikania na stronie raportu), którym użytkownik wybiera jedną wartość z tej tabeli. Po trzecie, miara odczytująca wybór, która bierze klikniętą liczbę i wstawia ją do Twoich obliczeń.

Różnica względem zwykłego filtra: parametr co-jeśli nie filtruje danych, tylko podaje liczbę do wzoru. Filtr wyrzuca wiersze z tabeli. Parametr zostawia wszystkie 108 675 transakcji Nordvelli i tylko zmienia liczbę użytą w obliczeniu. Dlatego suma sprzedaży bazowej nie znika, a obok niej możesz pokazać sumę po rabacie i różnicę między nimi.

Zwykły fragmentator Rok w Power BI bez zaznaczenia, karty pokazują 468 mln zł sprzedaży, dla porównania z parametrem co-jeśli
Dla porównania zwykły fragmentator Rok na pulpicie Nordvelli. Nic nie jest zaznaczone, więc karty liczą wszystkie dane: 468 mln zł sprzedaży i 109 tys. transakcji.
Pulpit Power BI zawężony fragmentatorem do roku 2025: sprzedaż 127 mln zł i 30 tys. transakcji zamiast wszystkich danych
Po zaznaczeniu 2025 fragmentator wyrzuca wiersze pozostałych lat: sprzedaż spada do 127 mln zł, a liczba transakcji do 30 tys. Parametr co-jeśli tak nie działa, zostawia wszystkie wiersze.

Wskazówka: parametr co-jeśli to symulacja, a nie prognoza z modelu statystycznego. Jeśli dasz rabat 20 procent, Power BI po prostu przemnoży sprzedaż przez 0,8. Nie zakłada, że niższa cena podniesie wolumen. Reakcję popytu musisz oszacować sam i wpisać jako drugi parametr (o tym w sekcji o prognozie).

Parametr liczbowy co-jeśli: symulacja rabatu krok po kroku

Co chcemy osiągnąć. Nordvella planuje świąteczny rabat na całą sprzedaż. Chcemy, żeby menedżer ustawiał wysokość rabatu suwakiem i od razu widział, jak zmienia się przychód sieci.

Zaczynamy od scenariusza świątecznego rabatu na całą sprzedaż Nordvelli. Otwórz plik z końca poprzedniej lekcji (plik startowy nordvella_09_wiz_zaawansowane.pbix z ramki na początku) i dodaj pustą stronę: kliknij przycisk + na pasku stron na dole okna. U nas powstaje Strona 7, bo plik startowy ma już sześć stron z poprzednich lekcji (Strony 5 i 6 dodaliśmy w lekcji o wizualizacjach zaawansowanych). Na tej pustej stronie zbudujesz całą symulację rabatu.

Pusta nowa strona raportu w Power BI Desktop dodana przyciskiem plus, gotowa na parametr co-jeśli
Nowa, pusta strona dodana przyciskiem +. W panelu Dane po prawej widać tabele modelu Nordvelli z poprzednich lekcji.

Przejdź na wstążkę Modelowanie. W środkowej części wstążki jest grupa Parametry z jednym przyciskiem Nowy parametr.

Wstążka Modelowanie w Power BI Desktop z grupą Parametry i przyciskiem Nowy parametr
Karta Modelowanie. Przycisk Nowy parametr jest w grupie Parametry, między Odświeżaniem strony a Zabezpieczeniami.

Kliknij Nowy parametr. Rozwinie się małe menu z dwiema pozycjami: Zakres liczbowy i Pola. Zakres liczbowy to klasyczny parametr co-jeśli, Pola to przełącznik miar albo kolumn, do którego dojdziemy później. Kliknij Zakres liczbowy.

Menu Nowy parametr w Power BI z pozycjami Zakres liczbowy i Pola oraz podpowiedzią
Rozwinięte menu Nowy parametr. Podpowiedź przy Zakresie liczbowym mówi wprost, do czego służy: dostosowuje wartości liczbowe używane jako dane wejściowe dla wizualizacji lub języka DAX.

Otworzy się okno Parametry. Na starcie ma nazwę Parametr, typ danych Liczbowy całkowity, Minimum 0, Maksimum 20, Zwiększ 1 i puste pole Domyślny. Pole Dodaj fragmentator do tej strony jest już zaznaczone.

Okno Parametry w Power BI z wartościami domyślnymi: Zakres liczbowy, nazwa Parametr, maksimum 20
Okno Parametry tuż po otwarciu, jeszcze z wartościami domyślnymi. W polu Do czego zmienna będzie dostosowana? jest Zakres liczbowy, bo to wybraliśmy w menu.

Wpisz kolejno: Nazwa = Rabat proc, Maksimum = 30, Domyślny = 0. Minimum (0) i Zwiększ (1) zostaw bez zmian, a typ danych zostaw jako Liczbowy całkowity, bo rabat podajemy w pełnych procentach. Pole Domyślny ustawiamy na 0, żeby raport po otwarciu pokazywał stan bez rabatu.

Okno Parametry w Power BI wypełnione: nazwa Rabat proc, minimum 0, maksimum 30, zwiększ 1, domyślny 0
Wypełnione okno. Zaznaczone pole Dodaj fragmentator do tej strony sprawi, że suwak od razu pojawi się na nowej stronie.

Kliknij Utwórz. Po kilku sekundach (na ekranie mignie komunikat Pracujemy nad tym) na stronie pojawi się fragmentator z suwakiem, a w panelu Dane nowa tabela Rabat proc. Rozwiń ją strzałką przy nazwie: w środku jest kolumna o tej samej nazwie Rabat proc i jedna miara.

Strona Power BI po utworzeniu parametru: fragmentator suwakowy Rabat proc i tabela Rabat proc w panelu Dane
Stan zaraz po kliknięciu Utwórz. W lewym górnym rogu strony jest fragmentator z suwakiem, a w panelu Dane doszła tabela Rabat proc z kolumną Rabat proc i miarą, której nazwa nie mieści się w panelu.

Najedź myszą na miarę w tabeli Rabat proc, żeby zobaczyć jej pełną nazwę. Kreator nazwał ją słowami Rabat proc, długą kreską i słowem wartość. Taką nazwę trudno potem wpisać w formule, dlatego za chwilę ją zmienimy.

Podpowiedź z pełną nazwą miary utworzonej przez kreator parametru w panelu Dane Power BI
Podpowiedź z pełną nazwą miary. Długiej kreski między Rabat proc a wartość nie ma na zwykłej klawiaturze, więc zmienimy nazwę na Rabat proc wartość.

Zajrzyjmy pod maskę. Kliknij nazwę tabeli Rabat proc w panelu Dane. Pod wstążką pojawi się pasek formuły z definicją tabeli, a na wstążce karta Narzędzia tabel. Funkcja GENERATESERIES tworzy tabelę z jedną kolumną: 0, 1, 2, aż do 30, co 1. To właśnie wartości, które użytkownik będzie wybierał suwakiem. Tabela nie ma żadnej relacji z resztą modelu i tak ma być.

Pasek formuły Power BI z definicją tabeli parametru Rabat proc = GENERATESERIES(0, 30, 1)
Pasek formuły po kliknięciu tabeli Rabat proc. Na karcie Narzędzia tabel w polu Nazwa widać, która tabela jest zaznaczona.
Rabat proc = GENERATESERIES(0, 30, 1)

Druga rzecz, którą wygenerował kreator, to miara odczytująca wybór. Kliknij tę miarę w tabeli Rabat proc i zobacz jej definicję w pasku formuły. Funkcja SELECTEDVALUE zwraca liczbę wybraną na fragmentatorze, a jeśli nic nie wybrano (albo wybrano wiele), zwraca wartość domyślną, czyli 0. To jest most między kliknięciem użytkownika a Twoim wzorem.

Pasek formuły Power BI z miarą kreatora parametru odczytującą wybór przez SELECTEDVALUE z wartością domyślną 0
Definicja miary wygenerowanej przez kreator. Na wstążce pojawiła się karta Narzędzia miar z polami Nazwa, Tabela główna i Format.

Teraz zmień nazwę miary. Gdy miara jest zaznaczona, na karcie Narzędzia miar kliknij pole Nazwa, zaznacz cały tekst, wpisz Rabat proc wartość i naciśnij Enter.

Pole Nazwa na karcie Narzędzia miar w Power BI z wpisaną nową nazwą miary Rabat proc wartość
Nowa nazwa wpisana w pole Nazwa, jeszcze przed naciśnięciem Enter. Pasek formuły pokazuje na razie starą nazwę.

Po Enter nowa nazwa trafia do paska formuły i do panelu Dane. Pod nią miara występuje w całym rozdziale.

Pasek formuły Power BI z miarą Rabat proc wartość = SELECTEDVALUE('Rabat proc'[Rabat proc], 0)
Ta sama miara po zmianie nazwy. Formuła się nie zmieniła, zmieniła się tylko nazwa przed znakiem równości.
Rabat proc wartość = SELECTEDVALUE('Rabat proc'[Rabat proc], 0)

Teraz krok, którego kreator za Ciebie nie zrobi: własna miara, która używa parametru do przeliczenia sprzedaży. Miara ma trafić do tabeli FaktSprzedaz, więc najpierw kliknij nazwę tabeli FaktSprzedaz w panelu Dane, a potem na karcie Narzędzia tabel kliknij Nowa miara.

Zaznaczona tabela FaktSprzedaz i przycisk Nowa miara na karcie Narzędzia tabel w Power BI
Tabela FaktSprzedaz zaznaczona w panelu Dane (pole Nazwa na wstążce to potwierdza), kursor na przycisku Nowa miara. Podpowiedź: Napisz wyrażenie języka DAX, które oblicza wartość na podstawie danych.

W pasku formuły pojawi się Miara =. Zastąp to poniższym wzorem. Dzielimy wybrany rabat przez 100 (bo suwak podaje procenty jako liczby całkowite), a sprzedaż po rabacie to łączna sprzedaż przemnożona przez (1 minus rabat). Nową linię w pasku formuły robisz klawiszami Shift i Enter, a samo Enter zatwierdza miarę.

Pasek formuły Power BI z miarą Sprzedaż po rabacie w pięciu liniach ze zmiennymi VAR Rabat i VAR Baza
Wzór wpisany, jeszcze niezatwierdzony. W polu Nazwa wstążka pokazuje tymczasową nazwę Miara, prawdziwa nazwa pojawi się po Enter.
Sprzedaż po rabacie =
VAR Rabat = [Rabat proc wartość] / 100
VAR Baza = [Łączna sprzedaż]
RETURN
    Baza * ( 1 - Rabat )

Naciśnij Enter. Zaraz potem, gdy nowa miara jest zaznaczona, kliknij pole Format na karcie Narzędzia miar, wpisz #,0 "zł" i naciśnij Enter. To ten sam format, którego używa Łączna sprzedaż, dzięki niemu karta pokaże kwotę w złotych.

Karta Narzędzia miar w Power BI z nazwą Sprzedaż po rabacie i formatem #,0 zł w polu Format
Miara zatwierdzona: w polu Nazwa jest Sprzedaż po rabacie, w polu Format nasz format złotówkowy, a Tabela główna to FaktSprzedaz.

Dorzuć jeszcze miarę pokazującą, ile pieniędzy oddajesz klientom przy danym rabacie. Kliknij Nowa miara na karcie Narzędzia miar (nowa miara trafi do tej samej tabeli FaktSprzedaz), wpisz wzór, Enter i ustaw ten sam format #,0 "zł". Kwota rabatu to różnica między sprzedażą bazową a sprzedażą po rabacie.

Pasek formuły Power BI z miarą Kwota rabatu i formatem złotówkowym na karcie Narzędzia miar
Kwota rabatu zatwierdzona i sformatowana. W panelu Dane obie nowe miary są w tabeli FaktSprzedaz, obok Łącznej sprzedaży.
Kwota rabatu = SUM(FaktSprzedaz[WartoscNetto]) - [Sprzedaż po rabacie]

Teraz trzy karty. Kliknij puste miejsce na stronie (żeby nic nie było zaznaczone), a potem w panelu Wizualizacje kliknij ikonę Karta.

Ikona Karta w panelu Wizualizacje Power BI Desktop z podpowiedzią Karta
Ikona Karta w czwartym rzędzie panelu Wizualizacje. Podpowiedź potwierdza nazwę.

Na stronie pojawi się pusta karta. Rozwiń w panelu Dane tabelę FaktSprzedaz i przeciągnij miarę Łączna sprzedaż do obszaru Wartość w panelu Wizualizacje.

Karta Łączna sprzedaż 468 mln zł pod fragmentatorem Rabat proc w Power BI, miara w obszarze Wartość
Pierwsza karta: Łączna sprzedaż, 468 mln zł. Power BI postawił ją w pierwszym wolnym miejscu, pod fragmentatorem.

Ułóż elementy w jednym rzędzie: zmniejsz fragmentator do paska u góry strony, a kartę przesuń obok niego (przeciągasz za ramkę, rozmiar zmieniasz uchwytem w prawym dolnym rogu). Tak samo dodaj dwie kolejne karty, z miarami Sprzedaż po rabacie i Kwota rabatu. Na starcie pole nad suwakiem jest puste, czyli nic nie jest wybrane, a miara Rabat proc wartość zwraca wartość domyślną 0. Obie kwoty sprzedaży są więc równe, a kwota rabatu wynosi 0 zł.

Suwak Rabat proc na zerze i trzy karty Power BI: Łączna sprzedaż i Sprzedaż po rabacie po 468 mln zł, Kwota rabatu 0 zł
Suwak na początku skali. Łączna sprzedaż i Sprzedaż po rabacie pokazują po 468 mln zł, Kwota rabatu 0 zł.

Teraz przesuń suwak albo wpisz 12 w pole nad nim i naciśnij Enter. Sprzedaż bazowa (467,78 mln zł dla całego okresu Nordvelli, na karcie zaokrąglona do 468 mln zł) się nie rusza, sprzedaż po rabacie spada do 411,64 mln zł (na karcie 412 mln zł), a kwota rabatu pokazuje 56,13 mln zł oddanych klientom (na karcie 56 mln zł). Jedna liczba na suwaku, trzy karty przeliczone na żywo.

Suwak Rabat proc na 12 i karty Power BI: Łączna sprzedaż 468 mln zł, Sprzedaż po rabacie 412 mln zł, Kwota rabatu 56 mln zł
Rabat 12 procent. Karta z lewej, czyli sprzedaż bazowa, ani drgnie, bo nie korzysta z parametru.
Animacja parametru co-jeśli w Power BI: przesuwanie suwaka rabatu przelicza karty sprzedaży i kwoty rabatu
Suwak w ruchu. Przy 8 procentach sprzedaż po rabacie schodzi do 430 mln zł, a kwota rabatu rośnie do 37 mln zł. Przy 20 procentach jest to już 374 mln zł i 94 mln zł oddane klientom, a Łączna sprzedaż stoi w miejscu.
Rabat na suwakuSprzedaż bazowaSprzedaż po rabacieKwota rabatu
0%467,78 mln467,78 mln0,00 mln
8%467,78 mln430,35 mln37,42 mln
12%467,78 mln411,64 mln56,13 mln
20%467,78 mln374,22 mln93,56 mln

Plik do pobrania: arkusz Nordvelli do odtworzenia demo, Nordvella_dane.xlsx. Kroki tej lekcji wykonujesz na pliku startowym nordvella_09_wiz_zaawansowane.pbix z ramki na początku. Arkusz przyda się, gdy zechcesz sprawdzić wyniki symulacji w Excelu na tych samych 108 675 wierszach sprzedaży.

Symulacja marży: czy rabat jeszcze się broni

Co chcemy osiągnąć. Zarząd Nordvelli musi wiedzieć, przy jakim rabacie sieć zaczyna sprzedawać poniżej kosztu zakupu towaru. Chcemy policzyć marżę po rabacie i zobaczyć ją osobno dla każdej kategorii produktów.

Sam spadek przychodu nie wystarczy zarządowi. Nordvella sprzedaje elektronikę o różnej marżowości: telefony mają cienką marżę, akcesoria grubą. Do policzenia marży po rabacie użyjemy kolumny KosztWlasny z FaktSprzedaz, która trzyma koszt zakupu towaru od dostawcy dla każdej transakcji.

Marża po rabacie to sprzedaż pomniejszona o rabat, minus koszt własny (koszt się nie zmienia, płacisz dostawcy tyle samo niezależnie od tego, jaki rabat dajesz klientowi). Kliknij nazwę tabeli FaktSprzedaz w panelu Dane, na karcie Narzędzia tabel kliknij Nowa miara i wpisz wzór. Zwróć uwagę, że rabat obniża tylko przychód, a KosztWlasny wchodzi w pełnej wysokości. Po Enter ustaw format #,0 "zł", tak jak przy poprzednich miarach.

Pasek formuły Power BI z miarą Marża po rabacie: zmienne Rabat, PrzychodPoRabacie i Koszt z kolumny KosztWlasny
Miara Marża po rabacie wpisana w pasku formuły, przed zatwierdzeniem Enter.
Marża po rabacie =
VAR Rabat = [Rabat proc wartość] / 100
VAR PrzychodPoRabacie = SUM(FaktSprzedaz[WartoscNetto]) * (1 - Rabat)
VAR Koszt = SUM(FaktSprzedaz[KosztWlasny])
RETURN
    PrzychodPoRabacie - Koszt

Dodaj jeszcze rentowność procentową, żeby od razu widzieć, czy scenariusz jest zdrowy. Marża procentowa po rabacie to marża podzielona przez przychód po rabacie. Funkcja DIVIDE jest tu ważna, bo bezpiecznie obsługuje dzielenie (gdyby przychód wyszedł zero, zwróci pusto zamiast błędu). Utwórz ją tak samo (FaktSprzedaz, Nowa miara), a w polu Format wpisz 0.00%, żeby wynik pokazywał się jako procent z dwoma miejscami po przecinku.

Miara Marża proc po rabacie z funkcją DIVIDE w pasku formuły Power BI i formatem 0.00% w polu Format
Marża proc po rabacie zatwierdzona, w polu Format jest 0.00%.
Marża proc po rabacie =
VAR Rabat = [Rabat proc wartość] / 100
VAR PrzychodPoRabacie = SUM(FaktSprzedaz[WartoscNetto]) * (1 - Rabat)
RETURN
    DIVIDE([Marża po rabacie], PrzychodPoRabacie)

Teraz wykres. Ustaw suwak z powrotem na 0. Kliknij puste miejsce strony, a w panelu Wizualizacje kliknij ikonę Wykres kolumnowy grupowany (czwarta ikona w pierwszym rzędzie).

Ikona Wykres kolumnowy grupowany w panelu Wizualizacje Power BI z podpowiedzią
Wykres kolumnowy grupowany, czyli pionowe słupki. Podpowiedź pokazuje pełną nazwę ikony.

Na stronie pojawi się pusta ramka wykresu z szarym podglądem i napisem Zaznacz lub przeciągnij pola, aby wypełnić tę wizualizację. Ustaw ją pod suwakiem, po lewej stronie.

Pusta ramka wykresu kolumnowego grupowanego pod kartami na stronie Power BI, obszary Oś X i Oś Y puste
Pusty wykres kolumnowy. W panelu Wizualizacje widać jego obszary: Oś X, Oś Y, Legenda, Małe wielokrotności i Etykietki.

Rozwiń w panelu Dane tabelę DimKategorie i przeciągnij kolumnę Kategoria do obszaru Oś X.

Kolumna Kategoria z tabeli DimKategorie w obszarze Oś X wykresu kolumnowego Power BI, wykres jeszcze bez wartości
Kategoria na osi X. Wykres ma już tytuł Kategoria, ale słupków jeszcze nie ma, bo oś Y jest pusta.

Rozwiń tabelę FaktSprzedaz i przeciągnij miarę Marża proc po rabacie do obszaru Oś Y. Przy rabacie 0 wszystkie kategorie są dodatnie, ale Telefony mają najcieńszą marżę procentową.

Wykres kolumnowy Power BI Marża proc po rabacie wg Kategoria przy suwaku na zerze, wszystkie słupki dodatnie
Wykres przy rabacie 0: Akcesoria najwyżej, potem AGD/RTV, Komputery i Telefony.

Żeby widzieć dokładne liczby nad słupkami, zaznacz wykres, w panelu Wizualizacje kliknij ikonę pędzla (Formatuj element wizualny) i na karcie Wizualizacja włącz przełącznik Etykiety danych.

Przełącznik Etykiety danych włączony w panelu formatowania Power BI, nad słupkami marży wartości procentowe
Etykiety danych włączone. Akcesoria mają 40,65 procent marży, AGD/RTV 21,57, Komputery 10,10, a Telefony tylko 6,59.

Ta czwarta liczba to jednocześnie odpowiedź na pytanie z początku podrozdziału: Telefony wytrzymają rabat najwyżej 6,59 procent, bo tyle wynosi cała ich marża. Sprawdź to: wpisz 7 w pole suwaka i naciśnij Enter. Telefony jako pierwsze przechodzą na minus.

Suwak na 7 procent, karty 435 mln zł i 33 mln zł, wykres marży Power BI ze słupkiem Telefony poniżej zera
Rabat 7 procent. Telefony schodzą na minus 0,45 procent, Komputery zostają z 3,33, AGD/RTV z 15,67, a Akcesoria z 36,18. Karta Kwota rabatu pokazuje 33 mln zł oddane klientom.
KategoriaMarża % przy rabacie 0Marża % przy rabacie 15
AGD/RTV21,57%7,73% (niska dodatnia)
Komputery10,10%minus 5,77% (poniżej zera)
Telefony6,59%minus 9,90% (poniżej zera)
Akcesoria40,65%30,18% (nadal wysoka)

Wskazówka: to jest moment, w którym symulacja co-jeśli zamienia się w decyzję biznesową. Zamiast płaskiego rabatu 15 procent na wszystko, wykres podpowiada rabat różnicowany: hojny na Akcesoriach, ostrożny na Telefonach.

Parametr napisany ręcznie i pułapki, które go psują

Co chcemy osiągnąć. Chcemy sprawdzić, co stanie się z marżą Nordvelli, gdy dostawcy podniosą ceny zakupu o kilka procent. Taki parametr zbudujemy samym wzorem DAX, bez kreatora, i poznamy pułapki, przez które przestaje działać.

Kreator jest wygodny, ale warto umieć napisać parametr ręcznie, bo daje Ci pełną kontrolę. Załóżmy, że chcesz symulować podwyżkę cen zakupów u dostawcy w krokach co 2,5 procent, do 20 procent, i zbudować tę tabelę samym wzorem DAX, bez kreatora. Kliknij puste miejsce strony, przejdź na wstążkę Modelowanie i kliknij Nowa tabela.

Przycisk Nowa tabela na wstążce Modelowanie w Power BI z podpowiedzią o wyrażeniu DAX tworzącym tabelę
Nowa tabela w grupie Obliczenia. Podpowiedź: Napisz wyrażenie języka DAX, aby utworzyć nową tabelę.

W pasku formuły pojawi się Tabela =. Zastąp to poniższym wzorem i naciśnij Enter. GENERATESERIES przyjmuje wartości ułamkowe, więc dostaniesz 0, 2,5, 5 i tak dalej aż do 20. W samej formule ułamek piszesz z kropką (2.5), bo DAX w pasku formuły używa kropki dziesiętnej.

Pasek formuły Power BI z wyrażeniem Podwyżka kosztów = GENERATESERIES ( 0, 20, 2.5 ) przed zatwierdzeniem
Wzór nowej tabeli wpisany w pasek formuły. Na karcie Narzędzia tabel pole Nazwa pokazuje jeszcze tymczasową nazwę Tabela.
Podwyżka kosztów = GENERATESERIES ( 0, 20, 2.5 )

Żeby zobaczyć wiersze nowej tabeli, kliknij drugą ikonę na lewym pasku okna (Widok tabeli), a potem tabelę Podwyżka kosztów w panelu Dane. Kolumna nazywa się Value, bo GENERATESERIES nie zna nazwy, którą nadałeś tabeli. Tak ją zostawiamy (jeśli wolisz czytelniejszą nazwę, zmień ją dwuklikiem nagłówka w widoku tabeli, ale wtedy popraw ją także w mierze).

Widok tabeli Power BI z tabelą Podwyżka kosztów: kolumna Value z dziewięcioma wartościami od 0 do 20 co 2,5
Widok tabeli. Dziewięć wierszy: 0, 2,5, 5, 7,5, 10, 12,5, 15, 17,5 i 20. Pasek stanu na dole potwierdza: Tabela: Podwyżka kosztów (wiersze: 9).

Dodaj miarę odczytu. Gdy tabela Podwyżka kosztów jest zaznaczona, kliknij Nowa miara na karcie Narzędzia tabel i wpisz wzór. Zwróć uwagę na apostrofy i nazwę kolumny: muszą dokładnie pasować do tego, co jest w modelu, inaczej dostaniesz błąd.

Miara Podwyżka kosztów wartość z SELECTEDVALUE w pasku formuły Power BI, nowa miara w tabeli Podwyżka kosztów
Miara zatwierdzona, w panelu Dane widać ją w rozwiniętej tabeli Podwyżka kosztów.
Podwyżka kosztów wartość =
SELECTEDVALUE ( 'Podwyżka kosztów'[Value], 0 )

Trzy częste pułapki. Po pierwsze, brak wartości domyślnej w SELECTEDVALUE. Jeśli napiszesz sam SELECTEDVALUE bez drugiego argumentu, to gdy fragmentator jest wyczyszczony albo zaznaczono kilka wartości, miara zwróci pusto, a Twoje obliczenie pokaże puste pole albo dziwny wynik. Zawsze podawaj drugi argument (najczęściej 0).

Po drugie, relacja tabeli parametru z resztą modelu. Tabela parametru MA być odizolowana, bez żadnej relacji do FaktSprzedaz. Jeśli przez pomyłkę połączysz ją relacją, zacznie filtrować dane zamiast tylko podawać liczbę, i wyniki przestaną mieć sens. Sprawdź to: kliknij trzecią ikonę na lewym pasku (Widok modelu), a potem przycisk Dopasuj do strony w prawym dolnym rogu okna, żeby zobaczyć cały model.

Widok modelu Power BI: gwiazda Nordvelli z relacjami i odizolowane tabele Rabat proc oraz Podwyżka kosztów po prawej
Cały model po dopasowaniu do strony. Tabele Rabat proc i Podwyżka kosztów są po prawej bez ani jednej linii relacji, i tak ma być.

Po trzecie, jednostki. Suwak podaje 12 jako liczbę 12, a nie 0,12. Jeśli zapomnisz podzielić przez 100 w mierze, przemnożysz sprzedaż przez (1 minus 12), czyli minus 11, i dostaniesz gigantyczną liczbę ujemną. Żeby to zobaczyć na własne oczy, wróć do widoku raportu (pierwsza ikona na lewym pasku), utwórz w FaktSprzedaz celowo błędną miarę (format #,0 "zł", jak przy poprzednich) i wrzuć ją na czwartą kartę. Ustaw suwak na 12.

Sprzedaż po rabacie błąd =
VAR Rabat = [Rabat proc wartość]
VAR Baza = [Łączna sprzedaż]
RETURN
    Baza * ( 1 - Rabat )
Karta Sprzedaż po rabacie błąd w Power BI pokazuje minus 5 mld zł przy suwaku na 12 obok poprawnych 412 mln zł
Rabat 12. Poprawna karta Sprzedaż po rabacie pokazuje 412 mln zł, błędna minus 5 mld zł (dokładnie minus 5,15 mld zł), bo mnoży sprzedaż przez minus 11.

To typowy błąd w co-jeśli, ale widać go natychmiast. Po tym pokazie usuń błędną kartę (zaznacz ją i naciśnij Delete) i błędną miarę (prawy klik na niej w panelu Dane i usunięcie z menu), bo dalej nie będą potrzebne. Na kolejnych zrzutach już ich nie ma.

Plik do pobrania: ten sam arkusz Nordvella_dane.xlsx. Zbuduj oba parametry, ręczny i z kreatora, obok siebie i porównaj definicje, żeby zobaczyć, że kreator robi dokładnie to, co Ty ręcznie, tylko szybciej.

Parametry pól (field parameters): przełączanie miar i wymiarów

Co chcemy osiągnąć. Menedżer Nordvelli chce jednym kliknięciem przełączać wykres między sprzedażą, marżą i liczbą transakcji, zamiast przeglądać trzy osobne strony. Chcemy zbudować taki przełącznik parametrem pól.

Drugi typ parametru rozwiązuje zupełnie inny problem. Wyobraź sobie, że menedżer chce jednym kliknięciem przełączać wykres między "sprzedaż", "marża" i "liczba transakcji", bez budowania trzech osobnych stron. Do tego służą parametry pól (po angielsku field parameters), które pozwalają użytkownikowi wybrać, którą miarę albo które pole widać na wizualu. To nie liczba do wzoru, tylko przełącznik zawartości.

Infografika parametru pól w Power BI: cztery kroki od utworzenia parametru do jednego wykresu sterowanego przez użytkownika
Parametr pól w czterech krokach: tworzysz go przez Modelowanie, Nowy parametr, Pola, odbiorca wybiera na fragmentatorze, co ma pokazać wykres, a jeden wizual zastępuje kilka wykresów.

Potrzebne będą trzy miary: Łączna sprzedaż, Marża po rabacie i Liczba transakcji. Miarę Liczba transakcji masz już z lekcji o podstawach DAX, jest w tabeli FaktSprzedaz. Jeśli jej nie masz, zbuduj ją tak jak niżej. COUNTROWS liczy wiersze tabeli FaktSprzedaz, czyli pojedyncze pozycje sprzedaży.

Liczba transakcji = COUNTROWS(FaktSprzedaz)

Kliknij puste miejsce strony, przejdź na wstążkę Modelowanie, kliknij Nowy parametr i tym razem wybierz Pola.

Menu Nowy parametr w Power BI z zaznaczoną pozycją Pola i podpowiedzią o kompilowaniu wizualizacji
Pozycja Pola w menu Nowy parametr. Podpowiedź: Dostosuj pola używane do kompilowania wizualizacji lub przywoływane w języku DAX.

Otworzy się to samo okno Parametry, ale w wariancie Pola. Po lewej jest pusta lista Dodaj i zmień kolejność pól, po prawej lista Pola ze wszystkimi tabelami modelu. Przycisk Utwórz jest wyszarzony, dopóki nie dodasz żadnego pola.

Okno Parametry w wariancie Pola w Power BI: pusta lista Dodaj i zmień kolejność pól, po prawej lista tabel
Okno w wariancie Pola, jeszcze puste. W polu Do czego zmienna będzie dostosowana? jest Pola.

W polu Nazwa wpisz Miara wyboru. Na liście Pola rozwiń strzałką tabelę FaktSprzedaz i zaznacz haczykiem kolejno Łączna sprzedaż, Marża po rabacie i Liczba transakcji. Każda zaznaczona miara trafia na listę po lewej, w kolejności klikania. To jest kolejność, w jakiej pozycje pojawią się na fragmentatorze. Trzy pozycje w zupełności wystarczą, przełącznik z dziesięcioma miarami przestaje być czytelny.

Okno parametru pól w Power BI z nazwą Miara wyboru i miarami Łączna sprzedaż, Marża po rabacie, Liczba transakcji
Wypełnione okno. Po lewej trzy miary w kolejności dodania, po prawej te same miary zaznaczone haczykiem w tabeli FaktSprzedaz.

Zostaw zaznaczone Dodaj fragmentator do tej strony i kliknij Utwórz. Power BI tworzy nową tabelę Miara wyboru i od razu pokazuje jej definicję w pasku formuły. Pod spodem jest funkcja NAMEOF, która trzyma referencje do miar, oraz para "etykieta, kolejność" dla każdej pozycji: każdy wiersz to jedna pozycja przełącznika (widoczna nazwa, techniczna referencja do miary, numer porządkowy). Na stronie pojawia się fragmentator z trzema polami wyboru.

Definicja tabeli Miara wyboru z NAMEOF w pasku formuły Power BI i fragmentator z trzema miarami na stronie
Stan zaraz po kliknięciu Utwórz. W pasku formuły definicja z NAMEOF, pod wykresem marży nowy fragmentator Miara wyboru, a w panelu Dane tabela Miara wyboru.
Miara wyboru = {
    ("Łączna sprzedaż", NAMEOF('FaktSprzedaz'[Łączna sprzedaż]), 0),
    ("Marża po rabacie", NAMEOF('FaktSprzedaz'[Marża po rabacie]), 1),
    ("Liczba transakcji", NAMEOF('FaktSprzedaz'[Liczba transakcji]), 2)
}

Różnica względem parametru co-jeśli: parametru pól nie odczytujesz miarą. Zamiast tego przeciągasz pole parametru na oś wartości wykresu, a Power BI sam podmienia pokazywaną miarę w zależności od wyboru na fragmentatorze. Zero SELECTEDVALUE, zero własnej logiki w tym miejscu. Zrób to krok po kroku. Przesuń fragmentator Miara wyboru w prawą część strony, obok wykresu marży. Kliknij puste miejsce strony, wstaw drugi Wykres kolumnowy grupowany, ustaw go między wykresem marży a fragmentatorem i przeciągnij na Oś X kolumnę Kategoria z DimKategorie. Potem rozwiń w panelu Dane tabelę Miara wyboru: w środku jest jedno pole o tej samej nazwie.

Drugi wykres kolumnowy w Power BI z Kategoria na osi X, pusta Oś Y, rozwinięta tabela Miara wyboru w panelu Dane
Nowy wykres z kategorią na osi X i pustą osią Y. W panelu Dane rozwinięta tabela Miara wyboru z polem Miara wyboru.

Przeciągnij pole Miara wyboru (to w środku tabeli) do obszaru Oś Y. Dopóki na fragmentatorze nic nie jest zaznaczone, wykres pokazuje wszystkie trzy miary naraz. Sprzedaż w setkach milionów zagłusza wtedy resztę, a marża i liczba transakcji są ledwo widoczne.

Pole Miara wyboru w obszarze Oś Y, wykres Power BI pokazuje naraz trzy miary, bo fragmentator nic nie wybiera
Pole Miara wyboru na osi Y. Bez wyboru na fragmentatorze tytuł wykresu brzmi Łączna sprzedaż, Marża po rabacie i Liczba transakcji, a legenda pokazuje trzy kolory.

Teraz kliknij Łączna sprzedaż na fragmentatorze. Wykres pokazuje tylko tę miarę, a tytuł zmienia się sam. Prowadzi AGD/RTV z 193 mln zł.

Fragmentator Miara wyboru z wybraną Łączna sprzedaż, wykres Power BI pokazuje sprzedaż wg kategorii z AGD/RTV na czele
Wybrana Łączna sprzedaż: AGD/RTV 193 mln zł, Komputery 130 mln zł, Telefony 107 mln zł, Akcesoria 37 mln zł.

Kliknij Marża po rabacie. Ten sam wykres pokazuje teraz marżę w złotych przy rabacie ustawionym na suwaku (u nas 12 procent). Komputery i Telefony są pod zerem.

Fragmentator Miara wyboru z wybraną Marża po rabacie, wykres Power BI z ujemną marżą Komputerów i Telefonów
Wybrana Marża po rabacie przy rabacie 12: AGD/RTV 18,5 mln zł, Akcesoria 10,7 mln zł, Komputery minus 2,5 mln zł, Telefony minus 5,8 mln zł.

Kliknij Liczba transakcji. Widać, że AGD/RTV to także najwięcej pozycji sprzedaży.

Fragmentator Miara wyboru z wybraną Liczba transakcji, wykres Power BI z liczbą pozycji sprzedaży wg kategorii
Wybrana Liczba transakcji: AGD/RTV 36 168, Komputery 29 154, Akcesoria 25 377, Telefony 17 976. Oś pokazuje tysiące (tys.).
Animacja parametru pól w Power BI: jeden wykres kolumnowy przełącza się między sprzedażą, marżą i liczbą transakcji
Jeden wizual, trzy perspektywy. Przy Łącznej sprzedaży prowadzi AGD/RTV z 193 mln zł, przy Marży po rabacie (rabat 12 procent) Akcesoria wyprzedzają Komputery i Telefony, które schodzą pod zero, a przy Liczbie transakcji widać, że AGD/RTV to także najwięcej pozycji na paragonach. Zwróć uwagę, że tytuł wykresu zmienia się sam.

Parametr co-jeśli kontra parametr pól: kiedy który

Różnicę między oboma mechanizmami zebraliśmy w jednej tabeli. Zapamiętaj prostą regułę: jeśli użytkownik ma podać liczbę do obliczeń (rabat, podwyżka, docelowa marża), używasz parametru co-jeśli. Jeśli użytkownik ma przełączyć zawartość wizuala (którą miarę, który wymiar widać), używasz parametru pól.

Strona Power BI z suwakiem Rabat proc, trzema kartami i przełącznikiem Miara wyboru, dwa rodzaje parametrów obok siebie
Oba mechanizmy na jednej stronie. U góry suwak Rabat proc, czyli parametr co-jeśli: podaje liczbę do wzoru i zmienia karty oraz wykres marży. Z prawej lista Miara wyboru, czyli parametr pól: nie rusza żadnej liczby, tylko podmienia miarę na drugim wykresie.
CechaParametr co-jeśliParametr pól
Co podajeliczbę (np. rabat 12)wybór miary lub pola
Jak powstajeGENERATESERIEStabela z NAMEOF
Jak odczytujesz wybórSELECTEDVALUE w mierzenie odczytujesz, wrzucasz na oś
Typowe użycie w Nordvellisymulacja rabatu, marży, podwyżkiprzełącznik Sprzedaż/Marża/Transakcje
Filtruje dane?nie, tylko podaje liczbęnie, podmienia pole na osi

Oba mechanizmy można łączyć. Na jednej stronie raportu Nordvelli możesz mieć suwak rabatu (co-jeśli) i obok fragmentator przełączający wykres między sprzedażą a marżą (parametr pól). Menedżer ustawia rabat 15 procent, przełącza widok na marżę i od razu widzi, które kategorie tracą, wszystko na jednym ekranie i bez klikania między stronami.

Wpięcie parametru do wizuala, karty i tytułu

Co chcemy osiągnąć. Menedżer, który przesuwa suwak rabatu, musi od razu widzieć, jaki scenariusz ogląda, inaczej łatwo pomylić symulację z wynikiem rzeczywistym. Chcemy pokazać wartość parametru na wykresie, na karcie i w tytule wizualizacji.

Sama miara przeliczająca to za mało, żeby raport był czytelny. Trzeba jeszcze zadbać, żeby użytkownik od razu widział, jaki scenariusz właśnie ogląda. Zaczynamy od wykresu. Kliknij puste miejsce strony i w panelu Wizualizacje kliknij Wykres liniowy (pierwsza ikona w drugim rzędzie).

Ikona Wykres liniowy w panelu Wizualizacje Power BI Desktop z podpowiedzią
Wykres liniowy, pierwsza ikona drugiego rzędu.

Ustaw pustą ramkę w lewym dolnym rogu strony. Rozwiń tabelę DimKalendarz i przeciągnij kolumnę PierwszyDzienMiesiaca (tę, którą dodaliśmy w poprzedniej lekcji) do obszaru Oś X.

Wykres liniowy Power BI z kolumną PierwszyDzienMiesiaca z DimKalendarz w obszarze Oś X, oś Y jeszcze pusta
PierwszyDzienMiesiaca na osi X. Linii jeszcze nie ma, bo oś Y jest pusta.

Rozwiń FaktSprzedaz i przeciągnij do obszaru Oś Y najpierw Łączna sprzedaż, a potem, pod nią, Sprzedaż po rabacie. Przy rabacie 0 obie linie leżą na sobie, przy większym rabacie się rozjeżdżają, i ta odległość to Twój koszt promocji miesiąc po miesiącu. U nas suwak jest na 12, więc linie są już rozsunięte.

Wykres liniowy Power BI z miarami Łączna sprzedaż i Sprzedaż po rabacie na osi Y przy rabacie 12 procent
Dwie miary na osi Y. Jasnoniebieska linia to Łączna sprzedaż, granatowa to Sprzedaż po rabacie. Tytuł wykresu Power BI złożył sam z nazw pól.

Teraz dynamiczny tytuł, żeby wykres sam się podpisywał. Zbuduj w FaktSprzedaz miarę tekstową, która wstawi wybrany rabat do tytułu (FaktSprzedaz, Nowa miara, wzór, Enter). Funkcja FORMAT zamienia liczbę na tekst, a operator & skleja fragmenty. Power BI sam ustawia tej mierze format Tekst.

Miara Tytuł wykresu z FORMAT i operatorem sklejania w pasku formuły Power BI, w polu Format wartość Tekst
Miara Tytuł wykresu zatwierdzona. W polu Format jest Tekst, bo wynikiem jest napis, a nie liczba.
Tytuł wykresu = "Sprzedaż przy rabacie " & FORMAT([Rabat proc wartość], "0") & "%"

Żeby ten tekst trafił na wykres: zaznacz wykres liniowy, w panelu Wizualizacje kliknij ikonę pędzla (Formatuj element wizualny), przejdź na kartę Ogólne i rozwiń sekcję Tytuł. Obok pola Tekst jest mała ikona fx. Najedź na nią, a podpowiedź nazwie rzecz po imieniu: formatowanie warunkowe.

Sekcja Tytuł na karcie Ogólne panelu formatowania Power BI, podpowiedź Formatowanie warunkowe przy ikonie fx pola Tekst
Ikona fx obok pola Tekst. To ta sama ikona, którą podpina się kolory warunkowe, tylko tu podłączamy pod nią tekst.

Kliknij fx. Otworzy się okno Tekst tytułu - Tytuł - Tytuł. Styl formatowania zostaw na Wartość pola. Pole Na jakim polu powinniśmy się opierać? jest na razie puste i obrysowane na czerwono, z napisem Wybierz opcję.

Okno Tekst tytułu w Power BI: Styl formatowania Wartość pola i puste pole Na jakim polu powinniśmy się opierać
Okno formatowania warunkowego tytułu, jeszcze bez wybranego pola. Przycisk OK jest wyszarzony.

Kliknij to pole i zacznij pisać Tytuł. Lista od razu się zawęża: w gałęzi Wszystkie dane, w tabeli FaktSprzedaz zostaje tylko miara Tytuł wykresu.

Lista pól w oknie Tekst tytułu Power BI zawężona wpisanym słowem Tytuł do miary Tytuł wykresu w FaktSprzedaz
Wyszukiwanie w liście pól. Wpisany fragment Tytuł jest podświetlony w nazwie miary.

Kliknij Tytuł wykresu. Miara trafia do pola, a przycisk OK robi się aktywny. Kliknij OK. Od teraz tytuł jest podpięty do parametru.

Okno Tekst tytułu w Power BI z wybraną miarą Tytuł wykresu i aktywnym przyciskiem OK
Miara Tytuł wykresu wybrana. Zostaje kliknąć OK.

Ustaw suwak na 15. Tytuł wykresu zmienia się z "Sprzedaż przy rabacie 12%" na "Sprzedaż przy rabacie 15%", gdy tylko ruszysz suwakiem.

Wykres liniowy Power BI z dynamicznym tytułem Sprzedaż przy rabacie 15% i dwiema rozsuniętymi liniami sprzedaży
Efekt przy rabacie 15 procent. Tytuł przepisał liczbę z suwaka, a pod nim Power BI zostawił podtytuł z nazwami pól.

Ostatni element to karta z komunikatem, który interpretuje wynik za użytkownika. Zbuduj w FaktSprzedaz miarę, która sama powie, czy scenariusz jest bezpieczny. Funkcja SWITCH z warunkiem TRUE działa jak drabinka "jeśli, w przeciwnym razie": sprawdza kolejne progi marży i zwraca odpowiedni komunikat.

Miara Ocena scenariusza z SWITCH(TRUE()) i trzema komunikatami w pasku formuły Power BI
Miara Ocena scenariusza wpisana w pasku formuły, przed zatwierdzeniem.
Ocena scenariusza =
VAR MarzaProc = [Marża proc po rabacie]
RETURN
    SWITCH(
        TRUE(),
        MarzaProc < 0, "Scenariusz nierentowny, sprzedaż poniżej kosztu",
        MarzaProc < 0.05, "Uwaga, marża pod 5 procent",
        "Scenariusz zdrowy"
    )

Wstaw nową kartę (ikona Karta), przeciągnij do niej miarę Ocena scenariusza i ustaw ją obok wykresu liniowego. Przy rabacie 15 procent marża całej sprzedaży wynosi 1,73 procent, więc karta ostrzega.

Strona Power BI przy rabacie 15 procent z kartą Ocena scenariusza: Uwaga, marża pod 5 procent
Rabat 15 procent: karta Ocena scenariusza pokazuje Uwaga, marża pod 5 procent. Sprzedaż po rabacie 398 mln zł, kwota rabatu 70 mln zł.

Wpisz 20 w pole suwaka. Marża całej sprzedaży spada do minus 4,42 procent, a karta zmienia komunikat.

Strona Power BI przy rabacie 20 procent, karta Ocena scenariusza: Scenariusz nierentowny, sprzedaż poniżej kosztu
Rabat 20 procent: Scenariusz nierentowny, sprzedaż poniżej kosztu. Tytuł wykresu liniowego mówi już Sprzedaż przy rabacie 20%.

Do 12 procent włącznie karta pokazuje Scenariusz zdrowy (marża całości 5,08 procent przy rabacie 12). Na koniec ustaw suwak z powrotem na 15.

Scenariusz 1: widełki cen jednego produktu

Co chcemy osiągnąć. Pierwszy scenariusz to ustalanie ceny produktu. Menedżer produktu w Nordvelli chce zobaczyć, jak zmiana ceny sprzedaży wpływa na marżę na jednej pozycji, na przykład na wybranym modelu laptopa z DimProdukty. Gotowe scenariusze biznesowe robimy na nowej stronie, żeby nie mieszały się z symulacją rabatu. Kliknij + na pasku stron (powstaje Strona 8). Zbuduj parametr Cena testowa ręcznie, od 2000 do 6000 zł co 100 zł: wstążka Modelowanie, Nowa tabela, wzór, Enter.

Pusta nowa strona w Power BI i definicja tabeli Cena testowa = GENERATESERIES ( 2000, 6000, 100 ) w pasku formuły
Nowa strona i nowa tabela Cena testowa, na liście tabel w panelu Dane jest na samej górze.
Cena testowa = GENERATESERIES ( 2000, 6000, 100 )

Teraz miara, która liczy marżę jednostkową przy cenie testowej. Bierzemy koszt jednostkowy produktu (cena katalogowa CenaNetto minus marża MarzaNetto z DimProdukty, przez SELECTEDVALUE, bo pracujemy na jednym wybranym produkcie) i odejmujemy go od ceny testowej z parametru. Gdy tabela Cena testowa jest zaznaczona, kliknij Nowa miara, wpisz wzór i ustaw format #,0 "zł".

Miara Marża jednostkowa przy cenie testowej w pasku formuły Power BI, w tabeli Cena testowa obok kolumny Value
Miara zatwierdzona, z formatem złotówkowym. W panelu Dane jest w tabeli Cena testowa, obok kolumny Value.
Marża jednostkowa przy cenie testowej =
VAR CenaTest = SELECTEDVALUE ( 'Cena testowa'[Value], 0 )
VAR KosztJedn = SELECTEDVALUE ( DimProdukty[CenaNetto] ) - SELECTEDVALUE ( DimProdukty[MarzaNetto] )
RETURN
    CenaTest - KosztJedn

Wstaw Wykres liniowy, rozciągnij go na prawą część strony, przeciągnij kolumnę Value z tabeli Cena testowa do obszaru Oś X, a miarę Marża jednostkowa przy cenie testowej do obszaru Oś Y. Uwaga, pułapka: dopóki nie wybierzesz produktu, SELECTEDVALUE po DimProdukty zwraca pusto, koszt jednostkowy jest pusty i linia pokazuje po prostu samą cenę testową, od 2 do 6 tys. zł.

Wykres liniowy Power BI z kolumną Value na osi X i marżą jednostkową na osi Y, bez wybranego produktu
Wykres bez wybranego produktu. Linia biegnie od 2 tys. do 6 tys. zł, czyli pokazuje samą cenę testową, bo koszt jest pusty.

Kliknij puste miejsce strony, wstaw Fragmentator (pierwsza ikona w piątym rzędzie panelu Wizualizacje), ustaw go po lewej stronie wykresu i przeciągnij do obszaru Pole kolumnę Nazwa z tabeli DimProdukty. Fragmentator z kolumną tekstową od razu pokazuje listę z polami wyboru.

Fragmentator Nazwa z listą produktów DimProdukty obok wykresu marży jednostkowej na stronie scenariuszy w Power BI
Fragmentator z nazwami produktów. Lista jest dłuższa niż ramka, resztę widać po przewinięciu.

Kliknij na liście Laptop Kelvani Vela Pro 13. Koszt jednostkowy tego laptopa to 4 206 zł (cena katalogowa 4 599 zł minus marża 393 zł). Linia przesuwa się w dół i przecina zero dokładnie tam, gdzie cena testowa zrównuje się z kosztem. To jest Twój próg opłacalności.

Wybrany Laptop Kelvani Vela Pro 13, wykres marży jednostkowej Power BI przecina zero między ceną 4000 a 5000 zł
Widełki cenowe jednego produktu. Przy cenie 2000 zł marża to około minus 2,2 tys. zł, linia przecina zero między 4 200 a 4 300 zł, a przy 6000 zł marża to około 1,8 tys. zł.
Cena testowa (zł)Koszt jednostkowyMarża jednostkowa
3 8004 206minus 406
4 2004 206minus 6
4 3004 20694 (pierwsza cena na plusie)
4 6004 206394 (blisko ceny katalogowej 4 599)
5 2004 206994

Scenariusz 2: prognoza przychodu z reakcją popytu

Co chcemy osiągnąć. Obniżka ceny zwykle zwiększa liczbę sprzedanych sztuk, a samo przeliczenie rabatu tego nie uwzględnia. Chcemy prognozować przychód Nordvelli przy zmianie ceny razem z reakcją klientów, czyli elastycznością popytu.

Wracamy do zastrzeżenia z początku: parametr co-jeśli sam z siebie nie zakłada, że niższa cena podniesie sprzedaż. Ale możesz to domodelować drugim parametrem. Zbuduj dwa parametry: Zmiana ceny (od minus 20 do plus 20 procent) i Elastyczność (o ile procent zmieni się wolumen na każdy 1 procent zmiany ceny, na przykład od minus 3 do 0). To jest uproszczony model elastyczności cenowej popytu, czyli zależności "taniej równa się więcej sztuk". Obie tabele robisz tak samo jak Cenę testową: Modelowanie, Nowa tabela, wzór, Enter. Robimy to na tej samej Stronie 8.

Pasek formuły Power BI z definicją tabeli Zmiana ceny = GENERATESERIES ( -20, 20, 1 ) przed zatwierdzeniem
Tabela Zmiana ceny wpisana w pasek formuły. Elastyczność tworzysz identycznie, drugim wzorem z ramki niżej.
Zmiana ceny = GENERATESERIES ( -20, 20, 1 )
Elastyczność = GENERATESERIES ( -3, 0, 0.5 )

Miara prognozy przychodu składa oba parametry. Nowa cena to bazowa razy (1 plus zmiana ceny). Nowy wolumen to bazowy skorygowany o elastyczność (zmiana ceny razy elastyczność daje procentową zmianę wolumenu). Prognoza to przychód bazowy przemnożony przez obie korekty. Utwórz ją w FaktSprzedaz i ustaw format #,0 "zł".

Miara Prognoza przychodu w pasku formuły Power BI: zmienne ZmCeny, Elast, PrzychodBazowy i ZmWolumenu
Prognoza przychodu zatwierdzona, w tabeli FaktSprzedaz, z formatem złotówkowym.
Prognoza przychodu =
VAR ZmCeny = SELECTEDVALUE ( 'Zmiana ceny'[Value], 0 ) / 100
VAR Elast = SELECTEDVALUE ( 'Elastyczność'[Value], 0 )
VAR PrzychodBazowy = SUM(FaktSprzedaz[WartoscNetto])
VAR ZmWolumenu = ZmCeny * Elast
RETURN
    PrzychodBazowy * (1 + ZmCeny) * (1 + ZmWolumenu)

Teraz fragmentatory. Kliknij puste miejsce strony, wstaw Fragmentator, ustaw go pod listą produktów i przeciągnij do obszaru Pole kolumnę Value z tabeli Zmiana ceny. Fragmentator z kolumną liczbową startuje w stylu Między, czyli jako suwak z zakresem od minus 20 do 20, a nagłówek nazywa się Value.

Fragmentator z kolumną Value tabeli Zmiana ceny w stylu Między, zakres od minus 20 do 20, w Power BI
Nowy fragmentator w stylu Między. Do wyboru jednej wartości wygodniejsza jest lista rozwijana.

Zmień styl: zaznacz fragmentator, kliknij ikonę pędzla (Formatuj element wizualny), rozwiń Ustawienia fragmentatora, potem Opcje, i w polu Styl wybierz Rozwijanie.

Lista Styl w Ustawieniach fragmentatora Power BI z opcjami Linia pionowa, Kafelek, Rozwijanie, Między
Rozwinięta lista Styl. Kursor na pozycji Rozwijanie.

Nagłówek Value nic nie mówi użytkownikowi. Wróć do ikony Utwórz element wizualny (pierwsza ikona pod napisem Wizualizacje), w obszarze Pole kliknij strzałkę przy Value i wybierz Zmień nazwę tej wizualizacji. Wpisz Zmiana ceny i naciśnij Enter. Nazwa zmienia się tylko na tym fragmentatorze, kolumna w modelu dalej nazywa się Value.

Menu pola Value w obszarze Pole fragmentatora Power BI z pozycją Zmień nazwę tej wizualizacji
Menu pola w obszarze Pole. Pozycja Zmień nazwę tej wizualizacji jest druga od góry.
Fragmentator w stylu listy rozwijanej z nagłówkiem Zmiana ceny i wartością Wszystkie w Power BI
Gotowy fragmentator: lista rozwijana z nagłówkiem Zmiana ceny. Wszystkie znaczy, że nic nie jest wybrane, więc miara przyjmie wartość domyślną 0.

Tak samo zrób drugi fragmentator z kolumną Value tabeli Elastyczność: styl Rozwijanie, nazwa nagłówka Elastyczność, ustaw go obok pierwszego.

Dwa fragmentatory rozwijane Zmiana ceny i Elastyczność pod listą produktów na stronie scenariuszy w Power BI
Oba fragmentatory scenariusza 2 obok siebie, na razie bez wyboru.

Postaw dwie karty: jedną z miarą Prognoza przychodu, drugą z Łączna sprzedaż jako punkt odniesienia. I tu kolejna pułapka: obie karty pokazują 30 mln zł zamiast 468 mln zł. To nie błąd miary, tylko fragmentator produktów ze scenariusza 1, który filtruje całą stronę, także nowe karty, do jednego laptopa.

Karty Prognoza przychodu i Łączna sprzedaż pokazują po 30 mln zł, bo fragmentator laptopa filtruje całą stronę Power BI
Karty przefiltrowane przez wybrany laptop: Prognoza przychodu 30 mln zł i Łączna sprzedaż 30 mln zł.

Wyłącz ten wpływ funkcją znaną z lekcji o wizualizacjach podstawowych. Zaznacz fragmentator Nazwa (kliknij jego nagłówek, nie pozycję na liście), na wstążce przejdź na kartę Format i kliknij Edytuj interakcje. Nad innymi wizualami pojawią się dwie małe ikony: Filtruj (wykres) i Brak (przekreślone kółko).

Włączone Edytuj interakcje w Power BI przy zaznaczonym fragmentatorze Nazwa, ikony Filtruj i Brak nad wizualami
Tryb edycji interakcji. Przycisk Edytuj interakcje na karcie Format jest wciśnięty, nad kartami i fragmentatorem Elastyczność są ikony Filtruj i Brak.

Kliknij ikonę Brak nad kartą Prognoza przychodu i nad kartą Łączna sprzedaż. Karty od razu wracają do wartości dla całej firmy, 468 mln zł. Kliknij Edytuj interakcje jeszcze raz, żeby wyłączyć ten tryb.

Ikony Brak zaznaczone nad kartami w Power BI, Prognoza przychodu i Łączna sprzedaż wracają do 468 mln zł
Po kliknięciu Brak fragmentator produktów nie dotyka kart. Wykres widełek dalej pokazuje wybrany laptop, bo jego interakcji nie zmienialiśmy.

Teraz scenariusz z tabeli. Rozwiń listę Zmiana ceny i kliknij 10: przy elastyczności 0 (nic nie wybrane na drugiej liście) podwyżka o 10 procent daje wprost plus 10 procent przychodu, 515 mln zł. Potem rozwiń listę Elastyczność. Wartości pokazują się z dwoma miejscami po przecinku.

Rozwinięta lista Elastyczność z wartościami od minus 3,00 do minus 1,00, Zmiana ceny 10, Prognoza przychodu 515 mln zł
Zmiana ceny ustawiona na 10, Prognoza przychodu 515 mln zł. Rozwinięta lista Elastyczność, kursor na minus 2,00.

Kliknij -2,00. Przy elastyczności minus 2 ta sama podwyżka o 10 procent zbija wolumen o 20 procent i przychód spada, mimo wyższej ceny. To dokładnie ten wniosek, którego zarząd nie zobaczy w statycznym raporcie: podwyżka nie zawsze oznacza więcej pieniędzy.

Fragmentatory Zmiana ceny 10 i Elastyczność minus 2,00, karta Prognoza przychodu 412 mln zł obok Łącznej sprzedaży 468 mln zł
Cena w górę o 10 procent przy elastyczności minus 2: prognoza schodzi do 412 mln zł, czyli 56 mln zł poniżej bazy 468 mln zł.
Zmiana cenyElastycznośćPrognoza przychodu vs baza
plus 10%0plus 10,0% (514,55 mln)
plus 10%minus 1minus 1,0% (463,10 mln)
plus 10%minus 2minus 12,0% (411,64 mln)
minus 10%minus 2plus 8,0% (505,20 mln)

Wskazówka: elastyczność wpisujesz jako założenie, nie jako fakt z danych. Uczciwy raport powinien to jasno zaznaczać (na przykład etykietą "scenariusz zależy od przyjętej reakcji popytu"). Analiza co-jeśli ma pomóc zadać właściwe pytania, a nie udawać, że zna przyszłość.

Scenariusz 3: pulpit z przełącznikiem perspektyw

Co chcemy osiągnąć. Zarząd Nordvelli chce analizować sprzedaż raz według miast, raz według kategorii, raz według kanału sprzedaży. Chcemy zbudować pulpit, na którym ten wybór robi się jednym kliknięciem, bez trzech osobnych wykresów.

Ostatni scenariusz łączy parametr pól z drugą jego zdolnością: przełączaniem nie miar, lecz wymiarów (kolumn opisowych). Dodaj kolejną stronę (Strona 9), przejdź na wstążkę Modelowanie i kliknij Nowy parametr, Pola. W polu Nazwa wpisz Wymiar analizy, a z listy Pola dodaj trzy kolumny: Miasto z DimSklepy, Kategoria z DimProdukty i KanalSprzedazy z FaktSprzedaz (rozwijasz tabelę strzałką i zaznaczasz kolumnę haczykiem).

Okno parametru pól w Power BI z nazwą Wymiar analizy i kolumnami Miasto, Kategoria, KanalSprzedazy
Wypełnione okno. Tym razem na liście po lewej są kolumny, a nie miary.

Kliknij Utwórz. Definicja wygląda tak samo jak przy miarach, tylko NAMEOF wskazuje kolumny.

Definicja tabeli Wymiar analizy z NAMEOF dla kolumn Miasto, Kategoria i KanalSprzedazy w pasku formuły Power BI
Tabela Wymiar analizy w pasku formuły i nowy fragmentator na nowej stronie.
Wymiar analizy = {
    ("Miasto", NAMEOF('DimSklepy'[Miasto]), 0),
    ("Kategoria", NAMEOF('DimProdukty'[Kategoria]), 1),
    ("KanalSprzedazy", NAMEOF('FaktSprzedaz'[KanalSprzedazy]), 2)
}

Przesuń fragmentator w prawy górny róg strony. Wstaw Wykres kolumnowy grupowany, rozciągnij go na lewą część strony, przeciągnij pole Wymiar analizy (to w środku tabeli Wymiar analizy) do obszaru Oś X, a miarę Łączna sprzedaż do obszaru Oś Y. Bez wyboru na fragmentatorze wykres bierze pierwszą pozycję listy, czyli Miasto, a pod wykresem pojawiają się strzałki przechodzenia do szczegółów, bo trzy pola działają jak hierarchia.

Wykres kolumnowy Power BI z polem Wymiar analizy na osi X i Łączną sprzedażą na osi Y, bez wyboru pokazuje miasta
Wykres po wstawieniu pól, nic nie wybrane na fragmentatorze: sprzedaż jedenastu miast w kolejności alfabetycznej.

Kliknij Miasto na fragmentatorze. Wykres pokazuje sprzedaż jedenastu miast, posortowaną od największej, z Warszawą (222,8 mln zł) wyraźnie najwyżej i Białymstokiem (12,3 mln zł) najniżej.

Wymiar analizy z wybranym Miasto, wykres Power BI sprzedaży wg miast z Warszawą na czele
Wybrane Miasto: Warszawa, Kraków, Katowice i dalej aż do Białegostoku. Podtytuł wykresu mówi wg Miasto.

Kliknij Kategoria, a ten sam wykres natychmiast rozbija sprzedaż na AGD/RTV, Komputery, Telefony i Akcesoria.

Wymiar analizy z wybraną Kategoria, wykres Power BI sprzedaży wg kategorii z AGD/RTV na czele
Wybrana Kategoria: AGD/RTV 193 mln zł, Komputery 130 mln zł, Telefony 107 mln zł, Akcesoria 37 mln zł. Podtytuł zmienił się na wg Kategoria.

Kliknij KanalSprzedazy i widzisz podział na kanały. Jeden wizual, trzy perspektywy, zero dodatkowych wykresów.

Wymiar analizy z wybranym KanalSprzedazy, wykres Power BI: Stacjonarne, Online i Telefon
Wybrany KanalSprzedazy: sprzedaż stacjonarna 303 mln zł, online 142 mln zł, przez telefon 23 mln zł.
Animacja parametru pól z wymiarami w Power BI: ten sam wykres pokazuje sprzedaż według miast, kategorii i kanału sprzedaży
Ten sam wykres, trzy wymiary. Przy Kategorii prowadzi AGD/RTV ze 193 mln zł, przy Kanale sprzedaży wygrywa sprzedaż stacjonarna z 303 mln zł wobec 142 mln zł online i 23 mln zł przez telefon. Podtytuł wykresu zmienia się sam, bo Power BI podstawia nazwę wybranej kolumny.

Ten wzorzec przydaje się na prezentacji zarządowej. Zamiast pulpitu z dwudziestoma wykresami, dajesz pięć wizuali z przełącznikami, a odbiorca sam drąży to, co go interesuje. Pulpit jest czystszy, szybszy w odbiorze i, co ważne dla wydajności, model ma mniej wizuali do przeliczenia przy każdym otwarciu strony.

Plik do pobrania: wszystkie trzy scenariusze zbudujesz na danych z Nordvella_dane.xlsx. Suwak rabatu na Stronie 7, widełki cen i prognoza z elastycznością na Stronie 8 oraz przełącznik perspektyw na Stronie 9 to gotowe narzędzie decyzyjne dla zarządu.

Podsumowanie: parametry to interaktywna warstwa raportu

Parametry przenoszą raport z poziomu "co się wydarzyło" na poziom "co by było, gdyby". W tym rozdziale zbudowaliśmy dwa różne narzędzia: parametr co-jeśli (GENERATESERIES plus SELECTEDVALUE), który podaje liczbę do obliczeń i pozwolił nam symulować rabat, marżę, widełki cen i prognozę z elastycznością popytu, oraz parametr pól (tabela z NAMEOF), który przełącza miary i wymiary na jednym wizualu.

Trzy rzeczy do zapamiętania. Parametr co-jeśli nie filtruje danych, tylko podaje wartość do wzoru, więc tabela parametru zostaje odizolowana od modelu. Wybór odczytujesz przez SELECTEDVALUE z wartością domyślną, żeby wyczyszczony fragmentator nie zepsuł obliczenia. Parametr pól odwrotnie, wrzucasz go wprost na oś wykresu i nie piszesz żadnej miary odczytu. Gdy opanujesz oba, Twoje raporty Nordvelli przestają być statycznymi obrazkami, a stają się kalkulatorem decyzji, przy którym zarząd sam kręci suwakami. W kolejnym rozdziale pójdziemy dalej w interaktywność: pokażemy przejście do szczegółów (drill-through) i zakładki, żeby użytkownik mógł drążyć od ogółu do pojedynczej transakcji.

Strona 7 raportu Power BI po lekcji o parametrach: suwak rabatu, karty, wykres marży, przełącznik miary, tytuł i ocena
Strona 7 po całej lekcji, rabat 15 procent: suwak i trzy karty, wykres marży po rabacie, wykres sterowany przełącznikiem Miara wyboru, wykres z dynamicznym tytułem i karta z oceną scenariusza. Scenariusze 1 i 2 są na Stronie 8, przełącznik wymiarów na Stronie 9.
✕

Najczęściej zadawane pytania

Czym jest parametr co-jeśli w Power BI?
To tabela wygenerowana funkcją GENERATESERIES z zakresem wartości (na przykład rabat od 0 do 30 procent) plus fragmentator, którym użytkownik wybiera jedną wartość. Wybór odczytujesz miarą z SELECTEDVALUE i podstawiasz do własnych obliczeń, żeby na żywo przeliczyć symulację.
Czym różni się parametr co-jeśli od field parameters?
Parametr co-jeśli podaje LICZBĘ do obliczeń (rabat, marża, podwyżka). Field parameters (parametry pól) pozwalają użytkownikowi PRZEŁĄCZAĆ, która miara albo które pole jest pokazane na wizualu, bez budowania osobnych stron. To dwa różne narzędzia do dwóch różnych zadań.
Jak wpiąć parametr co-jeśli do wizuala?
Zbuduj miarę, która czyta wybór fragmentatora przez SELECTEDVALUE i przelicza wynik (na przykład sprzedaż po rabacie). Tę miarę wstaw na oś Y wykresu albo do karty. Fragmentator parametru zostaw na stronie, a wykres przelicza się przy każdej zmianie suwaka.
Jak zbudować parametr co-jeśli bez kreatora, samym wzorem DAX?
Na karcie Modelowanie kliknij Nowa tabela i zbuduj ją funkcją GENERATESERIES, na przykład od 0 do 20 co 2.5, z kropką dziesiętną w formule. Kolumna nowej tabeli nazywa się Value. Wartość odczytuje miara z SELECTEDVALUE, której zawsze podajesz drugi argument, a tabela parametru nie może mieć relacji z tabelą faktów.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...