SELECTEDVALUE gebruiken in plaats van VALUES
Als gegevensmodeller moet u soms een DAX-expressie schrijven waarmee wordt getest of een kolom wordt gefilterd op een specifieke waarde.
In eerdere versies van DAX werd deze vereiste veilig bereikt met behulp van een patroon met drie DAX-functies; ALS, HASONEVALUE en VALUES. In de volgende metingsdefinitie ziet u een voorbeeld. Het berekent het btw-bedrag, maar alleen voor verkopen aan Australische klanten.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
In het voorbeeld retourneert de functie HASONEVALUE ALLEEN TRUE wanneer één waarde van de kolom Land-regio zichtbaar is in de huidige filtercontext. Als de waarde WAAR is, wordt de functie VALUES vergeleken met de letterlijke tekst 'Australië'. Wanneer de functie VALUES TRUE retourneert, wordt de meting Verkoop vermenigvuldigd met 0,10 (10%). Als de functie HASONEVALUE ONWAAR retourneert, omdat meer dan één waarde de kolom filtert, retourneert de eerste functie ALS BLANK.
Het gebruik van de HASONEVALUE is een defensieve techniek. Dit is vereist omdat het mogelijk is dat meerdere waarden de kolom Country-Region filteren. In dit geval retourneert de functie VALUES een tabel met meerdere rijen. Als u een tabel met meerdere rijen vergelijkt met een scalaire waarde, resulteert dit in een fout.
Aanbeveling
Het is raadzaam om de functie SELECTEDVALUE te gebruiken. Het bereikt hetzelfde resultaat als het patroon dat in dit artikel wordt beschreven, maar efficiënter en eleganter.
Met de functie SELECTEDVALUE wordt de definitie van de voorbeeldmeting nu herschreven.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Tip
Het is mogelijk om een alternatieve resultaatwaarde door te geven aan de functie SELECTEDVALUE. De alternatieve resultaatwaarde wordt geretourneerd wanneer er geen filters (of meerdere filters) worden toegepast op de kolom.
Gerelateerde inhoud
- Leertraject: DAX gebruiken in Power BI Desktop
- Vragen? Vraag het Power BI-community
- Suggesties? Ideeën bijdragen om Power BI te verbeteren
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor