Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power BI - DAX liczy, ale nie to, czego oczekujesz
Wiersz Suma w tabeli Power BI nie zgadza się z sumą wierszy
Pięć sklepów Nordvelli dostaje po 50 000 zł premii, czyli razem 250 000 zł, a tabela podsumowuje to kwotą 50 000 zł. Rozjazd między wierszami a sumą może dotyczyć w tabeli i macierzy każdej miary z warunkiem: premii za przekroczenie progu, nadwyżki ponad budżet, kary za spadek. Wiersze wyglądają dobrze, a wiersz Suma na dole tabeli, którego wiele osób szuka jako wiersza razem, nie zgadza się z tym, co wychodzi z kalkulatora, albo jest pusty. Pokazujemy na danych Nordvelli, skąd ta różnica się bierze, kiedy jest poprawna i jak napisać miarę, której suma zgadza się z wierszami.
Tabela sklepów Nordvelli z filtrem na rok 2025 i miarą Nadwyżka ponad budżet, czyli kwotą, o którą sprzedaż sklepu przekroczyła jego budżet. Wartość ma sześć sklepów: Nordvella Online 1 413 451,39 zł, Warszawa Mokotów 485 370,96 zł, Szczecin 374 804,25 zł, Kraków Stare Miasto 338 630,89 zł, Lublin 229 388,91 zł i Wrocław 71 273,92 zł. Łącznie to 2 912 920,32 zł, a wiersz Suma na dole tabeli jest pusty.
Ten sam efekt daje próg. Miara Premia sklepu, która przyznaje 50 000 zł każdemu sklepowi ze sprzedażą powyżej 8 mln zł, pokazuje premię w pięciu wierszach (Warszawa Centrum, Kraków Stare Miasto, Wrocław, Katowice, Nordvella Online), czyli 250 000 zł, a wiersz Suma pokazuje 50 000 zł. Power BI nie zgłasza żadnego błędu, bo silnik policzył każdą komórkę zgodnie z formułą.
Power BI nie dodaje liczb widocznych w wierszach. Każda komórka, także wiersz Suma, to osobne obliczenie miary w jej kontekście filtra, czyli w zestawie warunków nałożonych przez wiersz, fragmentatory i filtry strony. Wiersz sklepu ma filtr na jeden sklep, a wiersz Suma nie ma filtra sklepu, więc miara liczy się dla całej sieci naraz.
Dla zwykłej sumy to bez znaczenia, bo suma całości równa się sumie części. Warunek działa inaczej. Sieć w 2025 sprzedała 126 734 270,47 zł przy budżecie 129 209 118,49 zł, czyli była poniżej budżetu o 2 474 848,02 zł. Warunek IF(R > 0, R) dostaje w wierszu Suma wynik ujemny i zwraca pustą wartość. Nadwyżki sześciu sklepów giną, bo przykrył je niedobór pozostałych dziewięciu. Tak samo z premią: sieć jako całość przekracza 8 mln zł jeden raz, więc dostaje jedną premię.
Zobacz też: Szkolenie Zaawansowany DAX w Power BI
Tak samo liczą się wskaźniki i liczności, ale tam rozjazd jest poprawny. Marża % w macierzy kategorii bez filtra roku to 10,09% (Komputery), 6,58% (Telefony), 21,56% (AGD/RTV) i 40,62% (Akcesoria), a w wierszu Suma 16,46%, bo to marża całej sprzedaży, a nie suma procentów. Liczba sklepów (DISTINCTCOUNT) pokazuje 15 w każdym miesiącu 2025 i 15 w sumie roku, a nie 180. O średnich, które na każdym poziomie dają inny wynik, piszemy w poście o różnicy między AVERAGE, AVERAGEX i średnią z miesięcy.
R. Ta miara jest poprawna na poziomie jednego sklepu i zostaje w modelu jako cegiełka dla następnej.Nadwyżka ponad budżet =
VAR R = [Łączna sprzedaż] - [Budżet sprzedaży]
RETURN
IF ( R > 0, R )Nadwyżka sklepów =
SUMX (
VALUES ( DimSklepy[Nazwa] ),
[Nadwyżka ponad budżet]
)Region i Nazwa z DimSklepy w obszarze Wiersze użyj ISINSCOPE. Funkcja zwraca prawdę, gdy wiersz macierzy jest na poziomie wskazanej kolumny, więc na poziomie sklepu miara liczy zwykłą nadwyżkę, a na regionie i w sumie dodaje sklepy. Region Zachód ma budżet wyższy od sprzedaży, a mimo to pokazuje 446 078,17 zł, czyli nadwyżkę Wrocławia i Szczecina.Nadwyżka (zakres) =
IF (
ISINSCOPE ( DimSklepy[Nazwa] ),
[Nadwyżka ponad budżet],
[Nadwyżka sklepów]
)Nadwyżka bez sumy =
IF (
HASONEVALUE ( DimSklepy[Nazwa] ),
[Nadwyżka ponad budżet]
)Porównaj wiersz Suma z sumą wierszy policzoną niezależnie, na przykład kartą z miarą SUMX obok tabeli. Na modelu Nordvelli w 2025 obie wartości to 2 912 920,32 zł, a miara bez SUMX zostaje pusta. Sprawdź też poziom pośredni: region Centrum sprzedał 27 511 918,17 zł przy budżecie 29 473 050,73 zł, więc stara miara jest tam pusta, a nowa pokazuje 485 370,96 zł nadwyżki Mokotowa.
W opisie każdej miary z warunkiem zapisz, na jakim poziomie obowiązuje reguła (sklep, miesiąc, transakcja), i od razu buduj ją z iteratorem po tym wymiarze. Gdy miara z warunkiem pokazuje puste komórki tam, gdzie spodziewasz się zera, przeczytaj kiedy pokazywać zero zamiast pustej wartości.
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...