CALCULATETABLECALCULATETABLE

Utvärderar ett tabelluttryck i en modifierad filterkontext.Evaluates a table expression in a modified filter context.

Anteckning

Dessutom finns funktionen CALCULATE.There's also the CALCULATE function. 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.It performs exactly the same functionality, except it modifies the filter context applied to an expression that returns a scalar value.

SyntaxSyntax

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

ParametrarParameters

TermTerm DefinitionDefinition
uttryckexpression Tabelluttrycket som ska utvärderas.The table expression to be evaluated.
filter1, filter2,...filter1, filter2,… (Valfritt) Booleska uttryck eller tabelluttryck som definierar filter, eller funktioner för filtermodifiering.(Optional) Boolean expressions or table expressions that defines filters, or filter modifier functions.

Uttrycket som används i den första parametern måste vara en modelltabell eller funktion som returnerar en tabell.The expression used as the first parameter must be a model table or a function that returns a table.

Filter kan vara:Filters can be:

  • Booleska filteruttryckBoolean filter expressions
  • TabellfilteruttryckTable filter expressions
  • Funktioner för filtermodifieringFilter modification functions

När det finns flera filter utvärderas de med hjälp av den logiska operatorn AND.When there are multiple filters, they're evaluated by using the AND logical operator. Det innebär att alla villkor måste utvärderas till TRUE samtidigt.That means all conditions must be TRUE at the same time.

Booleska filteruttryckBoolean filter expressions

Ett booleskt uttrycksfilter är ett uttryck som utvärderas till TRUE eller FALSE.A Boolean expression filter is an expression that evaluates to TRUE or FALSE. De måste följa fler regler:There are several rules that they must abide by:

  • De kan bara referera till en enda kolumn.They can reference only a single column.
  • De kan inte referera till ett mått.They cannot reference measures.
  • De kan inte ha en kapslad CALCULATE-funktion.They cannot use a nested CALCULATE function.
  • De kan inte använda funktioner som skannar eller returnerar en tabell, inklusive aggregeringsfunktioner.They cannot use functions that scan or return a table, including aggregation functions.

TabellfilteruttryckTable filter expression

Ett tabelluttrycksfilter använder ett tabellobjekt som ett filter.A table expression filter applies a table object as a filter. Det kan vara en referens till en modelltabell, men förmodligen är det en funktion som returnerar ett tabellobjekt.It could be a reference to a model table, but more likely it's a function that returns a table object. 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.You can use the FILTER function to apply complex filter conditions, including those that cannot be defined by a Boolean filter expression.

Funktioner för filtermodifieringFilter modifier functions

Med funktioner för filtermodifiering kan du göra mer än att bara lägga till filter.Filter modification functions allow you to do more than simply add filters. De ger dig ytterligare kontroll när du modifierar filterkontexten.They provide you with additional control when modifying filter context.

FunktionFunction SyftePurpose
REMOVEFILTERSREMOVEFILTERS Ta bort alla filter, filter från en eller flera kolumner i en tabell eller filter från alla kolumner i en enskild tabell.Remove all filters, or filters from one or more columns of a table, or from all columns of a single table.
ALL 1, ALLEXCEPT, ALLNOBLANKROWALL 1, ALLEXCEPT, ALLNOBLANKROW Ta bort filter från en eller flera kolumner, eller från alla kolumner i en enskild tabell.Remove filters from one or more columns, or from all columns of a single table.
KEEPFILTERSKEEPFILTERS Lägg till filter utan att ta bort befintliga filter för samma kolumner.Add filter without removing existing filters on the same columns.
USERELATIONSHIPUSERELATIONSHIP Upprätta en inaktiv relation mellan relaterade kolumner, vilket gör att den aktiva relationen inaktiveras automatiskt.Engage an inactive relationship between related columns, in which case the active relationship will automatically become inactive.
CROSSFILTERCROSSFILTER Ändra filterriktningen (från båda till ena eller från ena till båda) eller inaktivera en relation.Modify filter direction (from both to single, or from single to both) or disable a relationship.

1 Funktionen ALL och dess varianter fungerar som både filtermodifierare och som funktioner som returnerar tabellobjekt.1 The ALL function and its variants behave as both filter modifiers and as functions that return table objects. Om ditt verktyg har stöd för funktionen REMOVEFILTERS är det bättre att använda den till att ta bort filter.If the REMOVEFILTERS function is supported by your tool, it's better to use it to remove filters.

ReturvärdeReturn value

En tabell med värden.A table of values.

KommentarerRemarks

  • När du anger filteruttryck modifierar funktionen CALCULATETABLE filterkontexten för att utvärdera uttrycket.When filter expressions are provided, the CALCULATETABLE function modifies the filter context to evaluate the expression. Det finns två möjliga standardresultat för varje filteruttryck när filteruttrycket inte är omslutet i KEEPFILTERS-funktionen:For each filter expression, there are two possible standard outcomes when the filter expression is not wrapped in the KEEPFILTERS function:

    • Om kolumnerna (eller tabellerna) inte finns med i filterkontexten läggs nya filter till i filterkontexten för att utvärdera uttrycket.If the columns (or tables) aren't in the filter context, then new filters will be added to the filter context to evaluate the expression.
    • Om kolumnerna (eller tabellerna) redan finns med i filterkontexten skrivs befintliga filter över av de nya filtren för att utvärdera CALCULATETABLE-uttrycket.If the columns (or tables) are already in the filter context, the existing filters will be overwritten by the new filters to evaluate the CALCULATETABLE expression.
  • 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).This function is not supported for use in DirectQuery mode when used in calculated columns or row-level security (RLS) rules.

ExempelExample

I följande exempel används funktionen CALCULATETABLE för att hämta summan av Internetförsäljningen för 2006.The following example uses the CALCULATETABLE function to get the sum of Internet sales for 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.This value is later used to calculate the ratio of Internet sales compared to all sales for the year 2006.

Följande formel:The following formula:

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

Resultatet blir följande tabell:It results in the following table:

RadetiketterRow Labels Internet SalesAmount_USDInternet SalesAmount_USD CalculateTable, Internetförsäljning 2006CalculateTable 2006 Internet Sales Förhållande, Internetförsäljning 2006Internet Sales to 2006 ratio
20052005 $2,627,031.40$2,627,031.40 $5,681,440.58$5,681,440.58 0,460.46
20062006 $5,681,440.58$5,681,440.58 $5,681,440.58$5,681,440.58 1,001.00
20072007 $8,705,066.67$8,705,066.67 $5,681,440.58$5,681,440.58 1,531.53
20082008 $9,041,288.80$9,041,288.80 $5,681,440.58$5,681,440.58 1,591.59
TotalsummaGrand Total $26,054,827.45$26,054,827.45 $5,681,440.58$5,681,440.58 4,594.59

Se ävenSee also