CALCULATETABLE
gjelder:beregnet kolonneberegnet tabellMeasurevisualobjektberegning
Evaluerer et tabelluttrykk i en endret filter kontekst.
Notat
Det finnes også CALCULATE-funksjonen. Den utfører nøyaktig samme funksjonalitet, except den endrer filter konteksten brukt på et uttrykk som returnerer en skalar value.
Syntaks
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parametere
Vilkår | Definisjon |
---|---|
expression |
Tabelluttrykket som skal evalueres. |
filter1, filter2,… |
(Valgfritt) Boolske uttrykk or tabelluttrykk som definerer filters, orfilter endringsfunksjoner. |
Uttrykket som brukes som first-parameteren, må være en modelltabell or en funksjon som returnerer en tabell.
Filters kan være:
- Boolske filter uttrykk
- Tabell filter uttrykk
- Filter endringsfunksjoner
Når det finnes flere filters, evalueres de ved hjelp av den ANDlogiske operatoren. Det betyr at all betingelser må være TRUE
på samme time.
Boolske filter uttrykk
Et boolsk uttrykk filter er et uttrykk som evalueres til TRUE
orFALSE
. Det finnes flere regler de må følge:
- De kan bare referere til én enkelt kolonne.
- De kan ikke referere til mål.
- De kan ikke bruke en nestet CALCULATE-funksjon.
Fra og med september 2021-utgivelsen av Power BI Desktop, gjelder følgende også:
- De kan ikke bruke funksjoner som skanner or returnere en tabell med mindre de sendes som argumenter til aggregasjonsfunksjoner.
- De kan inneholde en aggregasjonsfunksjon som returnerer en skalar value.
Tabell filter uttrykk
Et tabelluttrykk filter bruker et tabellobjekt som en filter. Det kan være en referanse til en modelltabell, men mer sannsynlig er det en funksjon som returnerer et tabellobjekt. Du kan bruke FILTER-funksjonen til å bruke komplekse filter betingelser, inkludert de som ikke kan defineres av et boolsk filter uttrykk.
Filter endringsfunksjoner
Filter endringsfunksjoner lar deg gjøre mer enn bare å legge til filters. De gir deg ekstra kontroll når du endrer filter kontekst.
Funksjon | Hensikt |
---|---|
REMOVEFILTERS | Fjern allfilters, orfilters fra én or flere kolonner i en tabell, or fra all kolonner i én enkelt tabell. |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | Fjern filters fra én or flere kolonner, or fra all kolonner i én enkelt tabell. |
KEEPFILTERS | Legg til filter uten å fjerne eksisterende filters i de samme kolonnene. |
USERELATIONSHIP | Engasjer en inaktiv relasjon mellom related kolonner, og i så fall blir den aktive relasjonen automatisk inaktiv. |
CROSSFILTER | Endre filter retning (fra både til enkel, or fra enkel til begge) or deaktivere en relasjon. |
1 Funksjonen ALLand variantene fungerer som både filter modifikatorer and som funksjoner som returnerer tabellobjekter. If REMOVEFILTERS-funksjonen støttes av verktøyet, er det bedre å bruke den til å fjerne filters.
Returner value
En tabell med values.
Merknader
Når filter uttrykk er angitt, endrer CALCULATETABLE-funksjonen filter konteksten for å evaluate uttrykket. For hvert filter uttrykk finnes det to mulige standardresultater når filter-uttrykket not er pakket inn i KEEPFILTERS-funksjonen:
- If kolonnene (or tabeller) ikke er i filter kontekst, legges nye filters til i filter konteksten for å evaluate uttrykket.
- If kolonnene (or tabeller) allerede er i filter kontekst, overskrives den eksisterende filters av den nye filters for å evaluateCALCULATETABLE-uttrykket.
Denne funksjonen støttes not for bruk i DirectQuery-modus når den brukes i beregnede kolonner or regler for sikkerhet på radnivå (RLS).
Eksempel
Følgende eksempel bruker CALCULATETABLE-funksjonen til å få sum av Internett-salg for 2006. Denne value brukes senere til å calculate forholdet mellom Internett-salg sammenlignet med all salg for year 2006.
Følgende formel:
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
Det resulterer i følgende tabell:
Radetiketter | Internett-SalesAmount_USD | CalculateTable 2006 Internet Sales | Internett-salg til 2006-forhold |
---|---|---|---|
2005 | KR 2 627 031,40 | KR 5 681 440,58 | 0.46 |
2006 | KR 5 681 440,58 | KR 5 681 440,58 | 1.00 |
2007 | KR 8 705 066,67 | KR 5 681 440,58 | 1.53 |
2008 | KR 9 041 288,80 | KR 5 681 440,58 | 1.59 |
Totalsum | KR 26 054 827,45 | KR 5 681 440,58 | 4.59 |