Brug SELECTEDVALUE i stedet for VÆRDIER
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 DAX blev dette krav opfyldt sikkert ved hjælp af et mønster, der involverer 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 HASONEVALUE kun TRUE, når en enkelt værdi i kolonnen Country-Region er synlig i den aktuelle filterkontekst. Når det er TRUE, sammenlignes funktionen VALUES med konstantteksten "Australia". Når funktionen VALUES returnerer TRUE, multipliceres målingen Sales med 0,10 (repræsenterer 10 %). Hvis funktionen HASONEVALUE returnerer FALSE – fordi mere end én værdi filtrerer kolonnen – returnerer den første IF-funktion BLANK.
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 eksempelmålingsdefinitionen nu.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Tip
Det er muligt at overføre en alternativ resultatvæ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
- Forslag? Bidrag med idéer til forbedring af Power BI