Jaa


KEEPFILTERS

Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMittayksikköVisuaalinen laskenta -

Muokkaa sitä, miten suodattimia käytetään CALCULATE- tai CALCULATETABLE funktion arvioinnin aikana.

Syntaksi

KEEPFILTERS(<expression>)

Parametrit

Termi Määritelmä
expression Mikä tahansa lauseke.

Palautusarvo

Arvotaulukko.

Huomautuksia

  • KEEPFILTERS käytetään CALCULATE- ja CALCULATETABLE funktioiden kontekstissa näiden funktioiden vakiotoimintojen ohittamiseen.

  • Oletusarvon mukaan suodatinargumentteja CALCULATE kaltaisissa funktioissa käytetään lausekkeen arvioinnin kontekstina, ja siksi CALCULATE kaikki olemassa olevat suodattimet korvataan samoilla sarakkeilla. Uusi konteksti, jota CALCULATE -suodatinargumentti vaikuttaa, vaikuttaa vain nykyisiin suodattimiin sarakkeissa, jotka on mainittu suodatinargumentin osana. Muiden kuin CALCULATE argumenteissa mainittujen sarakkeiden suodattimet tai muut siihen liittyvät funktiot pysyvät voimassa ja muuttumattomina.

  • KEEPFILTERS-funktion avulla voit muokata tätä toimintaa. Kun käytät KEEPFILTERS, nykyisen kontekstin olemassa olevia suodattimia verrataan suodatinargumenttien sarakkeisiin, ja näiden argumenttien leikkauspistettä käytetään lausekkeen arvioinnin kontekstina. Tämän vaikutus mihin tahansa sarakkeeseen on se, että molemmat argumenttijoukot ovat käytössä: sekä CALCULATE käytetyt suodatinargumentit että KEEPFILTER-funktion argumenteissa käytetyt suodattimet. Toisin sanoen CALCULATE suodattimet korvaavat nykyisen kontekstin, kun taas KEEPFILTERS lisää suodattimia nykyiseen kontekstiin.

  • Tätä funktiota ei tueta DirectQuery-tilassa lasketuissa sarakkeissa tai rivitason suojauksen (RLS) säännöissä käytettäväksi.

Esimerkki

Seuraavassa esimerkissä käydään läpi joitakin yleisiä skenaarioita, jotka osoittavat KEEPFILTERS-funktion käytön osana CALCULATE tai CALCULATETABLE kaavaa.

Kolme ensimmäistä lauseketta hankkivat yksinkertaisia tietoja, joita käytetään vertailuissa:

  • Internet-myynti Washingtonin osavaltiossa.

  • Internet-myynti Washingtonin ja Oregonin osavaltioissa (molemmat osavaltiot yhteensä).

  • Internet-myynti Washingtonin osavaltiossa ja Brittiläisen Kolumbian provinssissa (molemmat alueet yhteensä).

Neljäs lauseke laskee Internet-myynnin Washingtonissa ja Oregonissa, ja siinä käytetään Washingtonin ja Brittiläisen Kolumbian suodatinta.

Seuraava lauseke laskee Internet-myynnin Washingtonissa ja Oregonissa mutta käyttää KEEPFILTERS. Washingtonin ja Brittiläisen Kolumbian suodatin on osa edeltävää kontekstia.

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"
      )
)

Kun tätä lauseketta verrataan mallitietokantaan AdventureWorks DW, saadaan seuraavat tulokset.

Sarake Arvo
[$$ 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

Muistiinpano

Yllä olevat tulokset muototeltiin taulukkoon yhden rivin sijaan opetustarkoituksessa.

Tutki ensin lauseketta [$$ in WA and OR ??]. Saatat ihmetellä, miten tämä kaava voi palauttaa myynnin arvon Washingtonissa ja Oregonissa, koska ulompi CALCULATE -lauseke sisältää suodattimen Washingtonille ja Brittiläiselle Kolumbialle. Vastaus on, että CALCULATE oletustoiminta ohittaa kohdan 'Geography'[State Province Code] ulommat suodattimet ja korvaa ne omilla suodatinargumentillaan, koska suodattimet koskevat samaa saraketta.

Tutki seuraavaksi lauseketta [$$ in WA !!]. Saatat ihmetellä, miten tämä kaava voi palauttaa myynnin arvon Washingtonissa eikä mitään muuta, koska argumentin suodatin sisältää Oregonin ja ulompi CALCULATE-lauseke sisältää suodattimen Washingtonissa ja Brittiläisessä Kolumbiassa. Vastaus on, että KEEPFILTERS muokkaa CALCULATE oletustoimintaa ja lisää suodattimen. Koska suodattimien leikkauspistettä käytetään, ulompi 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC") lisätään nyt suodatinargumenttiin 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR",. Koska molemmat suodattimet koskevat samaa saraketta, tuloksena oleva suodatin 'Geography'[State Province Code]="WA" on suodatin, jota käytetään lausekkeen arvioinnissa.

FilterCALCULATE funktioCALCULATETABLE funktio