Brug SELECTEDVALUE i stedet for VALUES
Som dataudformer kan det nogle gange være nødvendigt at skrive et DAX udtryk, der tester, om en kolonne er filtreret efter en bestemt værdi.
I tidligere versioner af DAXblev dette krav opfyldt sikkert ved hjælp af et mønster, der omfatter tre DAX funktioner. IF, HASONEVALUE og VALUES. Følgende målingsdefinition viser et eksempel. Det beregner momsbeløbet, men kun for salg til australske kunder.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
I eksemplet returnerer funktionen
Brugen af HASONEVALUE er en defensiv teknik. Det er påkrævet, fordi det er muligt, at flere værdier filtrerer kolonnen Country-Region. I dette tilfælde returnerer funktionen VALUES en tabel med flere rækker. Hvis du sammenligner en tabel med flere rækker med en skalarværdi, resulterer det i en fejl.
Anbefaling
Det anbefales, at du bruger funktionen SELECTEDVALUE. Det opnår det samme resultat som det mønster, der er beskrevet i denne artikel, men mere effektivt og elegant.
Ved hjælp af funktionen SELECTEDVALUE omskrives definitionen af eksempelmålingen nu.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Drikkepenge
Det er muligt at overføre et alternativt resultat værdi til funktionen SELECTEDVALUE. Den alternative resultatværdi returneres, når der enten ikke anvendes nogen filtre – eller flere filtre – på kolonnen.
Relateret indhold
- Læringsforløb: Brug DAX i Power BI Desktop
- Spørgsmål? Prøv at spørge Power BI-community'et om
- Forslag? Bidrag med idéer til forbedring af Power BI-