Udostępnij za pośrednictwem


Funkcja RELATED

Zwraca powiązaną wartość z innej tabeli.

Składnia

RELATED(<column>)

Parametry

Termin

Definicja

column

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

[!UWAGA]

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. Kraj United States występuje w tabeli SalesTerritory 5 razy, czyli raz dla każdego z następujących regionów: Northwest, Northeast, Central, Southwest i Southeast.

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 nieintuicyjne i podatne na błędy pisowni, a ponadto może przestać działać, jeśli dowolny z istniejących regionów zostanie w przyszłości podzielony.

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.

[!UWAGA]

Jeśli ten przykład nie działa, być może trzeba utworzyć relację między tabelami. Aby uzyskać więcej informacji, zobacz temat 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

2005

 

$1,526,481.95

 

$1,526,481.95

2006

 

$3,554,744.04

 

$3,554,744.04

2007

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2008

$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

Zobacz także

Odwołanie

Funkcja RELATEDTABLE

Inne zasoby

Funkcje filtru (język DAX)

Relacje między tabelami