Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
Számított oszlop
Számított tábla
Mérték
Vizualizációszámítási
Módosítja a szűrők alkalmazását egy CALCULATE vagy CALCULATETABLE függvény kiértékelése során.
Szintaxis
KEEPFILTERS(<expression>)
Paraméterek
| Kifejezés | Definíció |
|---|---|
expression |
Bármilyen kifejezés. |
Visszaadott érték
Értéktáblázat.
Megjegyzések
A KEEPFILTERS a környezeti CALCULATE és CALCULATETABLE függvények használatával felülbírálhatja ezen függvények szokásos viselkedését.
Alapértelmezés szerint az olyan függvények szűrőargumentumait használja a rendszer, mint például a CALCULATE, mint a kifejezés kiértékelési környezete, és mint ilyen, a CALCULATE szűrőargumentumok lecserélik az összes meglévő szűrőt ugyanazon az oszlopon. A CALCULATE szűrőargumentuma által alkalmazott új környezet csak a szűrőargumentum részeként említett oszlopok meglévő szűrőit érinti. A CALCULATE vagy más kapcsolódó függvények argumentumaitól eltérő oszlopokra vonatkozó szűrők továbbra is érvényben maradnak és változatlanok maradnak.
A KEEPFILTERS függvény lehetővé teszi ennek a viselkedésnek a módosítását. Ha KEEPFILTERShasznál, az aktuális környezet összes meglévő szűrője össze lesz hasonlítva a szűrőargumentumok oszlopaival, és az argumentumok metszetét használja a kifejezés kiértékelésére szolgáló környezetként. Az egyik oszlopra gyakorolt nettó hatás az, hogy mindkét argumentumcsoport érvényes: mind a CALCULATE használt szűrőargumentumok, mind a KEEPFILTER függvény argumentumainak szűrői. Más szóval, míg CALCULATE szűrők helyettesítik az aktuális környezetet, KEEPFILTERS szűrőket ad hozzá az aktuális környezethez.
Ez a függvény nem támogatott DirectQuery módban, ha számított oszlopokban vagy sorszintű biztonsági (RLS) szabályokban használják.
Példa
Az alábbi példa olyan gyakori forgatókönyveket mutat be, amelyek bemutatják, hogy a KEEPFILTERS függvényt egy CALCULATE vagy CALCULATETABLE képlet részeként használják.
Az első három kifejezés egyszerű adatokat szerez be az összehasonlításhoz:
Internetes értékesítés Washington államban.
Internet Sales for the states of Washington and Oregon (mindkét állam együttesen).
Internet sales for the state of Washington and province of British Columbia (mindkét régió együtt).
A negyedik kifejezés washingtoni és oregoni internetes értékesítéseket számít ki, míg a Washington és a British Columbia szűrője lesz alkalmazva.
A következő kifejezés washingtoni és oregoni internetes értékesítéseket számít ki, de KEEPFILTERS; a Washington és a Brit Columbia szűrője a korábbi környezet része.
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"
)
)
Ha a kifejezés kiértékelése az AdventureWorks DW mintaadatbázison történik, a rendszer a következő eredményeket kapja.
| Oszlop | Érték |
|---|---|
[$$ in WA] |
2 467 248,34 USD |
[$$ in WA and OR] |
3 638 239,88 USD |
[$$ in WA and BC] |
4 422 588,44 USD |
[$$ in WA and OR ??] |
3 638 239,88 USD |
[$$ in WA !!] |
2 467 248,34 USD |
Jegyzet
A fenti eredmények oktatási célokból táblázatba lettek formázva egyetlen sor helyett.
Először vizsgálja meg a [$$ in WA and OR ??]kifejezést. Felmerülhet a kérdés, hogy ez a képlet hogyan adja vissza a Washingtonban és Oregonban történő értékesítések értékét, mivel a külső CALCULATE kifejezés tartalmaz egy washingtoni és brit columbiai szűrőt. A válasz az, hogy a CALCULATE alapértelmezett viselkedése felülírja a "Geography"[State Province Code] külső szűrőit, és saját szűrőargumentumokat helyettesít, mivel a szűrők ugyanarra az oszlopra vonatkoznak.
Ezután vizsgálja meg a [$$ in WA !!]kifejezést. Felmerülhet a kérdés, hogy ez a képlet hogyan tudja visszaadni a Washingtonban és semmi másban nem szereplő értékesítések értékét, mivel az argumentumszűrő oregoni, a külső CALCULATE kifejezés pedig egy washingtoni és brit columbiai szűrőt tartalmaz. A válasz az, hogy KEEPFILTERS módosítja a CALCULATE alapértelmezett viselkedését, és hozzáad egy további szűrőt. Mivel a szűrők metszetét használja, a külső szűrő 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC") hozzá lesz adva a 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"szűrőargumentumhoz. Mivel mindkét szűrő ugyanarra az oszlopra vonatkozik, az eredményként kapott szűrő 'Geography'[State Province Code]="WA" a kifejezés kiértékelésekor alkalmazott szűrő.