Udostępnij za pośrednictwem


Funkcja RELATED (język DAX)

Zwraca wartość powiązanych z innej tabela.

Składnia

RELATED(<column>)

Parametry

Termin

Definicja

kolumna

Kolumna zawierająca wartości, które mają zostać pobrane.

Wartość zwracana

Pojedyncza wartość powiązana z bieżącym wierszem.

Uwagi

Funkcja RELATED wymaga, aby istniała relacja między bieżącą tabelą a tabelą z informacjami powiązanymi.Należy określić kolumnę zawierającą żądane dane, a funkcja śledzi istniejącą relację wiele-do-jednego w celu pobrania wartości z określonej kolumny w tabeli powiązanej.

Jeśli relacja nie istnieje, trzeba ją utworzyć.Aby uzyskać więcej informacji, zobacz Tworzenie relacji między dwiema tabelami.

Gdy funkcja RELATED przeprowadza wyszukiwanie, analizuje wszystkie wartości w określonej tabeli, niezależnie od wszelkich zastosowanych filtrów.

Ostrzeżenie

Funkcja RELATED wymaga kontekstu wiersza; dlatego można jej używać w wyrażeniu kolumny obliczeniowej, w którym kontekst wiersza jest jednoznaczny, lub jako funkcji zagnieżdżonej w wyrażeniu używającym funkcji skanowania tabeli.Funkcja skanowania tabeli, taka jak SUMX, pobiera wartość bieżącego wiersza, a następnie skanuje inną tabelę w poszukiwaniu wystąpień tej wartości.

Przykład

W poniższym przykładzie miara Sprzedaż internetowa poza USA jest tworzona w celu utworzenia raportu sprzedaży, z którego zostanie wykluczona sprzedaż na terenie USA.Aby utworzyć tę miarę, należy przefiltrować tabelę InternetSales_USD w celu wykluczenia wszystkich danych dotyczących sprzedaży należących do kategorii United States w tabeli SalesTerritory.Stanów Zjednoczonych jako kraju, występuje 5 razy w tabela SalesTerritory; raz dla każdej z następujących regionów: Północno-zachodniego, Północnym, centralne Południowy Zachód-i południowo-wschodni

Pierwsze podejście do przefiltrowania tabeli InternetSales w celu utworzenia miary mogłoby obejmować utworzenie wyrażenia filtru wyglądającego następująco:

FILTER('InternetSales_USD', 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5)

Jednak to podejście jest podatne na błędy maszynowe, counterintuitive i może nie działać, jeśli dowolny z regionów istniejących dzieli się w przyszłości.

Lepszym podejściem będzie użycie istniejącej relacji między tabelami InternetSales_USD i SalesTerritory oraz jawne określenie, że kraj musi być inny niż United States.W tym celu należy utworzyć wyrażenie filtru podobne do następującego:

FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")

W tym wyrażeniu jest używana funkcja RELATED służąca do wyszukiwania wartości kraju w tabeli SalesTerritory, począwszy od wartości kolumny klucza (SalesTerritoryKey) w tabeli InternetSales_USD.Funkcja filtrowania używa wyniku wyszukiwania w celu ustalenia, czy wiersz z tabeli InternetSales_USD ma zostać odfiltrowany.

Ostrzeżenie

Jeśli ten przykład nie działa, być może trzeba utworzyć relację między tabelami.Aby uzyskać więcej informacji, zobacz Relacje między tabelami.

= SUMX(FILTER( 'InternetSales_USD'
            ,  RELATED('SalesTerritory'[SalesTerritoryCountry])
               <>"United States"
             )
     ,'InternetSales_USD'[SalesAmount_USD])

W poniższej tabeli pokazano tylko sumy dla każdego regionu, aby udowodnić, że wyrażenie filtru w mierze Sprzedaż internetowa poza USA działa zgodnie z oczekiwaniami.

Etykiety wierszy

Sprzedaż internetowa

Sprzedaż internetowa poza USA

Australia

$4,999,021.84

$4,999,021.84

Canada

$1,343,109.10

$1,343,109.10

France

$2,490,944.57

$2,490,944.57

Germany

$2,775,195.60

$2,775,195.60

United Kingdom

$5,057,076.55

$5,057,076.55

United States

$9,389,479.79

 

Suma końcowa

$26,054,827.45

$16,665,347.67

W poniższej tabeli pokazano, jak mógłby wyglądać ostateczny raport, gdyby ta miara została użyta w tabeli przestawnej.

Sprzedaż internetowa poza USA

Etykiety kolumn

 

 

 

Etykiety wierszy

Accessories

Bikes

Clothing

Suma końcowa

2001

 

$1,526,481.95

 

$1,526,481.95

2002

 

$3,554,744.04

 

$3,554,744.04

2003

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2004

$228,159.45

$5,386,558.19

$102,675.04

$5,717,392.68

Suma końcowa

$384,639.63

$16,107,890.23

$172,817.81

$16,665,347.67