Begivenhed
31. mar., 23 - 2. apr., 23
Den ultimative Microsoft Fabric-, Power BI-, SQL- og AI-communityledede begivenhed. 31. marts til 2. april 2025.
Tilmeld dig i dagDenne browser understøttes ikke længere.
Opgrader til Microsoft Edge for at drage fordel af de nyeste funktioner, sikkerhedsopdateringer og teknisk support.
gælder for:beregnet kolonneberegnet tabelMeasurevisualiseringsberegning
Evaluerer et udtryk i en ændret filter kontekst.
Bemærk
Der er også funktionen CALCULATETABLE. Den udfører præcis den samme funktionalitet, except den ændrer den filter kontekst, der anvendt på et udtryk, der returnerer et tabelobjekt.
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
Udtryk | Definition |
---|---|
expression |
Det udtryk, der skal evalueres. |
filter1, filter2,… |
(Valgfrit) Booleske udtryk or tabeludtryk, der definerer filters, orfilter modifikatorfunktioner. |
Det udtryk, der bruges som parameteren first, er stort set det samme som et measure.
Filters kan være:
Når der er flere filters, kan de evalueres ved hjælp af den AND (&&
) logiske operator, hvilket betyder, at all betingelser skal være TRUE
, or af den logiske operator OR (||
) , hvilket betyder, at begge betingelser kan være true.
Et boolesk udtryk filter er et udtryk, der evalueres til TRUE
orFALSE
. Der er flere regler, som de skal overholde:
Fra og med udgivelsen af Power BI Desktop fra september 2021 gælder følgende også:
Total sales on the last selected date =
CALCULATE (
SUM ( Sales[Sales Amount] ),
'Sales'[OrderDateKey] = MAX ( 'Sales'[OrderDateKey] )
)
Et tabeludtryk filter anvender et tabelobjekt som en filter. Det kan være en reference til en modeltabel, men mere sandsynligt er det en funktion, der returnerer et tabelobjekt. Du kan bruge funktionen FILTER til at anvende komplekse filter betingelser, herunder dem, der ikke kan defineres af et boolesk filter udtryk.
Filter modifikatorfunktioner gør det muligt at gøre mere end blot at tilføje filters. De giver dig yderligere kontrol, når du ændrer filter kontekst.
Funktion | Formål |
---|---|
REMOVEFILTERS | Fjern allfiltersorfilters fra en or flere kolonner i en tabel or fra all kolonner i en enkelt tabel. |
ALL 1, ALLEXCEPTALLNOBLANKROW | Fjern filters fra en or flere kolonner, or fra all kolonner i en enkelt tabel. |
KEEPFILTERS | Tilføj filter uden at fjerne eksisterende filters på de samme kolonner. |
USERELATIONSHIP | Aktivér en inaktiv relation mellem related kolonner, hvorefter den aktive relation automatisk bliver inaktiv. |
CROSSFILTER | Rediger filter retning (fra begge til enkelt, or fra enkelt til begge) or deaktivere en relation. |
1 Funktionen ALLand dens varianter fungerer som begge filter modifikatorer and som funktioner, der returnerer tabelobjekter. If funktionen REMOVEFILTERS understøttes af værktøjet, er det bedre at bruge den til at fjerne filters.
Den value, der er resultatet af udtrykket.
Når der angives filter udtryk, ændrer funktionen CALCULATE den filter kontekst for at evaluate udtrykket. For hvert filter udtryk er der to mulige standardresultater, når det filter udtryk not ombrudt i funktionen KEEPFILTERS:
Funktionen CALCULATE, der bruges uden filters, opfylder et bestemt krav. Den overgår rækkekontekst til filter kontekst. Det er påkrævet, når et udtryk (not en model measure), der opsummerer modeldata, skal evalueres i rækkekontekst. Dette scenarie kan ske i en formel for en beregnet kolonne or, når et udtryk i en iteratorfunktion evalueres. Bemærk, at når en model measure bruges i rækkekontekst, sker kontekstovergangen automatisk.
Denne funktion understøttes not til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner or RLS-regler (row-level security).
Følgende tabellen Salesmeasure definition giver et indtægtsresultat, men kun for produkter, der har farven blå.
Eksempler i denne artikel kan bruges sammen med sample Adventure Works DW 2020 Power BI Desktop-model. Hvis du vil hente modellen, skal du se DAXsample model.
Blue Revenue =
CALCULATE(
SUM(Sales[Sales Amount]),
'Product'[Color] = "Blue"
)
Kategori | Salgsbeløb | Blå indtægt |
---|---|---|
Tilbehør | 1.272.057,89 USD | 165.406,62 USD |
Cykler | 94.620.526,21 USD | 8.374.313,88 USD |
Tøj | 2.117.613,45 USD | 259.488,37 USD |
Komponenter | 11.799.076,66 USD | 803.642,10 USD |
i alt | 109.809.274,20 USD | 9.602.850,97 USD |
Funktionen CALCULATE evaluerer sum af tabellen Saleskolonnen Sales Amount i en ændret filter kontekst. Der føjes en ny filter til den Product tabel kolonnen Color–oroverskriver filter alle filter, der allerede er anvendt på kolonnen.
Følgende tabel over salgmeasure definition giver et forhold mellem salg og salg for all salgskanaler.
Kanal | Salgsbeløb | Indtægt % kanal i alt |
---|---|---|
Internet | 29.358.677,22 USD | 26.74% |
Forhandler | 80.450.596,98 USD | 73.26% |
i alt | 109.809.274,20 USD | 100,00% |
Revenue % Total Channel =
DIVIDE(
SUM(Sales[Sales Amount]),
CALCULATE(
SUM(Sales[Sales Amount]),
REMOVEFILTERS('Sales Order'[Channel])
)
)
Funktionen DIVIDE opdeler et udtryk, der opsummerer tabellen Saleskolonnen Sales Amountvalue (i den filter kontekst) med det samme udtryk i en ændret filter kontekst. Det er den CALCULATE funktion, der ændrer den filter kontekst ved hjælp af funktionen REMOVEFILTERS, som er en filter modifikatorfunktion. Det fjerner filters fra tabellen Sales OrderChannel kolonne.
Følgende Definition af beregnet kolonne for kunde tabel klassificerer kunder i en loyalitetsklasse. Det er et meget simpelt scenarie: Når kundens indtægt er mindre end 2.500 USD, klassificeres de som Low; Ellers er de High.
Customer Segment =
IF(
CALCULATE(SUM(Sales[Sales Amount]), ALLEXCEPT(Customer, Customer[CustomerKey])) < 2500,
"Low",
"High"
)
I dette eksempel konverteres rækkekontekst til den filter kontekst. Det kaldes kontekstovergang. Funktionen ALLEXCEPT fjerner filters fra tabelkolonnerne allCustomerexcept kolonnen CustomerKey.
Filter kontekst
rækkekontekst
CALCULATETABLE funktion
Filter funktioner
Begivenhed
31. mar., 23 - 2. apr., 23
Den ultimative Microsoft Fabric-, Power BI-, SQL- og AI-communityledede begivenhed. 31. marts til 2. april 2025.
Tilmeld dig i dag