Lue englanniksi

Jaa


KEEPFILTERS

Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMeasureVisuaalinen laskutoimitus

Muokkaa sitä, miten filters otetaan käyttöön CALCULATEorCALCULATETABLE funktion arvioinnin aikana.

Syntaksi

DAX
KEEPFILTERS(<expression>)  

Parametrit

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

Palauta value

taulukon values.

Huomautuksia

  • KEEPFILTERS käytetään CALCULATEandCALCULATETABLE funktioiden kontekstissa näiden funktioiden vakiotoimintojen ohittamiseen.

  • Oletusarvon mukaan CALCULATE kaltaisten funktioiden filter argumentteja käytetään lausekkeen arvioinnin kontekstina, and sellaisia filter argumentteja CALCULATEreplaceall olemassa olevat filters samoille sarakkeille. Uusi konteksti, jota CALCULATE-filter-argumentti vaikuttaa, vaikuttaa vain filter-argumentin osana mainittuihin sarakkeisiin olemassa oleviin filters. muiden kuin CALCULATEor muiden related funktioiden argumenteissa mainittujen sarakkeiden Filters pysyvät muuttumattomina effectand.

  • KEEPFILTERS-funktion avulla voit muokata tätä toimintaa. Kun käytät KEEPFILTERS, nykyisen kontekstin olemassa olevia filters verrataan filter-argumenttien sarakkeisiin, and näiden argumenttien leikkauspistettä käytetään lausekkeen arvioinnin kontekstina. Yhden sarakkeen effect on se, että molemmat argumenttijoukot ovat voimassa: sekä filter argumentit, joita käytetään CALCULATEandfilters KEEPFILTER-funktion argumenteissa. Toisin sanoen CALCULATEfiltersreplace nykyistä kontekstia, KEEPFILTERS lisää filters nykyiseen kontekstiin.

  • Tätä funktiota not tueta DirectQuery-tilassa, kun sitä käytetään lasketuissa sarakkeissa or rivitason suojauksen (RLS) säännöissä.

Esimerkki

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

first kolme lauseketta hankkivat yksinkertaisia tietoja, joita voidaan käyttää vertailuissa:

  • Internet-myynti Washingtonin osavaltiossa.

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

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

Neljäs lauseke laskee Internet-myynnin Washingtonissa and Oregonissa, kun taas Washington and British Columbian filter käytetään.

next-lauseke laskee Internet-myynnin Washingtonissa and Oregonissa mutta käyttää KEEPFILTERS. Washington and British Columbian filter on osa edeltävää kontekstia.

DAX
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 sample-tietokantaan AdventureWorks DW, saadaan seuraavat tulokset.

Sarake 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

Huomautus

Yllä olevat tulokset muototeltiin taulukkoon yhden rivin sijaan opetustarkoituksessa.

First, tutki lauseketta [$$ in WA and OR ??]. Saatat ihmetellä, miten tämä kaava voi palauttaa myynnin value Washingtonissa and Oregonissa, koska ulompi CALCULATE-lauseke sisältää filter Washington and Brittiläiselle Kolumbialle. Vastaus on, että CALCULATE oletustoiminta ohittaa kohdan 'Geography'[State Province Code] ulomman filtersand korvaa sen omat filter argumentit, koska filters koskevat samaa saraketta.

Next, tutki lauseketta [$$ in WA !!]. Saatat ihmetellä, miten tämä kaava voi palauttaa myynnin value Washingtonissa and mitään muuta, koska argumentti filter sisältää Oregonin and ulompi CALCULATE lauseke sisältää filter Washington and Brittiläiseen Kolumbiaan. Vastaus on, että KEEPFILTERS muokkaa kohteen oletustoimintaa, CALCULATEand lisää uuden filter. Koska käytetään filters leikkauspistettä, now ulompi filter'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC") lisätään filter-argumenttiin 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR",. Koska molemmat filters koskevat samaa saraketta, tuloksena oleva filter'Geography'[State Province Code]="WA" on filter, jota käytetään lausekkeen arvioinnissa.

Filter-funktiot
CALCULATE-funktion
CALCULATETABLE-funktion