CALCULATE, funkcja

Ukończone

Funkcja CALCULATE jest jedną z najbardziej wszechstronnych funkcji w usłudze Power BI. W poniższym przykładzie przedstawiono składnię funkcji CALCULATE:

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

Wyrażenie w pierwszym parametrze należy ocenić, aby zwrócić wynik (wartość) i jest zwykle funkcją agregacji, np. SUM, AVG, MIN itp. To wyrażenie jest następnie oceniane w kontekście na podstawie filtrów. Te filtry mogą rozszerzać i ograniczać bieżący kontekst oceny.

Za pomocą funkcji CALCULATE masz kontrolę nad kontekstem wiersza i filtru. Filtry można dodawać, usuwać i aktualizować. CALCULATE to kluczowa funkcja dla wielu obliczeń w języku DAX.

Dodawanie filtru za pomocą funkcji CALCULATE

Poniższy fragment kodu przedstawia przykład oceny łącznej sprzedaży i dodawania kontekstu filtru samolotu.

Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )

Porada

Poniższy fragment kodu pokazuje, jak wykonać to samo obliczenie w tabeli Tableau:

Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END

Aktualizowanie filtru przy użyciu funkcji CALCULATE

Poniższy fragment kodu przedstawia przykład pobierania wartości "Sprzedaż 2018", nawet jeśli w fragmentatorze roku wybrano 2019 rok.

2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )

Porada

Bezpośrednie porównanie tableau nie wydaje się być dostępne. Aby ukończyć tę funkcję w tableau, należy zduplikować pola, wprowadzić dodatkowe źródła danych lub wykonać obliczenia w każdej kolumnie.

Ignoruj filtr z funkcją CALCULATE

Poniższy fragment kodu przedstawia przykład znalezienia całkowitej sprzedaży w stanach, które mają Aleksandrię wymienioną jako miasto ("Alexandria" jest wartością wybraną we fragmentatorze miasta).

Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )

Porada

To samo obliczenie w tableau należy wykonać przy użyciu wyrażenia EXCLUDE LOD. Zwróć uwagę, że to wyrażenie LOD różni się od drugiego ze względu na stopień szczegółowości. W tym wyrażeniu należy wykluczyć stan z widoku zamiast stanu i miasta:

Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }