Verwenden Sie SELECTEDVALUE anstelle von VALUES
Als Datenmodellierer müssen Sie manchmal einen DAX Ausdruck schreiben, der testet, ob eine Spalte nach einem bestimmten Wert gefiltert wird.
In früheren Versionen von DAXwurde diese Anforderung zuverlässig mittels eines Musters mit drei DAX-Funktionen erfüllt: IF, HASONEVALUE und VALUES. Die folgende Maßnahmendefinition stellt ein Beispiel dar. Er berechnet den Mehrwertsteuerbetrag, aber nur für Verkäufe an australische Kunden.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
In diesem Beispiel gibt die HASONEVALUE-Funktion nur dann TRUE zurück, wenn ein einzelner Wert der Spalte Country-Region im aktuellen Filterkontext sichtbar ist. Wenn der Wert TRUE ist, wird die VALUES-Funktion mit dem literalen Text „Australia“ verglichen. Wenn die VALUES-Funktion TRUE zurückgibt, wird das Measure Sales mit 0,10 multipliziert (entspricht 10 %). Wenn die HASONEVALUE-Funktion FALSEzurückgibt , da mehr als ein Wert die Spalte filtert, gibt die erste IF Funktion BLANKzurück.
Die Verwendung von HASONEVALUE ist eine Abwehrtechnik. Sie ist erforderlich, da möglicherweise mehrere Werte die Spalte Country-Region (Land/Region) filtern. In diesem Fall gibt die funktion VALUES eine Tabelle mit mehreren Zeilen zurück. Der Vergleich einer Tabelle mehrerer Zeilen mit einem Skalarwert führt zu einem Fehler.
Empfehlung
Es wird empfohlen, die SELECTEDVALUE-Funktion zu verwenden. Es erzielt dasselbe Ergebnis wie das in diesem Artikel beschriebene Muster, aber effizienter und eleganter.
Mithilfe der SELECTEDVALUE-Funktion wird die Beispielmaßdefinition jetzt umgeschrieben.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Tipp
Es ist möglich, einen alternativen Ergebniswert an die SELECTEDVALUE-Funktion zu übergeben. Der alternative Ergebniswert wird zurückgegeben, wenn auf die Spalte weder Filter noch mehrere Filter angewendet werden.
Verwandte Inhalte
- Lernpfad: Die Verwendung von DAX in Power BI Desktop
- Fragen? Versuchen Sie, die Power BI Community zu kontaktieren
- Anregungen? Einbringen von Ideen zur Verbesserung von Power BI