CALCULATETABLE

Gjelder beregnet beregning av beregnet tabellfor beregnet kolonne

Evaluerer et tabelluttrykk i en endret filterkontekst.

Merk

Det finnes også CALCULATE-funksjonen. Den utfører nøyaktig samme funksjonalitet, bortsett fra at den endrer filterkonteksten som brukes på et uttrykk som returnerer en skalarverdi.

Syntaks

CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])

Parametere

Term Definisjon
Uttrykk 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 logiske operatoren AND. Det betyr at alle betingelser må være SANN samtidig.

Boolske filteruttrykk

Et boolsk uttrykk-filter 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 tabelluttrykkfilter 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.

Function Formål
REMOVEFILTERS Fjern alle filtre eller filtre fra én eller flere kolonner i en tabell, eller fra alle kolonnene i én enkelt tabell.
ALLE1, 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 ALL-funksjonen 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

Eksemplet nedenfor 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
Grand Total KR 26 054 827,45 KR 5 681 440,58 4.59