KEEPFILTERS
gjelder:beregnet kolonneberegnet tabellMeasurevisualobjektberegning
Endrer hvordan filters brukes under evaluering av en CALCULATEorCALCULATETABLE-funksjon.
Syntaks
KEEPFILTERS(<expression>)
Parametere
Vilkår | Definisjon |
---|---|
expression |
Alle uttrykk. |
Returner value
En tabell med values.
Merknader
Du bruker KEEPFILTERS i konteksten CALCULATEandCALCULATETABLE funksjoner, til å overstyre standardvirkemåten til disse funksjonene.
Som standard brukes filter argumenter i funksjoner som CALCULATE som kontekst for evaluering av uttrykket, and som sådan filter argumenter for CALCULATEreplaceall eksisterende filters over de samme kolonnene. Den nye konteksten som brukes av filter-argumentet for CALCULATE påvirker bare eksisterende filters på kolonner nevnt som en del av argumentet filter. Filters på andre kolonner enn de som er nevnt i argumentene til CALCULATEor andre related funksjoner forblir i effectand uendret.
Med KEEPFILTERS-funksjonen kan du endre denne virkemåten. Når du bruker KEEPFILTERS, blir alle eksisterende filters i gjeldende kontekst sammenlignet med kolonnene i argumentene filter, and skjæringspunktet mellom disse argumentene brukes som kontekst for evaluering av uttrykket. Netto effect over én kolonne er at begge argumentsettene gjelder: både de filter argumentene som brukes i CALCULATEandfilters i argumentene i KEEPFILTER-funksjonen. Med andre ord, mens CALCULATEfiltersreplace gjeldende kontekst, legger KEEPFILTERS til filters i gjeldende kontekst.
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 tar deg gjennom noen vanlige scenarioer som demonstrerer bruk av KEEPFILTERS-funksjonen som en del av en CALCULATEorCALCULATETABLE formel.
De first tre uttrykkene henter enkle data som skal brukes til sammenligninger:
Internet Sales for delstaten Washington.
Internet Sales for delstatene Washington and Oregon (begge stater kombinert).
Internet Sales for delstaten Washington and provinsen British Columbia (begge regionene kombinert).
Det fjerde uttrykket beregner Internett-salg for Washington and Oregon, mens filter for Washington and British Columbia brukes.
Uttrykket next beregner Internett-salg for Washington and Oregon, men bruker KEEPFILTERS; filter for Washington and British Columbia er en del av den forrige konteksten.
EVALUATE ROW(
"$$ in WA"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
)
, "$$ in WA and OR"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, "$$ in WA and BC"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA and OR ??"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
,'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA !!"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
, KEEPFILTERS('Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
)
Når dette uttrykket evalueres mot sample-databasen AdventureWorks DW, hentes følgende resultater.
Kolonne | Value |
---|---|
[$$ in WA] |
$ 2 467 248,34 |
[$$ in WA and OR] |
$ 3 638 239,88 |
[$$ in WA and BC] |
$ 4 422 588,44 |
[$$ in WA and OR ??] |
$ 3 638 239,88 |
[$$ in WA !!] |
$ 2 467 248,34 |
Notat
Resultatene ovenfor ble formatert til en tabell, i stedet for én enkelt rad, for utdanningsformål.
First, undersøk uttrykket [$$ in WA and OR ??]
. Du lurer kanskje på hvordan denne formelen kan returnere value for salg i Washington and Oregon, siden det ytre CALCULATE uttrykket inneholder en filter for Washington and British Columbia. Svaret er at standard virkemåte for CALCULATE overstyrer den ytre filters i Geografi and erstatter sine egne filter argumenter, fordi filters gjelder for samme kolonne.
Next, undersøk uttrykket [$$ in WA !!]
. Du lurer kanskje på hvordan denne formelen kan returnere value for salg i Washington and ingenting annet, siden argumentet filter inkluderer Oregon and det ytre CALCULATE uttrykket inneholder en filter i Washington and British Columbia. Svaret er at KEEPFILTERS endrer standard virkemåte for CALCULATEand legger til en ekstra filter. Fordi skjæringspunktet mellom filters brukes, legges now den ytre filter'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")
til filter-argumentet 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"
.. Fordi begge filters gjelder for samme kolonne, er den resulterende filter'Geography'[State Province Code]="WA"
filter som brukes når du evaluerer uttrykket.