Tapahtumat
Liity seuraamme FabCon Vegasiin
31. maalisk. klo 23 - 2. huhtik. klo 23
Lopullinen Microsoft Fabric-, Power BI-, SQL- ja tekoälyyhteisöjohtoinen tapahtuma. 31.3.–2.4.2025.
Rekisteröidy jo tänäänTätä selainta ei enää tueta.
Päivitä Microsoft Edgeen, jotta voit hyödyntää uusimpia ominaisuuksia, suojauspäivityksiä ja teknistä tukea.
Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMeasureVisuaalinen laskutoimitus
Muokkaa sitä, miten filters otetaan käyttöön CALCULATEorCALCULATETABLE funktion arvioinnin aikana.
KEEPFILTERS(<expression>)
Termi | Määritelmä |
---|---|
expression |
Mikä tahansa lauseke. |
taulukon values.
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ä.
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.
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.
Tapahtumat
Liity seuraamme FabCon Vegasiin
31. maalisk. klo 23 - 2. huhtik. klo 23
Lopullinen Microsoft Fabric-, Power BI-, SQL- ja tekoälyyhteisöjohtoinen tapahtuma. 31.3.–2.4.2025.
Rekisteröidy jo tänään