RELATED
Dotyczy: Obliczanie kolumny obliczeniowej tabeli Obliczeniowej Obliczenie wizualizacji
Zwraca powiązaną wartość z innej tabeli.
Składnia
RELATED(<column>)
Parametry
Termin | Definicja |
---|---|
column | Kolumna zawierająca wartości, które chcesz pobrać. |
Wartość zwracana
Pojedyncza wartość powiązana z bieżącym wierszem.
Uwagi
Funkcja RELATED wymaga, aby relacja między bieżącą tabelą a tabelą zawierała powiązane informacje. Należy określić kolumnę zawierającą żądane dane, a funkcja jest zgodna z istniejącą relacją wiele do jednego, aby pobrać wartość z określonej kolumny w powiązanej tabeli. Jeśli relacja nie istnieje, musisz utworzyć relację.
Gdy funkcja RELATED wykonuje wyszukiwanie, sprawdza wszystkie wartości w określonej tabeli niezależnie od filtrów, które mogły zostać zastosowane.
Funkcja RELATED wymaga kontekstu wiersza; W związku z tym można go używać tylko w wyrażeniu kolumny obliczeniowej, gdzie bieżący kontekst wiersza jest jednoznaczny lub jako funkcja zagnieżdżona w wyrażeniu używającym funkcji skanowania tabeli. Funkcja skanowania tabel, taka jak SUMX, pobiera wartość bieżącej wartości wiersza, a następnie skanuje inną tabelę dla wystąpień tej wartości.
Funkcji RELATED nie można użyć do pobrania kolumny w ograniczonej relacji.
Przykład
W poniższym przykładzie miara Sprzedaż internetowa w Stanach Zjednoczonych jest tworzona w celu utworzenia raportu sprzedaży, który wyklucza sprzedaż w Stany Zjednoczone. Aby utworzyć miarę, należy przefiltrować tabelę InternetSales_USD, aby wykluczyć wszystkie sprzedaże należące do Stany Zjednoczone w tabeli SalesTerritory. Stany Zjednoczone, jako kraj, pojawia się 5 razy w tabeli SalesTerritory; raz dla każdego z następujących regionów: Północno-zachodni, Północno-Wschodni, Środkowy, Południowo-Zachodni i Południowo-Wschodni.
Pierwszym podejściem do filtrowania sprzedaży internetowej w celu utworzenia miary może być dodanie wyrażenia filtru, takiego jak następujące:
FILTER('InternetSales_USD'
, 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5)
Jednak takie podejście jest nieintuicyjne, podatne na błędy wpisywania i może nie działać, jeśli którykolwiek z istniejących regionów zostanie podzielony w przyszłości.
Lepszym rozwiązaniem byłoby użycie istniejącej relacji między InternetSales_USD i SalesTerritory i jawnie stwierdzić, że kraj musi być inny niż Stany Zjednoczone. W tym celu utwórz wyrażenie filtru podobne do następującego:
FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
To wyrażenie używa funkcji RELATED do wyszukiwania wartości kraju w tabeli SalesTerritory, począwszy od wartości kolumny klucza SalesTerritoryKey w tabeli InternetSales_USD. Wynik wyszukiwania jest używany przez funkcję filter w celu określenia, czy wiersz InternetSales_USD jest filtrowany, czy nie.
Uwaga
Jeśli przykład nie działa, może być konieczne utworzenie relacji między tabelami.
= SUMX(FILTER( 'InternetSales_USD'
, RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States"
)
,'InternetSales_USD'[SalesAmount_USD])
W poniższej tabeli przedstawiono tylko sumy dla każdego regionu, aby udowodnić, że wyrażenie filtru w mierze Sprzedaż internetowa w Stanach Zjednoczonych działa zgodnie z oczekiwaniami.
Row Labels | Internet Sales | Non USA Internet Sales |
---|---|---|
Australia | 4999 021,84 USD | 4999 021,84 USD |
Kanada | $1,343,109.10 | $1,343,109.10 |
Francja | $2,490,944,57 | $2,490,944,57 |
Niemcy | $2,775,195.60 | $2,775,195.60 |
Zjednoczone Królestwo | 5 057 076,55 USD | 5 057 076,55 USD |
Stany Zjednoczone | $9,389,479,79 | |
Suma końcowa | 26 054 827,45 USD | 16 665 347,67 USD |
Poniżej przedstawiono, co można uzyskać w przypadku użycia tej miary w wizualizacji tabeli raportów:
Row Labels | Accessories | Bikes | Clothing | Grand Total |
---|---|---|---|---|
2005 | 1526 481,95 USD | 1526 481,95 USD | ||
2006 | 3554 744,04 USD | 3554 744,04 USD | ||
2007 | 156 480,18 USD | $5,640,106.05 | 70 142,77 USD | $5,866,729.00 |
2008 | 228 159,45 USD | $5,386,558.19 | 102 675,04 USD | 5717 392,68 USD |
Suma końcowa | 384 639,633 USD | 16 107 890,23 USD | 172 817,811 USD | 16 665 347,67 USD |