Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power BI - Komunikaty błędów DAX
RELATED nie działa w Power BI - kolumna nie istnieje albo nie ma relacji
Gdy RELATED nie działa w Power BI, komunikat silnika brzmi tak samo bez względu na to, czy zabrakło relacji, czy formuła jest w złym miejscu. Pokazujemy, jak odróżnić pięć przyczyn tego błędu, jak poprawić każdą z nich i w jakiej sytuacji RELATED nie zgłasza błędu, a i tak zwraca wartość z innej relacji, niż zakładasz.
Komunikat pojawia się pod paskiem formuły miary albo kolumny obliczeniowej. Na modelu Nordvelli miara RELATED(DimSklepy[Miasto]) zgłosiła: „Kolumna „DimSklepy[Miasto]” nie istnieje lub nie ma relacji z żadną tabelą dostępną w bieżącym kontekście.” (w angielskiej wersji: „The column 'DimSklepy[Miasto]' either doesn't exist or doesn't have a relationship to any table available in the current context.”).
Ten sam tekst, z inną nazwą kolumny, dały cztery kolejne formuły: kolumna obliczeniowa RELATED(FaktSprzedaz[KanalSprzedazy]) w tabeli DimSklepy, kolumna RELATED(DimSklepy[Miasto]) w tabeli DimPracownicy, kolumna z literówką RELATED(DimSklepy[Miast]) i miara SUMX(DimSklepy, RELATED(FaktSprzedaz[WartoscNetto])). Dlatego sama treść komunikatu nie wystarczy do diagnozy. Trzeba sprawdzić, w jakiej tabeli jest formuła i jak wyglądają relacje.
Według dokumentacji Microsoft RELATED potrzebuje kontekstu wiersza, czyli bieżącego wiersza tabeli, więc działa w kolumnie obliczeniowej albo wewnątrz funkcji przechodzącej po tabeli, takiej jak SUMX. Z tego wiersza idzie po istniejącej relacji wiele do jednego do strony jeden. Miara bez iteratora nie ma bieżącego wiersza, a z tabeli DimSklepy, która jest po stronie jeden relacji z FaktSprzedaz, RELATED nie zejdzie do wielu transakcji sklepu. Tabela DimPracownicy ma kolumnę SklepID, ale w modelu Nordvelli nie ma relacji z DimSklepy, więc RELATED nie ma po czym przejść.
Dokumentacja wymienia jeszcze relację ograniczoną: RELATED nie pobierze po niej wartości ze strony jeden. Relacja jest ograniczona, gdy ma kardynalność wiele do wielu albo łączy tabele z różnych grup źródeł w modelu złożonym, a w widoku modelu poznasz ją po nawiasach na końcach linii, co pokazujemy w lekcji o modelach złożonych. Osobny przypadek to kolumna z innej tabeli wpisana bez RELATED: Miasto sklepu = DimSklepy[Miasto] w tabeli DimPracownicy daje komunikat o pojedynczej wartości, który opisujemy w poście nie można określić pojedynczej wartości dla kolumny.
Zobacz też: Szkolenie Zaawansowany DAX w Power BI
FaktSprzedaz. W kolumnie obliczeniowej musi być w tabeli po stronie wiele, czyli w tabeli faktów, a nie w wymiarze.[Marża katalogowa] zapisana w modelu.Marża katalogowa =
SUMX(
FaktSprzedaz,
FaktSprzedaz[Ilosc] * RELATED(DimProdukty[MarzaNetto])
)DimKategorie idzie przez DimProdukty i dzieli 108 675 transakcji na Akcesoria (25 377), AGD/RTV (36 168), Komputery (29 154) i Telefony (17 976).Miasto sklepu = RELATED(DimSklepy[Miasto]) Kategoria produktu = RELATED(DimKategorie[Kategoria])
DimSklepy daje 8145 transakcji dla Nordvella Warszawa Centrum i 32 737 dla Nordvella Online, a suma po 15 sklepach to 108 675.Liczba transakcji sklepu = COUNTROWS(RELATEDTABLE(FaktSprzedaz))
Miasto sklepu = LOOKUPVALUE(DimSklepy[Miasto], DimSklepy[SklepID], DimPracownicy[SklepID])
FaktZwroty ma dwie relacje z DimKalendarz: aktywną po dacie zwrotu i nieaktywną po dacie zakupu. RELATED idzie po aktywnej, więc dla zwrotu nr 3 zwraca 22.01.2022, czyli datę zwrotu, a nie 04.01.2022, datę zakupu. Datę po kolumnie z relacją nieaktywną pobierz przez LOOKUPVALUE, a w miarach przełączaj relacje funkcją USERELATIONSHIP, o której piszemy w poście relacja nieaktywna i funkcja USERELATIONSHIP.Data zakupu = LOOKUPVALUE(DimKalendarz[Data], DimKalendarz[DataID], FaktZwroty[DataZakupu])
DimSklepy[Miast] daje ten sam komunikat co brak relacji. Wpisz nazwę tabeli i nawias kwadratowy, a IntelliSense podpowie istniejące kolumny.![Pasek formuł Power BI z miarą Marża katalogowa: SUMX po FaktSprzedaz z RELATED do DimProdukty[MarzaNetto]](https://jsystems.pl/new_page_resources/images/POWER_BI_KURS/L15_K07_formula_marza_katalogowa.png?v=20261016)
Po poprawce sprawdź wynik na sumie, którą znasz z innej miary. Na modelu Nordvelli SUMX(DimSklepy, COUNTROWS(RELATEDTABLE(FaktSprzedaz))) daje 108 675, tyle samo co miara [Liczba transakcji], a marża katalogowa z RELATED zgadza się z miarą w modelu co do złotówki. Gdy filtrujesz fakty po atrybucie wymiaru, RELATED w FILTER nie jest potrzebny: CALCULATE([Łączna sprzedaż], FILTER(FaktSprzedaz, RELATED(DimSklepy[Typ]) = "E-commerce")) i prostsze CALCULATE([Łączna sprzedaż], DimSklepy[Typ] = "E-commerce") dają te same 141 772 848,59 zł.
Przed napisaniem RELATED otwórz widok modelu i sprawdź, czy między tabelami jest aktywna relacja i po której stronie jest gwiazdka. RELATED piszesz po stronie gwiazdki, czyli wiele, i sięgasz nim do strony z cyfrą 1.
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...