Funktionen CALCULATE

Slutförd

Funktionen CALCULATE är en av de mest mångsidiga funktionerna i Power BI. I följande exempel visas syntaxen för funktionen CALCULATE:

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

Uttrycket i den första parametern måste utvärderas för att returnera resultatet (ett värde) och är vanligtvis en aggregeringsfunktion som SUM, AVG, MIN osv. Det här uttrycket utvärderas sedan i en kontext som baseras på filtren. Dessa filter kan expandera och begränsa den aktuella utvärderingskontexten.

Med funktionen CALCULATE har du kontroll över rad- och filterkontexten. Du kan lägga till, ta bort och uppdatera filter. CALCULATE är nyckelfunktionen för många beräkningar i DAX.

Lägga till ett filter med CALCULATE

Följande kodfragment visar ett exempel på hur du utvärderar total försäljning och lägger till en kontext för flygplansfilter.

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

Tips

Följande kodfragment visar hur du gör samma beräkning i Tableau:

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

Uppdatera ett filter med CALCULATE

Följande kodfragment visar ett exempel på hur du hämtar "2018 Sales", även när 2019 väljs i ett årsutsnitt.

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

Tips

En direkt Tableau-jämförelse verkar inte vara tillgänglig. För att slutföra den här funktionen i Tableau behöver du duplicera fält, ta in kompletterande datakällor eller utföra beräkningar för varje kolumn.

Ignorera ett filter med CALCULATE

Följande kodfragment visar ett exempel på hur du hittar den totala försäljningen i delstater som har Alexandria listat som en stad ("Alexandria" är ett värde som väljs i ett stadsutsnitt).

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

Tips

Du skulle göra samma beräkning i Tableau med hjälp av LOD-uttrycket EXCLUDE. Observera att det här LOD-uttrycket skiljer sig från det andra med dess kornighet. Med det här uttrycket vill du exkludera tillståndet från vyn i stället för delstat och stad:

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