Funkcja CALCULATETABLE (język DAX)
Oblicza wyrażenie tabeli w kontekście zmodyfikowanym przez podane filtry.
Składnia
CALCULATETABLE(<expression>,<filter1>,<filter2>,…)
Parametry
Termin |
Definicja |
---|---|
Wyrażenie |
Wyrażenie tabeli, które ma zostać obliczone. |
filtr1,filtr2,… |
Wyrażenie logiczne lub wyrażenie tabeli definiujące filtr. |
Wyrażenie używane jako pierwszy parametr musi być funkcja, która zwraca tabela.
Wyrażenia logiczne używane jako argumenty podlegają następującym ograniczeniom:
Wyrażenie nie może odwoływać się do miary.
Wyrażenie nie może zawierać zagnieżdżonej funkcji CALCULATE.
Wyrażenie nie może zawierać żadnej funkcji, która skanuje lub zwraca tabelę, w tym funkcji agregacji.
Jednak wyrażenie logiczne może zawierać funkcję, która wyszukuje pojedynczą wartość lub oblicza wartość skalarną.
Wartość zwracana
Tabela wartości.
Uwagi
Funkcja CALCULATETABLE zmienia kontekst, w którym dane są filtrowane, i oblicza wyrażenie w nowym kontekście określonym przez użytkownika.Dla każdej kolumny użytej w argumencie filtr wszelkie istniejące filtry dotyczące kolumny są usuwane i w zamian jest stosowany określony filtr.
Ta funkcja stanowi synonim funkcji RELATEDTABLE.
Przykład
W poniższym przykładzie używana jest funkcja CALCULATETABLE w celu pobrania sumy sprzedaży internetowej za rok 2002.Ta wartość jest potem używana w celu obliczenia stosunku sprzedaży internetowej do całej sprzedaży w 2002 roku.
W poniższej tabeli pokazano wyniki poniższej formuły.
Etykiety wierszy |
Kwota sprzedaży internetowej (USD) |
Wynik działania funkcji CalculateTable dotyczący sprzedaży internetowej w 2002 roku |
Stosunek sprzedaży internetowej do sprzedaży w 2002 roku |
---|---|---|---|
2001 |
$2,627,031.40 |
$5,681,440.58 |
0.46 |
2002 |
$5,681,440.58 |
$5,681,440.58 |
1.00 |
2003 |
$8,705,066.67 |
$5,681,440.58 |
1.53 |
2004 |
$9,041,288.80 |
$5,681,440.58 |
1.59 |
Suma końcowa |
$26,054,827.45 |
$5,681,440.58 |
4.59 |
=SUMX( CALCULATETABLE('InternetSales_USD', 'DateTime'[CalendarYear]=2002)
, [SalesAmount_USD])