Blog JSystems - uwalniamy wiedzę!

Szukaj

Power BI - Model danych i relacje

Fragmentator nie filtruje wykresu - brak relacji albo zły kierunek filtra

W skrócie

  • Gdy fragmentator w Power BI nie filtruje wykresu ani karty, wizualizacja pokazuje po każdym kliknięciu tę samą liczbę, choć inne wykresy na stronie się zmieniają.
  • Fragmentator filtruje tylko swoją tabelę, a dalej filtr płynie relacjami od wymiaru do faktów. Nie dojdzie do celu przy interakcji Brak, bez relacji, pod prąd relacji, z tabeli faktów do innej tabeli faktów albo do miary, która zdejmuje filtry.
  • Sprawdź po kolei interakcje, tabelę pola i tabelę miary, relację w widoku modelu i formułę miary.

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.

Jak to wygląda w praktyce

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:

  • fragmentator z polem 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ł,
  • fragmentator z polem 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ł,
  • licznik wierszy 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.

Dlaczego tak się dzieje

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.

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.

Co zrobić krok po kroku

  1. Sprawdź interakcje. Zaznacz fragmentator, na karcie Format kliknij Edytuj interakcje. Nad pozostałymi wizualizacjami pojawią się ikony Filtruj i Brak. Gdy nad wykresem wybrana jest Brak, kliknij Filtruj i wyłącz tryb ponownym kliknięciem Edytuj interakcje. Odwrotną potrzebę, wykres, który ma nie reagować, opisujemy w poście o edycji interakcji.
  2. Ustal tabelę pola i tabelę miary. Pole fragmentatora znajdziesz w panelu Dane pod nazwą tabeli, a tabelę miary w formule na pasku formuły, na przykład 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.
  3. Gdy pole pochodzi z tabeli faktów, jak 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ę.
  4. Gdy wizualizacja liczy wiersze wymiaru, a fragmentator jest z innego wymiaru, licz po kolumnie faktów. Miara z modelu Nordvelli przy produkcie Laptop Kelvani Forta 14 i dniu 3 marca 2025 daje 3, a 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])
  5. Sprawdź relację. Otwórz Widok modelu i znajdź linię między tabelą pola a tabelą miary: czy istnieje, czy jest ciągła (przerywana oznacza relację nieaktywną) i czy strzałka wskazuje od wymiaru do faktów. Zaznacz linię, żeby zobaczyć połączone kolumny. Według dokumentacji Microsoft kolumny o niezgodnych typach, na przykład tekst i liczba całkowita, da się połączyć, ale filtr nie znajdzie wtedy dopasowań. Brakującą relację dodasz przyciskiem Nowa relacja w oknie Zarządzanie relacjami.
  6. Przeczytaj formułę miary. 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.
Tryb Edytuj interakcje w Power BI: fragmentator jako źródło, ikony Filtruj i Brak nad kartą i wykresami
Przycisk Edytuj interakcje wciśnięty na karcie Format. Fragmentator jest źródłem, nad pozostałymi wizualami ikony Filtruj i Brak. Kursor na Brak nad kartą.

Jak sprawdzić, że problem zniknął

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ę.

Źródła i sposób sprawdzenia

  • Microsoft Learn: Relationship troubleshooting guidance (źródło)
  • Microsoft Learn: Change how visuals interact in a Power BI report (źródło)
  • Microsoft Learn: Slicers in Power BI (źródło)
  • Sprawdzone zapytaniami DAX na modelu Nordvelli: sprzedaż według powodu zwrotu, budżet według kanału, licznik sklepów z wymiaru i z faktów, relacja wyłączona przez CROSSFILTER NONE, miary z REMOVEFILTERS i ALL.

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

Najczęściej zadawane pytania

Dlaczego fragmentator nie filtruje wykresu w Power BI?
Wykres nie reaguje, gdy interakcja fragmentatora z wykresem jest ustawiona na Brak, gdy nie ma relacji między tabelą pola a tabelą miary, gdy filtr musiałby płynąć od faktów do wymiaru albo gdy miara zdejmuje filtry przez ALL czy REMOVEFILTERS. Każdą z tych przyczyn sprawdza się w innym miejscu: interakcje, widok modelu i formuła miary.
Jak włączyć filtrowanie wykresu przez fragmentator w Power BI?
Zaznacz fragmentator, na karcie Format kliknij Edytuj interakcje i nad wykresem wybierz ikonę Filtruj zamiast Brak. Potem wyłącz tryb edycji ponownym kliknięciem Edytuj interakcje. Gdy wykres dalej się nie zmienia, przyczyna jest w modelu albo w mierze.
Dlaczego fragmentator z jednej tabeli faktów nie filtruje drugiej?
Pole z tabeli faktów filtruje tylko tę tabelę, a tabele faktów nie są połączone ze sobą relacjami. Na modelu Nordvelli kanał sprzedaży dzieli sprzedaż, a budżet zostaje na 541 917 189,40 zł przy każdym kanale. Do filtrowania obu tabel służą wspólne wymiary, takie jak kalendarz, sklepy i produkty.
Dlaczego liczba elementów z tabeli wymiaru nie zmienia się po wyborze we fragmentatorze?
Filtr z innego wymiaru dochodzi do tabeli faktów, ale relacja z kierunkiem pojedynczym nie przenosi go do drugiego wymiaru. Licz wtedy po kolumnie faktów, na przykład DISTINCTCOUNT(FaktSprzedaz[SklepID]). Na modelu Nordvelli taka miara dała 3 sklepy, a liczenie wierszy tabeli sklepów 15.

Komentarze (0)

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

Brak komentarzy...