Blog JSystems - uwalniamy wiedzę!

Szukaj

Power BI - DAX liczy, ale nie to, czego oczekujesz

Pusta wartość zamiast zera w tabeli Power BI - jak pokazać 0 i kiedy nie warto

W skrócie

  • Power BI pokazuje pustą wartość (blank) zamiast 0, gdy miara nie ma danych: sklep bez zwrotów znika z tabeli, a karta pokazuje dwie kreski zamiast zera.
  • Wizualizacja pomija wiersze z pustymi miarami, a dopisek + 0 albo COALESCE daje zero w każdej kombinacji pól, także w przyszłych miesiącach i parach, które nigdy nie miały danych.
  • Dodawaj zero tylko z warunkiem na istnienie danych, nie dopisuj go do miary sprzedaży i pamiętaj, że zero zmienia średnie i porównania, a format liczbowy nie zamienia pustej wartości na 0.

Nordvella Szczecin sprzedała w październiku 2024 za 342 050,22 zł, ale nie miała ani jednego zwrotu, więc z tabeli zwrotów sklepów po prostu znika. Odbiorca raportu Power BI chce widzieć przy takim sklepie 0 zamiast pustej komórki albo braku wiersza. Najszybsza poprawka, dopisanie + 0 do miary, potrafi jednak dołożyć do tabeli tysiące wierszy z samymi zerami. Pokazujemy na modelu Nordvelli, skąd bierze się BLANK, jak pokazać 0 tylko tam, gdzie niesie informację, i kiedy lepiej zostawić pustą komórkę.

Jak to wygląda w praktyce

Tabela sklepów Nordvelli z miarą [Liczba zwrotów], czyli COUNTROWS(FaktZwroty), z filtrem na październik 2024 ma 14 wierszy, a nie 15. Nordvella Szczecin sprzedała w tym miesiącu za 342 050,22 zł, ale nie miała ani jednego zwrotu, więc znika z tabeli. Karta z miarą, która nie ma wyniku, zamiast zera pokazuje dwie kreski.

Po dopisaniu + 0 Szczecin wraca z zerem, ale w tabeli sklepów i miesięcy liczba wierszy rośnie z 707 do 900, bo zera pojawiają się też w miesiącach 2026 roku, w których jeszcze nie było sprzedaży. Ten sam dopisek przy mierze sprzedaży zamienia tabelę sklepów i produktów z 2 stycznia 2025 z 81 wierszy w 450, a tabelę sklepów i pracowników z 96 wierszy w 3000.

Karta Power BI z miarą Sieroty produktow bez dopisku + 0: zamiast zera pokazuje dwie kreski, czyli wartość pustą
Karta z miarą bez + 0. W obszarze Wartość jest Sieroty produktow, a karta pokazuje dwie kreski: pusty wynik nie wygląda jak zero.

Dlaczego tak się dzieje

Miara bez danych zwraca w DAX wartość pustą (BLANK), a nie zero. Według dokumentacji Microsoft wizualizacja Power BI pomija wiersze i kolumny, w których miary mają wartości puste, i dlatego sklep bez zwrotów znika. Dopisek + 0 albo COALESCE([Liczba zwrotów], 0) zamienia BLANK na zero w każdej kombinacji pól z wierszy wizualizacji, także w takiej, która nie mogła mieć danych: w miesiącu, który jeszcze nie nastąpił, w produkcie, którego sklep danego dnia nie sprzedał, w parze sklepu i pracownika, który tam nie sprzedawał. Wizualizacja nie ma już czego pomijać i pokazuje wszystkie kombinacje: 15 sklepów razy 60 miesięcy kalendarza to 900 wierszy, 15 sklepów razy 30 produktów to 450, 15 sklepów razy 200 pracowników to 3000.

Zero i BLANK różnią się też w obliczeniach. Według dokumentacji AVERAGE i AVERAGEX pomijają puste wartości, a zera wliczają, więc średnia liczba zwrotów na sklep w październiku 2024 to 3,79 bez zer i 3,53 z zerami (53 zwroty na 14 albo 15 sklepów). Według dokumentacji operatorów DAX wszystkie porównania poza == traktują BLANK jak zero, więc warunek [Liczba zwrotów] = 0 jest prawdziwy także dla sklepu bez danych. Średnie szerzej opisujemy w poście o AVERAGE, AVERAGEX i średniej z miesięcy.

Co zrobić krok po kroku

  1. Zdecyduj, gdzie zero niesie informację. Zero zwrotów w miesiącu, w którym sklep sprzedawał, to wynik, który odbiorca powinien zobaczyć. Kombinacja, która nie mogła mieć danych, czyli przyszły miesiąc, produkt niesprzedany danego dnia albo pracownik innego sklepu, powinna zostać pusta, żeby wizualizacja ją pominęła.
  2. W panelu Dane kliknij prawym przyciskiem tabelę FaktSprzedaz, wybierz Nowa miara i wpisz formułę obok. Miara zwraca zero tylko tam, gdzie była sprzedaż. Tabela za październik 2024 ma 15 sklepów, Szczecin z zerem. Tabela sklepów i miesięcy ma 795 wierszy, czyli 15 sklepów razy 53 miesiące ze sprzedażą, w tym 88 zer, a nie 900. Dla Szczecina w 2026 roku zostaje pięć miesięcy, styczeń z zerem, zamiast dwunastu. Ten sam dopisek w mierze kontrolnej, w której zero jest odpowiedzią, pokazujemy w lekcji o modelu gwiazdy i relacjach.
    Zwroty z zerem =
    IF (
        ISBLANK ( [Łączna sprzedaż] ),
        BLANK (),
        [Liczba zwrotów] + 0
    )
  3. Nie dopisuj zera do miary sprzedaży ani do miar bazowych, z których korzystają inne miary i wizualizacje z kilkoma wymiarami. Sprzedaż jest pusta tam, gdzie nie było transakcji, i to jest poprawna odpowiedź. W tabeli sklepów i produktów z 2 stycznia 2025 dopisek dokłada 369 wierszy z zerami do 81 prawdziwych.
  4. Gdy chcesz tylko zobaczyć elementy bez danych, a nie zamieniać ich na zero, zaznacz wizualizację, w panelu Wizualizacje znajdź pole w jego obszarze (w tabeli Kolumny, w macierzy Wiersze), kliknij strzałkę przy polu albo kliknij pole prawym przyciskiem i wybierz Pokaż elementy bez danych. Według dokumentacji Microsoft opcja dodaje wiersze i kolumny, w których miara nie ma danych, a sama miara zostaje pusta. Działa tylko w tej jednej wizualizacji.
  5. Nie licz na format liczbowy. Zapis formatu z trzema sekcjami, na przykład 0;-0;0, opisuje liczbę dodatnią, ujemną i zero, a BLANK nie jest żadną z nich. Na modelu Nordvelli FORMAT(BLANK(), "0;-0;0") zwraca pusty tekst, a FORMAT(0, "0;-0;0") zwraca 0. Pustej wartości nie zamienisz więc na zero formatowaniem.
  6. W warunkach odróżniaj zero od pustej wartości przez ISBLANK albo operator ==. Na modelu Nordvelli BLANK() = 0 daje prawdę, a BLANK() == 0 fałsz, więc IF([Liczba zwrotów] = 0, ...) obejmie też sklepy bez danych. W ilorazach decyduje trzeci argument DIVIDE: DIVIDE(1, 0) zwraca wartość pustą, a DIVIDE(1, 0, 0) zero. Więcej o dzieleniu piszemy w poście o dzieleniu przez zero w DAX.

Jak sprawdzić, że problem zniknął

Policz wiersze wizualizacji przed poprawką i po niej, na przykład w widoku zapytań w języku DAX: COUNTROWS(SUMMARIZECOLUMNS(DimSklepy[Nazwa], DimKalendarz[RokMiesiac], "z", [Zwroty z zerem])) ma dać liczbę par sklepu i miesiąca ze sprzedażą (na modelu Nordvelli 795), a nie iloczyn wszystkich (900). Sumy nie mogą się zmienić: październik 2024 to 53 zwroty w każdej wersji miary. Sprawdź też średnie, bo to one zmieniają się po zamianie BLANK na zero.

Zostaw miary bazowe bez dopisku + 0, a zero dokładaj w osobnej mierze do tej wizualizacji, w której odbiorca naprawdę go potrzebuje, zawsze z warunkiem na istnienie danych. Gdy pusty wiersz bierze się z brakującego klucza w wymiarze, a nie z braku danych, przyczyna jest w modelu, o czym piszemy w poście o pustej wartości we fragmentatorze po relacji.

Źródła i sposób sprawdzenia

  • Microsoft Learn: Show items with no data in Power BI (źródło)
  • Microsoft Learn: DAX operators (porównania z BLANK) (źródło)
  • Microsoft Learn: COALESCE function (DAX) (źródło)
  • Microsoft Learn: DIVIDE function (DAX) (źródło)
  • Microsoft Learn: AVERAGE function (DAX) (źródło)
  • Sprawdzone zapytaniami DAX na modelu Nordvelli: liczba wierszy tabel z BLANK, z + 0, z COALESCE i z warunkiem, średnie, FORMAT i porównania z BLANK.

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

Jak pokazać 0 zamiast pustej wartości w Power BI?
Dopisz + 0 do miary albo użyj COALESCE z zerem, ale z warunkiem, który zostawia wartość pustą tam, gdzie nie ma danych, na przykład IF(ISBLANK([Łączna sprzedaż]), BLANK(), [Liczba zwrotów] + 0). Na modelu Nordvelli taka miara pokazuje sklep bez zwrotów z zerem, a tabela sklepów i miesięcy ma 795 wierszy zamiast 900.
Dlaczego po dodaniu + 0 w tabeli pojawiają się wiersze bez danych?
Wizualizacja pomija wiersze, w których miary są puste. Po dopisaniu + 0 każda kombinacja pól z wierszy ma zero, więc Power BI pokazuje wszystkie, także przyszłe miesiące i produkty, których danego dnia nikt nie kupił. Na modelu Nordvelli tabela sklepów i produktów z jednego dnia rośnie z 81 do 450 wierszy.
Czy BLANK to to samo co zero w DAX?
Nie, BLANK oznacza brak wartości, a zero jest liczbą. Porównanie BLANK() = 0 daje prawdę, bo zwykłe porównania traktują BLANK jak zero, ale BLANK() == 0 daje fałsz, a AVERAGE i AVERAGEX pomijają BLANK i wliczają zera. Do sprawdzenia pustej wartości służy ISBLANK.
Czy da się pokazać 0 zamiast pustej komórki samym formatowaniem?
Nie, format liczbowy z sekcją dla zera nie zmienia wartości pustej, bo BLANK nie jest liczbą. Na modelu Nordvelli funkcja FORMAT z zapisem, który ma osobną sekcję dla zera, zwraca dla BLANK pusty tekst, a dla liczby 0 zwraca 0. Gdy chcesz tylko zobaczyć wiersze bez danych, użyj opcji Pokaż elementy bez danych, która dodaje je z pustą miarą.

Komentarze (0)

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

Brak komentarzy...