Funkcja FILTER (język DAX)
Zwraca tabelę przedstawiającą podzestaw innej tabeli lub wyrażenia.
Składnia
FILTER(<table>,<filter>)
Parametry
Termin |
Definicja |
---|---|
tabela |
Tabela do przefiltrowania.Może to być również wyrażenie dające w wyniku tabelę. |
filtr |
Wyrażenie logiczne, które ma zostać obliczone dla poszczególnych wierszy tabeli.Na przykład [Amount] > 0 lub [Region] = "France" |
Wartość zwracana
Tabela zawierająca tylko wyfiltrowane wiersze.
Uwagi
Funkcji FILTER można użyć w celu zmniejszenia liczby wierszy w aktualnie używanej tabeli, co umożliwi użycie w obliczeniach tylko określonych danych.Funkcja FILTER nie jest używana niezależnie, lecz jako funkcja osadzona w innych funkcjach, wymagających tabeli jako argumentu.
Przykład
W poniższym przykładzie zostanie utworzony raport dotyczący sprzedaży internetowej poza USA, w którym będzie używana miara odfiltrowująca sprzedaż w USA. Następnie dane będą fragmentowane według roku kalendarzowego i kategorii produktów.Aby utworzyć tę miarę, należy filtrować tabelę InternetSales_USD, używając tabeli SalesTerritory, a następnie użyć przefiltrowanej tabeli w funkcji SUMX.
W tym przykładzie wyrażenie FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") zwraca tabela, która jest podzbiór Internet sprzedaży minus wszystkie wiersze, które należą do terytorium sprzedaży Stanów Zjednoczonych.Funkcja RELATED łączy klucz Territory w tabeli InternetSales_USD z kolumną SalesTerritoryCountry w tabeli SalesTerritory.
W poniższej tabeli pokazano wyniki użycia miary Sprzedaż internetowa poza USA, której formułę przedstawiono w sekcji kodu poniżej.W tej tabeli znajduje się porównanie całej sprzedaży internetowej ze sprzedażą internetową poza USA, co pozwala stwierdzić, że wyrażenie filtru działa, ponieważ sprzedaż w USA została wykluczona z obliczeń.
Do odtworzenia tej tabeli, Dodaj pole SalesTerritoryCountry, do Etykiety wierszy obszaru tabela przestawna.
Tabela 1.Comparing total sales for U.S.vs.all other regions
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 finalnej tabeli raportu pokazano wyniki, które zostały zwrócone po utworzeniu tabeli przestawnej przy użyciu miary Sprzedaż internetowa poza USA.Dodaj do pole CalendarYear, Etykiety wierszy obszaru tabela przestawna i dodać do pole, ProductCategoryName, Etykiety kolumn obszaru.
Tabela 2.Comparing non- U.S.sales by product categories
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 |
SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
,'InternetSales_USD'[SalesAmount_USD])
Zobacz także