Del via


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.

Filter funksjonerCALCULATE funksjonCALCULATETABLE funksjon