Udostępnij za pośrednictwem


CALCULATETABLE

Dotyczy: Obliczanie kolumny obliczeniowej tabeli Obliczeniowej Obliczenie wizualizacji

Oblicza wyrażenie tabeli w zmodyfikowanym kontekście filtru.

Uwaga

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
wyrażenie 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ą mieć wartość TRUE w tym samym czasie.

Wyrażenia filtru warunkowego

Filtr wyrażenia warunkowego to wyrażenie, które zwraca wartość TRUE (prawda) lub FALSE (fałsz). 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żenia tabeli stosuje jako filtr obiekt tabeli. 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.

Function Purpose
USUŃFILERY Usuń wszystkie filtry lub filtry z co najmniej jednej kolumny tabeli lub ze wszystkich kolumn pojedynczej tabeli.
WSZYSTKIE 1, ALLEXCEPT, ALLNOBLANKROW Usuń filtry z co najmniej jednej kolumny lub ze wszystkich kolumn pojedynczej tabeli.
ZACHOWAJFILERY 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.
FILTROWANIE KRZYŻOWE 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 jako 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