Použití funkce SELECTEDVALUE místo funkce VALUES
Jako modelátor dat můžete někdy potřebovat napsat výraz DAX, který testuje, jestli je sloupec filtrovaný podle konkrétní hodnoty.
V dřívějších verzích jazyka DAX byl tento požadavek bezpečně dosažen pomocí vzoru zahrnujícího tři funkce DAX; IF, HASONEVALUE 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 příkladu vrátí funkce HASONEVALUE hodnotu TRUE pouze v případě, že je v aktuálním kontextu filtru viditelná jedna hodnota sloupce Země-oblast . Pokud je hodnota TRUE, funkce VALUES se porovná s literálovým textem "Austrálie". Když funkce VALUES vrátí hodnotu PRAVDA, míra Sales se vynásobí hodnotou 0,10 (představující 10 %). Pokud funkce HASONEVALUE vrátí hodnotu FALSE, protože více než jedna hodnota filtruje sloupec, vrátí první funkce KDYŽ prázdnou hodnotu.
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.
Pomocí funkce SELECTEDVALUE se teď přepíše ukázková definice míry.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Tip
Do funkce SELECTEDVALUE je možné předat alternativní výslednou hodnotu. Alternativní výsledná hodnota se vrátí, když ve sloupci nejsou použity žádné filtry nebo více filtrů.
Související obsah
- cesta Učení: Použití jazyka DAX v Power BI Desktopu
- Otázky? Zkuste se zeptat Komunita Power BI
- Návrhy? Přispívání nápadů ke zlepšení Power BI
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro