CALCULATETABLE
gjelder:beregnet kolonne
beregnet tabell
måle
visualobjektberegning
Evaluerer et tabelluttrykk i en endret filterkontekst.
Notat
Det finnes også CALCULATE-funksjonen. Den utfører nøyaktig samme funksjonalitet, bortsett fra at den endrer filterkonteksten brukt på et uttrykk som returnerer en skalarverdi.
Syntaks
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parametere
Vilkår | Definisjon |
---|---|
expression |
Tabelluttrykket som skal evalueres. |
filter1, filter2,… |
(Valgfritt) Boolske uttrykk eller tabelluttrykk som definerer filtre, eller filtermodifikatorfunksjoner. |
Uttrykket som brukes som den første parameteren, må være en modelltabell eller en funksjon som returnerer en tabell.
Filtre kan være:
- Boolske filteruttrykk
- Tabellfilteruttrykk
- Filtermodifikasjonsfunksjoner
Når det finnes flere filtre, evalueres de ved hjelp av den ANDlogiske operatoren. Det betyr at alle betingelser må være TRUE
samtidig.
Boolske filteruttrykk
Et boolsk uttrykksfilter er et uttrykk som evalueres til TRUE
eller FALSE
. 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 eller returnerer en tabell med mindre de sendes som argumenter til aggregasjonsfunksjoner.
- De kan inneholde en aggregasjonsfunksjon som returnerer en skalarverdi.
Tabellfilteruttrykk
Et tabelluttrykksfilter bruker et tabellobjekt som et 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 filterbetingelser, inkludert de som ikke kan defineres av et boolsk filteruttrykk.
Funksjoner for filtermoderator
Filtrer endringsfunksjoner lar deg gjøre mer enn bare å legge til filtre. De gir deg ekstra kontroll når du endrer filterkontekst.
Funksjon | Hensikt |
---|---|
REMOVEFILTERS | Fjern alle filtre eller filtre fra én eller flere kolonner i en tabell, eller fra alle kolonnene i én enkelt tabell. |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | Fjern filtre fra én eller flere kolonner, eller fra alle kolonnene i én enkelt tabell. |
KEEPFILTERS | Legg til filter uten å fjerne eksisterende filtre i de samme kolonnene. |
USERELATIONSHIP | Engasjer en inaktiv relasjon mellom relaterte kolonner, og i så fall blir den aktive relasjonen automatisk inaktiv. |
CROSSFILTER | Endre filterretning (fra både til enkel eller fra enkel til begge) eller deaktiver en relasjon. |
1 Funksjonen ALL og variantene fungerer som både filtermodifiserte og som funksjoner som returnerer tabellobjekter. Hvis REMOVEFILTERS-funksjonen støttes av verktøyet, er det bedre å bruke den til å fjerne filtre.
Returverdi
En tabell med verdier.
Merknader
Når filteruttrykk er angitt, endrer CALCULATETABLE-funksjonen filterkonteksten for å evaluere uttrykket. For hvert filteruttrykk er det to mulige standardresultater når filteruttrykket ikke er pakket inn i KEEPFILTERS-funksjonen:
- Hvis kolonnene (eller tabellene) ikke er i filterkonteksten, legges nye filtre til i filterkonteksten for å evaluere uttrykket.
- Hvis kolonnene (eller tabellene) allerede er i filterkonteksten, overskrives de eksisterende filtrene av de nye filtrene for å evaluere CALCULATETABLE-uttrykket.
Denne funksjonen støttes ikke for bruk i DirectQuery-modus når den brukes i beregnede kolonner eller regler for sikkerhet på radnivå (RLS).
Eksempel
Følgende eksempel bruker CALCULATETABLE-funksjonen til å hente summen av Internett-salg for 2006. Denne verdien brukes senere til å beregne forholdet mellom Internett-salg sammenlignet med alle salg for året 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 |