CALCULATETABLE

Utvärderar ett tabelluttryck i en modifierad filterkontext.

Anteckning

Dessutom finns funktionen CALCULATE. Den utför exakt samma funktion, förutom att den modifierar filterkontexten som tillämpas på ett uttryck som returnerar ett skalärt värde.

Syntax

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

Parametrar

Period Definition
uttryck Tabelluttrycket som ska utvärderas.
filter1, filter2,... (Valfritt) Booleska uttryck eller tabelluttryck som definierar filter, eller funktioner för filtermodifiering.

Uttrycket som används i den första parametern måste vara en modelltabell eller funktion som returnerar en tabell.

Filter kan vara:

  • Booleska filteruttryck
  • Tabellfilteruttryck
  • Funktioner för filtermodifiering

När det finns flera filter utvärderas de med hjälp av den logiska operatorn AND. Det innebär att alla villkor måste utvärderas till TRUE samtidigt.

Booleska filteruttryck

Ett booleskt uttrycksfilter är ett uttryck som utvärderas till TRUE eller FALSE. De måste följa fler regler:

  • De kan bara referera till en enda kolumn.
  • De kan inte referera till ett mått.
  • De kan inte ha en kapslad CALCULATE-funktion.

Från och med versionen från september 2021 Power BI Desktop gäller även följande:

  • De kan inte använda funktioner som skannar eller returnerar en tabell om de inte skickas som argument till sammansättningsfunktioner.
  • De kan innehålla en sammansättningsfunktion som returnerar ett skalära värde.

Tabellfilteruttryck

Ett tabelluttrycksfilter använder ett tabellobjekt som ett filter. Det kan vara en referens till en modelltabell, men förmodligen är det en funktion som returnerar ett tabellobjekt. Du kan använda funktionen FILTER för att tillämpa komplexa filtervillkor, bland annat sådana som inte kan definieras via ett booleskt filteruttryck.

Funktioner för filtermodifiering

Med funktioner för filtermodifierare kan du göra mer än att bara lägga till filter. De ger dig ytterligare kontroll när du modifierar filterkontexten.

Funktion Syfte
REMOVEFILTERS Ta bort alla filter, filter från en eller flera kolumner i en tabell eller filter från alla kolumner i en enskild tabell.
ALL1, ALLEXCEPT, ALLNOBLANKROW Ta bort filter från en eller flera kolumner, eller från alla kolumner i en enskild tabell.
KEEPFILTERS Lägg till filter utan att ta bort befintliga filter för samma kolumner.
USERELATIONSHIP Upprätta en inaktiv relation mellan relaterade kolumner, vilket gör att den aktiva relationen inaktiveras automatiskt.
CROSSFILTER Ändra filterriktningen (från båda till ena eller från ena till båda) eller inaktivera en relation.

1 Funktionen ALL och dess varianter fungerar som både filtermodifierare och som funktioner som returnerar tabellobjekt. Om ditt verktyg har stöd för funktionen REMOVEFILTERS är det bättre att använda den till att ta bort filter.

Returvärde

En tabell med värden.

Kommentarer

  • När du anger filteruttryck modifierar funktionen CALCULATETABLE filterkontexten för att utvärdera uttrycket. Det finns två möjliga standardresultat för varje filteruttryck när filteruttrycket inte är omslutet i KEEPFILTERS-funktionen:

    • Om kolumnerna (eller tabellerna) inte finns med i filterkontexten läggs nya filter till i filterkontexten för att utvärdera uttrycket.
    • Om kolumnerna (eller tabellerna) redan finns med i filterkontexten skrivs befintliga filter över av de nya filtren för att utvärdera CALCULATETABLE-uttrycket.
  • Den här funktionen kan inte användas i DirectQuery-läge när den används i beräknade kolumner eller regler för säkerhet på radnivå (RLS).

Exempel

I följande exempel används funktionen CALCULATETABLE för att hämta summan av Internetförsäljningen för 2006. Det här värdet används senare för att beräkna förhållandet mellan Internetförsäljning jämfört med all försäljning för året 2006.

Följande formel:

= SUMX(
    CALCULATETABLE(
        'InternetSales_USD',
        'DateTime'[CalendarYear] = 2006
    ),
    [SalesAmount_USD]
)  

Resultatet blir följande tabell:

Radetiketter Internet SalesAmount_USD CalculateTable, Internetförsäljning 2006 Förhållande, Internetförsäljning 2006
2005 $2,627,031.40 $5,681,440.58 0,46
2006 $5,681,440.58 $5,681,440.58 1,00
2007 $8,705,066.67 $5,681,440.58 1,53
2008 $9,041,288.80 $5,681,440.58 1,59
Totalsumma $26,054,827.45 $5,681,440.58 4,59

Se även