CROSSFILTER
A következőkre vonatkozik:Számított oszlop
Számított tábla
Mérték
Vizualizációszámítási
Megadja a két oszlop közötti kapcsolat számításához használandó keresztszűrési irányt.
Szintaxis
CROSSFILTER(<columnName1>, <columnName2>, <direction>)
Paraméterek
Kifejezés | Definíció |
---|---|
columnName1 |
Egy meglévő oszlop neve, amely szabványos DAX szintaxist használ, és teljes mértékben minősített, amely általában a használandó kapcsolat több oldalát jelöli; ha az argumentumok fordított sorrendben vannak megadva, a függvény felcseréli őket használat előtt. Ez az argumentum nem lehet kifejezés. |
columnName2 |
Egy meglévő oszlop neve, amely szabványos DAX szintaxist használ, és teljes mértékben minősített, amely általában a használandó kapcsolat egyik vagy keresési oldalát jelöli; ha az argumentumok fordított sorrendben vannak megadva, a függvény felcseréli őket használat előtt. Ez az argumentum nem lehet kifejezés. |
Direction |
A használandó keresztszűrés iránya. Az alábbiak egyikének kell lennie:None – A kapcsolat mentén nem történik keresztszűrés.Both – A két oldalon lévő szűrők a másik oldalt szűrik.OneWay – Az egyik vagy a keresési oldalon lévő szűrők a másik oldalt szűrik. Ez a beállítás nem használható egy-az-egyhez kapcsolattal. Ne használja ezt a beállítást több-a-többhöz kapcsolat esetén, mert nem világos, hogy melyik oldal a keresési oldal; OneWay_LeftFiltersRight vagy OneWay_RightFiltersLeft helyett.OneWay_LeftFiltersRight – A columnName1 oldalán lévő szűrők szűrik a columnName2 oldalát. Ez a beállítás nem használható egy-az-egyhez vagy több-az-egyhez kapcsolat esetén.OneWay_RightFiltersLeft – A columnName2 oldalán lévő szűrők szűrik a columnName1 oldalát. Ez a beállítás nem használható egy-az-egyhez vagy több-az-egyhez kapcsolat esetén. |
Visszaadott érték
A függvény nem ad vissza értéket; a függvény csak a megadott kapcsolat keresztszűrési irányát állítja be a lekérdezés időtartamára.
Megjegyzések
1:1 kapcsolat esetén nincs különbség az egyik és mindkét irány között.
CROSSFILTER csak olyan függvényekben használható, amelyek argumentumként szűrőt használnak, például: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD és TOTALYTD függvények.
CROSSFILTER a modellben meglévő kapcsolatokat használ, és a végpontoszlopok alapján azonosítja a kapcsolatokat.
A CROSSFILTERa kapcsolat keresztszűrési beállítása nem fontos; vagyis azt, hogy a kapcsolat szűrésre van-e beállítva, vagy a modell mindkét iránya nem befolyásolja a függvény használatát. CROSSFILTER felülbírálja a meglévő keresztszűrési beállításokat.
A rendszer hibát ad vissza, ha az argumentumként elnevezett oszlopok egyike nem része egy kapcsolatnak, vagy az argumentumok különböző kapcsolatokhoz tartoznak.
Ha CALCULATE kifejezések beágyazottak, és egynél több CALCULATE kifejezés tartalmaz egy CROSSFILTER függvényt, akkor a legbelső CROSSFILTER az, amelyik ütközés vagy kétértelműség esetén érvényesül.
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
A következő modelldiagramon a DimProduct és a DimDate is egyetlen irányban kapcsolódik a FactInternetSaleshez.
Alapértelmezés szerint nem tudjuk lekérni az évenkénti értékesített termékek számát:
A termékek számát kétféleképpen lehet lekérni évről évre:
Kapcsolja be a kétirányú keresztszűrést a kapcsolaton. Ez megváltoztatja a szűrők működését a két tábla közötti összes adat esetében.
A CROSSFILTER függvénnyel módosíthatja a kapcsolatok működését csak ehhez a mértékhez.
A DAXhasználatakor a CROSSFILTER függvénnyel módosíthatjuk, hogyan viselkedik a keresztszűrés iránya egy kapcsolat által definiált két oszlop között. Ebben az esetben a DAX kifejezés a következőképpen néz ki:
BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))
A mértékkifejezésben a CROSSFILTER függvény használatával megkapjuk a várt eredményeket: