SELECTEDVALUE helyett VALUES használata
Adatmodellezőként néha előfordulhat, hogy egy DAX kifejezést kell írnia, amely ellenőrzi, hogy az oszlopokat egy adott érték szűri-e.
A DAXkorábbi verzióiban ezt a követelményt egy három DAX függvényt tartalmazó mintával lehetett biztonságosan elérni; IF, HASONEVALUE és VALUES. Az alábbi mértékdefiníció egy példát mutat be. Kiszámítja a forgalmi adó összegét, de csak az ausztrál ügyfeleknek történő értékesítésekre.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
A példában a HASONEVALUE függvény csak akkor ad vissza TRUE, ha a Country-Region oszlop egyetlen értéke látható az aktuális szűrőkörnyezetben. Ha TRUE, a VALUES függvény az "Ausztrália" literális szöveghez lesz hasonlítva. Amikor a VALUES függvény TRUE-et ad vissza, a eladási mutatót megszorozzuk 0,10-zel (ami 10%-et jelent). Ha a HASONEVALUE függvény FALSEad vissza – mivel egynél több érték szűri az oszlopot –, az első IF függvény BLANKad vissza.
A HASONEVALUE használata védekező technika. Erre azért van szükség, mert lehetséges, hogy több érték is szűri a Country-Region oszlopot. Ebben az esetben a VALUES függvény több sorból álló táblát ad vissza. Ha több sorból álló táblát hasonlít össze egy skaláris értékkel, az hibát eredményez.
Ajánlás
Javasoljuk, hogy használja a SELECTEDVALUE függvényt. Ugyanazt az eredményt éri el, mint a cikkben leírt minta, mégis hatékonyabban és elegánsabban.
A SELECTEDVALUE függvény használatával a példa mértékdefiníciója újra lesz írva.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Borravaló
Lehetséges egy alternatív eredményérték bemenőként átadni a SELECTEDVALUE függvénybe. A másodlagos eredményérték akkor lesz visszaadva, ha a rendszer nem alkalmaz szűrőket vagy több szűrőt az oszlopra.
Kapcsolódó tartalom
- Képzési terv: DAX használata a Power BI Desktopban
- Kérdések? Érdeklődjön a Power BI közösségnél
- Javaslatok? Ötletek hozzáadása a Power BI fejlesztéséhez