Szűrőkörnyezet módosítása

Befejeződött

CALCULATE A DAX függvénnyel módosíthatja a szűrőkörnyezetet a képletekben. A CALCULATE függvény szintaxisa a következő:

CALCULATE(<expression>, [[<filter1>], <filter2>]…)

A függvény esetében egy olyan kifejezést kell megadni, amely skaláris értéket és a szükséges számú szűrőt adja vissza. Ez a kifejezés lehet egy mérték (nevesített kifejezés) vagy bármely olyan kifejezés, amely szűrőkörnyezetben kiértékelhető.

A szűrők logikai kifejezések vagy táblakifejezések lehetnek. A szűrőkörnyezet módosításakor lehetőség van olyan szűrőmódosítási függvények átadására is, amelyek további vezérlőt biztosítanak.

Ha több szűrővel rendelkezik, a rendszer a logikai operátorral értékeli ki őket AND , ami azt jelenti, hogy minden feltételnek egyidejűnek kell lennie TRUE .

Megjegyzés

A CALCULATETABLE DAX-függvény pontosan ugyanazt a funkciót hajtja végre, mint a függvény, azzal a CALCULATE kivételrel, hogy módosítja a táblaobjektumot visszaadó kifejezésre alkalmazott szűrőkörnyezetet. Ebben a modulban a magyarázatok és példák a függvényt CALCULATE használják, de ne feledje, hogy ezek a forgatókönyvek a CALCULATETABLE függvényre is vonatkozhatnak.

Logikaikifejezés-szűrők alkalmazása

A logikai kifejezésszűrő olyan kifejezés, amely a vagy FALSEa TRUE értéket értékeli ki. A logikai szűrőknek a következő szabályoknak kell megfelelniük:

  • Csak egyetlen oszlopra hivatkozhatnak.
  • Nem hivatkozhatnak mértékre.
  • Nem használhatnak olyan függvényeket, amelyek beolvasnak vagy visszaadnak egy olyan táblát, amely olyan összesítő függvényeket tartalmaz, mint a SUM.

Ebben a példában egy mértéket fog létrehozni. Először is töltse le és nyissa meg az Adventure Works DW 2020 M06.pbix fájlt. Ezután adja hozzá a következő mértéket a Sales táblához, amely egy piros termékek logikai kifejezésszűrőjének használatával szűri a Revenue mértéket.

Revenue Red = CALCULATE([Revenue], 'Product'[Color] = "Red")

Adja hozzá a Revenue Red (Bevétel – Vörös) mértéket a jelentés 1. oldalán található táblavizualizációhoz.

A következő példában az alábbi mérték többféle színnel szűri a Revenue (Bevétel) mértéket. Figyelje meg az operátor használatát, IN majd a színértékek listáját.

Revenue Red or Blue = CALCULATE([Revenue], 'Product'[Color] IN {"Red", "Blue"})

Az alábbi mérték drága termékek szerint szűri a Revenue (Bevétel) mértéket. A drága termékek a 1000 dollárnál magasabb listaárú termékek.

Revenue Expensive Products = CALCULATE([Revenue], 'Product'[List Price] > 1000)

Táblakifejezés-szűrők alkalmazása

A táblakifejezés-szűrők táblaobjektumokat alkalmaznak szűrőként. Ez lehet egy modelltáblára mutató hivatkozás, de inkább egy táblaobjektumot visszaadó DAX-függvény.

FILTER A DAX függvénnyel általában összetett szűrési feltételeket alkalmazhat, beleértve azokat is, amelyek logikai szűrőkifejezéssel nem határozhatók meg. A FILTER függvény iterátorfüggvényként van besorolva, ezért egy táblát vagy táblakifejezést, valamint egy olyan kifejezést adna át, amelyet a tábla minden egyes sorához ki kell értékelnie.

A FILTER függvény egy olyan táblaobjektumot ad vissza, amely pontosan ugyanazzal a szerkezettel rendelkezik, mint amelyet a tábla átadott. A sorok az átadott sorok részhalmazai, vagyis azok a sorok, amelyekben a kifejezés kiértékelése megtörtént.TRUE

Az alábbi példa egy táblaszűrő kifejezést mutat be, amely a függvényt FILTER használja:

Revenue High Margin Products =
CALCULATE(
    [Revenue],
    FILTER(
        'Product',
        'Product'[List Price] > 'Product'[Standard Cost] * 2
    )
)

Ebben a példában a függvény szűri FILTER a Product tábla összes olyan sorát, amely a szűrőkörnyezetben található. A szűrt tábla soraként jelenik meg minden olyan termék sora, amely esetében a listaár nagyobb, mint a normál költség duplája. Ezért a Revenue (Bevétel) mértéket a függvény által visszaadott összes termék esetében kiértékeli a FILTER rendszer.

A függvénynek CALCULATE átadott összes szűrőkifejezés táblaszűrő kifejezés. A logikaiszűrő-kifejezés olyan egyszerűsített jelölésrendszert biztosít, amellyel javítható az írási és olvasási élmény. A Microsoft Power BI belsőleg táblaszűrési kifejezésekre fordítja le a logikaiszűrő-kifejezéseket, és így fordítja le a Revenue Red (Bevétel – Vörös) mértékdefiníciót is.

Revenue Red =
CALCULATE(
    [Revenue],
    FILTER(
        'Product',
        'Product'[Color] = "Red"
    )
)

Szűrési viselkedés

Két lehetséges standard eredmény jelenik meg, amikor szűrőkifejezéseket ad hozzá a CALCULATE függvényhez:

  • Ha az oszlopok (vagy táblák) nem szűrőkörnyezetben találhatók, a rendszer új szűrőket ad hozzá a szűrőkörnyezethez a CALCULATE kifejezés kiértékeléséhez.
  • Ha az oszlopok (vagy táblák) már szűrőkörnyezetben vannak, az új szűrők felülírják a meglévő szűrőket a CALCULATE kifejezés kiértékeléséhez.

Az alábbi példák bemutatják, hogyan működik a szűrőkifejezések hozzáadása a CALCULATE függvényhez.

Megjegyzés

Egyik példában sincsenek szűrők alkalmazva a táblavizualizációra.

Az előző tevékenységhez hasonlóan a Revenue Red (Bevétel – Vörös) mérték egy régiók szerint csoportosító és a bevételt megjelenítő táblavizualizációhoz lett hozzáadva.

Mivel a Termék tábla Szín oszlopában nincs szűrő, a mérték kiértékelése új szűrőt ad hozzá a szűrőkörnyezethez. Az első sorban a 2 681 324,79 dolláros érték az ausztráliai régióban eladott, vörös színnel jelzett termékekre vonatkozik.

A táblavizualizáció első oszlopának RégiórólSzínre váltása eltérő eredményt fog eredményezni, mivel a Product tábla Szín oszlopa már szűrőkörnyezetben van.

A Revenue Red mérték képlete úgy értékeli ki a Revenue mértéket, hogy hozzáad egy szűrőt a Product tábla Color (to red) oszlopához. Ennek következtében a szín szerint csoportosító vizualizációban a mértékképlet egy új szűrővel írja felül a szűrőkörnyezetet.

Az eredmény kívánt vagy nem kívánt érték is lehet. A következő egység bevezeti a KEEPFILTERS DAX-függvényt, amely egy szűrőmódosítási függvény, amellyel a szűrőket megőrizheti, és nem felülírhatja őket.