Udostępnij za pośrednictwem


Funkcja CALCULATE

Oblicza wyrażenie w kontekście zmodyfikowanym przez określone filtry.

Składnia

CALCULATE(<expression>,<filter1>,<filter2>…)

Parametry

Termin

Definicja

expression

Wyrażenie, które ma zostać obliczone.

filter1,filter2,…

(Argument opcjonalny) Lista rozdzielonych przecinkami wyrażeń logicznych lub wyrażeń tabeli definiujących filtry.

Wyrażenie użyte jako pierwszy parametr zasadniczo jest tym samym co miara.

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

Wartość będąca wynikiem wyrażenia.

Uwagi

W przypadku filtrowania danych funkcja CALCULATE 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.

Przykład

Aby obliczyć stosunek wartości sprzedaży bieżącego odsprzedawcy do wartości sprzedaży wszystkich odsprzedawców, należy dodać do tabeli przestawnej miarę, w której w liczniku będzie obliczana suma sprzedaży dla bieżącej komórki, a w mianowniku będzie obliczana suma sprzedaży wszystkich odsprzedawców. Aby zagwarantować, że mianownik będzie zawsze taki sam, niezależnie od sposobu filtrowania lub grupowania danych tabeli przestawnej, w części formuły odpowiadającej mianownikowi należy użyć funkcji ALL w celu wyczyszczenia wszystkich filtrów i utworzenia poprawnej sumy końcowej.

W poniższej tabeli pokazano wyniki w przypadku utworzenia nowej miary o nazwie Stosunek do sprzedaży wszystkich odsprzedawców przy użyciu formuły pokazanej w sekcji kodu.

Aby zobaczyć działanie tej formuły, dodaj pole CalendarYear do obszaru Etykiety wierszy tabeli przestawnej i pole ProductCategoryName do obszaru Etykiety kolumn. Następnie dodaj nową miarę do obszaru Wartości tabeli przestawnej. Aby wyświetlić liczby jako wartości procentowe, zastosuj formatowanie procentowe do obszaru tabeli przestawnej, który zawiera nową miarę o nazwie Stosunek do sprzedaży wszystkich odsprzedawców.

Sprzedaż wszystkich odsprzedawców

Etykiety kolumn

 

 

 

 

Etykiety wierszy

Accessories

Bikes

Clothing

Components

Suma końcowa

2005

0.02%

9.10%

0.04%

0.75%

9.91%

2006

0.11%

24.71%

0.60%

4.48%

29.90%

2007

0.36%

31.71%

1.07%

6.79%

39.93%

2008

0.20%

16.95%

0.48%

2.63%

20.26%

Suma końcowa

0.70%

82.47%

2.18%

14.65%

100.00%

=( SUM('ResellerSales_USD'[SalesAmount_USD]))
 /CALCULATE( SUM('ResellerSales_USD'[SalesAmount_USD])
           ,ALL('ResellerSales_USD'))

Wyrażenie CALCULATE w mianowniku umożliwia uwzględnienie w wyrażeniu SUM wszystkich wierszy. Powoduje to zastąpienie niejawnych filtrów wartości CalendarYear i ProductCategoryName, które są stosowane dla licznika wyrażenia.

Funkcje pokrewne

Podczas gdy funkcja CALCULATE wymaga, aby jej pierwszym argumentem było wyrażenie zwracające pojedynczą wartość, funkcja CALCULATETABLE przyjmuje jako argument tabelę wartości.

Zobacz także

Odwołanie

Funkcja CALCULATETABLE

Inne zasoby

Funkcje filtru (język DAX)