Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jako modelátor dat můžete někdy potřebovat napsat DAX výraz, který testuje, jestli je sloupec filtrovaný podle konkrétní hodnoty.
V dřívějších verzích DAXtohoto požadavku bylo bezpečně dosaženo pomocí vzoru zahrnujícího tři DAX funkce; IFHASONEVALUE a VALUES. Následující definice míry představuje příklad. Vypočítá částku daně z prodeje, ale pouze pro prodeje pro australské zákazníky.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
V tomto příkladu funkce HASONEVALUE vrátí TRUE pouze tehdy, když je v aktuálním kontextu filtru viditelná pouze jedna hodnota sloupce Země-oblast. Když je TRUE, funkce VALUES se porovná s textem 'Austrálie' doslova. Když funkce VALUES vrátí TRUE, ukazatel Sales se vynásobí 0,10 (což představuje 10%). Pokud funkce HASONEVALUE vrátí hodnotu FALSE—protože více než jedna hodnota filtruje sloupec—vrátí první funkce IFBLANK.
Použití HASONEVALUE je obranná technika. Je to povinné, protože je možné, že sloupec Country-Region filtruje více hodnot. V tomto případě vrátí funkce VALUES tabulku s více řádky. Porovnání tabulky s více řádky se skalární hodnotou způsobí chybu.
Doporučení
Doporučujeme použít funkci SELECTEDVALUE. Dosahuje stejného výsledku jako vzor popsaný v tomto článku, ale efektivněji a elegantněji.
SELECTEDVALUE Pomocí funkce se teď přepíše ukázková definice míry.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Rada
Do funkce je možné předat alternativní výslednou hodnotu SELECTEDVALUE . Alternativní výsledná hodnota se vrátí, když ve sloupci nejsou použity žádné filtry nebo více filtrů.
Související obsah
- Studijní cesta: Použití DAX v Power BI Desktopu
- Otázky? zkuste se zeptat komunity Power BI
- Návrhy? Přispívání nápadů ke zlepšení Power BI