Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power BI - Model danych i relacje
Fragmentator nie filtruje wykresu - brak relacji albo zły kierunek filtra
Po kliknięciu 2025 we fragmentatorze wykresy się przeliczają, a karta Łączna sprzedaż dalej pokazuje 467 775 009 zł zamiast 126 734 270 zł. Fragmentator nie filtruje tej karty, choć swoją tabelę filtruje poprawnie, a problem leży w ustawieniu interakcji, w modelu albo w mierze. Diagnoza na raporcie Nordvelli ma sześć kroków, a przy każdej przyczynie podajemy liczby, po których ją rozpoznasz.
Na stronie z fragmentatorem Rok zaznaczenie 2025 przelicza wykresy, a karta Łączna sprzedaż powinna spaść z 467 775 009 zł do 126 734 270 zł. Gdy fragmentator jej nie filtruje, karta dalej pokazuje 467 775 009 zł. W modelu Nordvelli ten sam objaw dają różne układy:
Powod z DimPowodyZwrotow: wartość zwrotów zmienia się przy każdym powodzie (Nie spełnia oczekiwań -3 230 464,41 zł), a sprzedaż zostaje na 467 775 009,17 zł,KanalSprzedazy z FaktSprzedaz: sprzedaż dzieli się na Stacjonarne 302 652 105,75 zł, Online 141 772 848,59 zł i Telefon 23 350 054,83 zł, a budżet przy każdym kanale to 541 917 189,40 zł,DimSklepy przy produkcie Laptop Kelvani Forta 14 i dniu 3 marca 2025 pokazuje 15 sklepów, choć tego dnia produkt sprzedał się w 3 sklepach.Fragmentator filtruje kolumnę, z której pochodzi jego pole. Według wskazówek Microsoft do rozwiązywania problemów z relacjami ta sama wartość w każdej grupie wskazuje na brak relacji albo relację, która nie przenosi filtra. Żeby wykres zareagował, muszą być spełnione trzy warunki: interakcja fragmentatora z tym wykresem jest włączona, od tabeli pola do tabeli miary prowadzi aktywna relacja zgodna z kierunkiem filtra, a miara nie zdejmuje filtra.
Zobacz też: Szkolenie Power BI - Desktop, DAX i Online + Copilot
DimPowodyZwrotow ma relację tylko z FaktZwroty, więc sprzedaż nic o powodach nie wie. KanalSprzedazy jest kolumną tabeli faktów, a tabele faktów nie filtrują się nawzajem. Licznik sklepów liczy wiersze wymiaru, a filtr produktu i daty dochodzi do FaktSprzedaz, ale relacja z kierunkiem pojedynczym nie przenosi go dalej do DimSklepy. Gdy wyłączyliśmy w zapytaniu relację sklepów z faktami, każde miasto pokazało 467 775 009,17 zł zamiast Warszawa 222 818 294,93 zł i Kraków 50 479 566,75 zł. Ten sam mechanizm w tabelach i macierzach opisujemy w poście o mierze z tą samą wartością w każdym wierszu.
Budżet sprzedaży to SUM(FaktBudzet[BudzetSprzedazy]). Gdy pole pochodzi z tabeli połączonej tylko z inną tabelą faktów, jak DimPowodyZwrotow, weź pole ze wspólnego wymiaru: DimKalendarz, DimSklepy albo DimProdukty.KanalSprzedazy, filtruje tylko tę tabelę. Budżet Nordvelli nie ma kanału, więc nie da się go nim podzielić. Ustaw dla karty budżetu interakcję Brak, żeby nikt nie brał niezmienionej kwoty za wynik filtra, albo przenieś kanał do wymiaru połączonego z obiema tabelami, gdy oba źródła mają tę kolumnę.COUNTROWS(DimSklepy) 15. Nie zmieniaj w tym celu kierunku relacji na Oba, bo filtr dotrze wtedy także do budżetu i zwrotów, o czym piszemy w poście o filtrowaniu dwukierunkowym.Liczba sklepów = DISTINCTCOUNT(FaktSprzedaz[SklepID])
Sprzedaż całości to CALCULATE([Łączna sprzedaż], REMOVEFILTERS()) i w każdym roku pokazuje 467 775 009,17 zł. Sprzedaż wszystkich kategorii z ALL(DimProdukty) reaguje na rok (2025: 126 734 270,47 zł), ale nie na kategorię. Takie miary celowo ignorują fragmentator, bo służą jako mianownik udziału. Gdy fragmentator jest na innej stronie raportu, sprawdź też synchronizację, opisaną w poście o synchronizacji fragmentatorów.
Po poprawce zaznacz we fragmentatorze jedną wartość i porównaj liczby z oczekiwanymi: rok 2025 ma dać 126 734 270,47 zł sprzedaży, miasto Kraków 50 479 566,75 zł z 11 846 transakcji. Gdy liczba się zmienia, ale nie tak, jak oczekujesz, przełącz wizualizację na tabelę, w której łatwiej odczytać wynik zapytania, jak zaleca lista kontrolna Microsoft, i porównaj wiersze z sumą.
Buduj fragmentatory na kolumnach wymiarów wspólnych dla tabel faktów, licz wizualizacje miarami na faktach i ukryj w raporcie kolumny tabel faktów, które nie powinny służyć do filtrowania. Wtedy autor raportu nie wybierze pola, które filtruje tylko jedną tabelę.
Zachowanie programu sprawdziliśmy w Power BI Desktop 2.157 (wydanie z sierpnia 2026 r.) z polskim interfejsem, a przykłady na modelu sieci Nordvella z bezpłatnego kursu Power BI. Microsoft wydaje nową wersję Power BI Desktop co miesiąc, więc nazwy przycisków i limity usługi mogą się zmieniać. Aktualne wartości podaje dokumentacja Microsoft Learn.
Wróć do listy: 131 najczęstszych pytań i problemów związanych z Power BI
Komentarze (0)
Brak komentarzy...