Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power BI - Komunikaty błędów DAX
Tabela wielu wartości tam, gdzie potrzebna jedna - błąd wartości skalarnej w DAX
Komunikat o tabeli wielu wartości podanej tam, gdzie DAX oczekuje jednej wartości skalarnej, zaskakuje, bo ta sama miara w części wizualizacji działa poprawnie. Pokazujemy, w jakim kontekście pojawia się ten błąd, które funkcje poza VALUES go wywołują i jak przepisać miarę, żeby działała w każdym wierszu i w sumie.
Na modelu Nordvelli miara z miastem sklepu, potrzebna na przykład do tytułu wizualizacji, wygląda tak:
Miasto sklepu = VALUES(DimSklepy[Miasto])
W wierszach poszczególnych sklepów działa: każdy z 15 sklepów dostaje swoje miasto. W karcie bez filtra, w wierszu sumy i w tabeli po regionach ta sama miara zgłasza: „Została dostarczona tabela wielu wartości, podczas gdy oczekiwano pojedynczej wartości.” (w angielskiej wersji: „A table of multiple values was supplied where a single value was expected.”). W zapytaniu DAX silnik dodaje przed tym tekstem nazwę miary: „Błąd obliczania w mierze „FaktSprzedaz”[Miasto sklepu]:” (w angielskiej wersji: „Calculation error in measure 'FaktSprzedaz'[Miasto sklepu]:”).
Ten sam komunikat dały porównanie IF(VALUES(DimSklepy[Typ]) = "Flagship", [Łączna sprzedaż], 0) w tabeli po regionach, LOOKUPVALUE(DimSklepy[Miasto], DimSklepy[Typ], "Flagship"), bo sklepy typu Flagship są w pięciu miastach, i kolumna obliczeniowa Kanał sprzedaży = CALCULATE(VALUES(FaktSprzedaz[KanalSprzedazy])) w tabeli DimSklepy, bo każdy sklep stacjonarny sprzedaje w dwóch kanałach.
VALUES zwraca tabelę wartości widocznych w bieżącym kontekście filtra. Gdy ta tabela ma jeden wiersz i jedną kolumnę, DAX może użyć jej jak pojedynczej wartości, dlatego miara działa w wierszu jednego sklepu. Gdy wierszy jest więcej, nie ma jednej wartości do zwrócenia. W regionie Centrum są dwa miasta, Łódź i Warszawa, a w sumie wszystkie 11, więc tam miara przestaje działać.
To odwrotność błędu z posta nie można określić pojedynczej wartości dla kolumny. Tamten wynika z zapisu formuły i pojawia się zawsze, ten zależy od danych w kontekście, więc wychodzi dopiero wtedy, gdy ktoś doda wiersz sumy, zmieni poziom wizualizacji albo zaznaczy dwa elementy we fragmentatorze. Według dokumentacji Microsoft porównanie tabeli z wieloma wierszami z pojedynczą wartością kończy się błędem i dlatego zalecana jest funkcja SELECTEDVALUE. LOOKUPVALUE z kolei zgłasza błąd, gdy pasujące wiersze mają różne wartości wyniku.
Zobacz też: Szkolenie Zaawansowany DAX w Power BI
Miasto sklepu = SELECTEDVALUE(DimSklepy[Miasto], "Kilka miast")
Miasto sklepu =
IF(
HASONEVALUE(DimSklepy[Miasto]),
VALUES(DimSklepy[Miasto]),
"Wiele miast"
)Miasta regionu = CONCATENATEX(VALUES(DimSklepy[Miasto]), DimSklepy[Miasto], ", ", DimSklepy[Miasto], ASC)
Czy region ma sklep flagowy =
IF("Flagship" IN VALUES(DimSklepy[Typ]), "tak", "nie")LOOKUPVALUE(DimSklepy[Miasto], DimSklepy[Typ], "Flagship", "kilka miast") zwraca „kilka miast”, a dla typu E-commerce, który ma jeden sklep, ta sama funkcja bez czwartego argumentu zwraca „Warszawa”.Kanały sprzedaży =
CONCATENATEX(
CALCULATETABLE(VALUES(FaktSprzedaz[KanalSprzedazy])),
FaktSprzedaz[KanalSprzedazy], ", ", FaktSprzedaz[KanalSprzedazy], ASC
)
Liczba kanałów = CALCULATE(DISTINCTCOUNT(FaktSprzedaz[KanalSprzedazy]))Sprawdź miarę na trzech poziomach: w wierszu jednego sklepu, w grupie z kilkoma wartościami i w sumie. Na modelu Nordvelli miara Tytuł szczegółów z lekcji o przechodzeniu do szczegółów, zbudowana na SELECTEDVALUE, zwraca „Nordvella Kraków Galeria (Kraków)” dla jednego sklepu i „Wszystkie sklepy” bez filtra. Przy filtrze na Kraków, gdzie są dwa sklepy, też zwraca „Wszystkie sklepy”, bo SELECTEDVALUE dla dwóch nazw daje pustą wartość. Taki tekst jest poprawny technicznie, ale może wprowadzić odbiorcę w błąd, o czym piszemy w poście SELECTEDVALUE zwraca pustą wartość przy kilku zaznaczeniach.
Żeby błąd nie wracał, w miarach nie zwracaj VALUES bez zabezpieczenia i nie porównuj go z tekstem ani liczbą. Gdy wizualizacja mimo poprawek pokazuje błąd zamiast danych, szczegóły komunikatu odczytasz tak, jak opisujemy w poście nie można wyświetlić elementu wizualnego.

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