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 |
Zobacz także