CALCULATETABLE
Dotyczy:kolumna obliczeniowatabela obliczeniowaMiarawizualizacji
Oblicza wyrażenie tabeli w zmodyfikowanym kontekście filtru.
Nuta
Istnieje również funkcja CALCULATE. Wykonuje dokładnie te same funkcje, z wyjątkiem modyfikacji kontekstu filtru zastosowanego do wyrażenia zwracającego wartość skalarną .
Składnia
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parametry
Termin | Definicja |
---|---|
expression |
Wyrażenie tabeli do obliczenia. |
filter1, filter2,… |
(Opcjonalnie) Wyrażenia logiczne lub wyrażenia tabeli definiujące filtry lub funkcje modyfikujące filtr. |
Wyrażenie używane jako pierwszy parametr musi być tabelą modelu lub funkcją zwracającą tabelę.
Filtry mogą być następujące:
- Wyrażenia filtru warunkowego
- Wyrażenia filtru tabeli
- Funkcje modyfikacji filtru
Jeśli istnieje wiele filtrów, są one oceniane przy użyciu operatora logicznego AND. Oznacza to, że wszystkie warunki muszą być TRUE
jednocześnie.
Wyrażenia filtru warunkowego
Filtr wyrażenia warunkowego jest wyrażeniem, które daje w wyniku TRUE
lub FALSE
. Istnieje kilka reguł, które muszą przestrzegać:
- Mogą odwoływać się tylko do jednej kolumny.
- Nie mogą odwoływać się do miar.
- Nie mogą używać zagnieżdżonej funkcji CALCULATE.
Począwszy od wersji programu Power BI Desktop z września 2021 r., obowiązują również następujące elementy:
- Nie mogą używać funkcji, które skanują lub zwracają tabelę, chyba że są przekazywane jako argumenty do funkcji agregacji.
- mogą zawierać funkcję agregacji, która zwraca wartość skalarną.
Wyrażenie filtru tabeli
Filtr wyrażeń tabeli stosuje obiekt tabeli jako filtr. Może to być odwołanie do tabeli modelu, ale najprawdopodobniej jest to funkcja zwracająca obiekt tabeli. Możesz użyć funkcji FILTER, aby zastosować złożone warunki filtrowania, w tym te, których nie można zdefiniować za pomocą wyrażenia filtru logicznego.
Funkcje modyfikujące filtr
Funkcje modyfikujące filtr umożliwiają wykonywanie więcej niż tylko dodawanie filtrów. Zapewniają one dodatkową kontrolę podczas modyfikowania kontekstu filtru.
Funkcja | Cel |
---|---|
REMOVEFILTERS | Usuń wszystkie filtry lub filtry z co najmniej jednej kolumny tabeli lub ze wszystkich kolumn pojedynczej tabeli. |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | Usuń filtry z co najmniej jednej kolumny lub ze wszystkich kolumn pojedynczej tabeli. |
KEEPFILTERS | Dodaj filtr bez usuwania istniejących filtrów w tych samych kolumnach. |
USERELATIONSHIP | Angażowanie nieaktywnej relacji między powiązanymi kolumnami, w tym przypadku aktywna relacja automatycznie stanie się nieaktywna. |
CROSSFILTER | Zmodyfikuj kierunek filtrowania (zarówno z jednej, jak i z pojedynczej do obu) lub wyłącz relację. |
1 funkcja ALL i jego warianty zachowują się zarówno jako modyfikatory filtrów, jak i funkcje zwracające obiekty tabeli. Jeśli funkcja REMOVEFILTERS jest obsługiwana przez narzędzie, lepiej użyć jej do usuwania filtrów.
Wartość zwracana
Tabela wartości.
Uwagi
Po podaniu wyrażeń filtru funkcja CALCULATETABLE modyfikuje kontekst filtru w celu obliczenia wyrażenia. Dla każdego wyrażenia filtru istnieją dwa możliwe wyniki standardowe, gdy wyrażenie filtru nie jest opakowane w funkcję KEEPFILTERS:
- Jeśli kolumny (lub tabele) nie są w kontekście filtru, nowe filtry zostaną dodane do kontekstu filtru w celu oceny wyrażenia.
- Jeśli kolumny (lub tabele) znajdują się już w kontekście filtru, istniejące filtry zostaną zastąpione przez nowe filtry w celu obliczenia wyrażenia CALCULATETABLE.
Ta funkcja nie jest obsługiwana w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych lub regułach zabezpieczeń na poziomie wiersza.
Przykład
W poniższym przykładzie użyto funkcji CALCULATETABLE, aby uzyskać sumę sprzedaży internetowej dla 2006 roku. Ta wartość jest później używana do obliczania stosunku sprzedaży internetowej do wszystkich sprzedaży w roku 2006.
Następująca formuła:
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
Spowoduje to wykonanie następującej tabeli:
Etykiety wierszy | Internet SalesAmount_USD | CalculateTable 2006 Internet Sales | Stosunek sprzedaży internetowej do 2006 |
---|---|---|---|
2005 | $2,627,031.40 | $5,681,440,58 | 0.46 |
2006 | $5,681,440,58 | $5,681,440,58 | 1.00 |
2007 | 8705 066,67 USD | $5,681,440,58 | 1.53 |
2008 | $9,041,288,80 | $5,681,440,58 | 1.59 |
Suma końcowa | 26 054 827,45 USD | $5,681,440,58 | 4.59 |
Powiązana zawartość
- kontekstu filtru
- CALCULATE, funkcja (DAX)
- funkcje filtru (DAX)