Mit DAX-Funktionen arbeiten
Die DAX-Funktionsbibliothek enthält Hunderte von Funktionen, die jeweils für ein bestimmtes Ziel entworfen wurden.
Da DAX mit dem Power Pivot-Add-In für Microsoft Excel 2010 entstanden ist, stehen über 80 Funktionen zur Verfügung, die auch in Excel verfügbar sind. Beim Entwurf war es eines der erklärten Ziele von Microsoft, sicherzustellen, dass Excel-Benutzer schnell produktiv mit DAX arbeiten können.
Viele Funktionen sind jedoch in Power BI aber nicht in Excel vorhanden, da sie spezifisch für die Datenmodellierung sind:
- Funktionen zur Beziehungsnavigation
- Funktionen zur Änderung des Filterkontexts
- Iteratorfunktionen
- Zeitintelligenzfunktionen
- Pfadfunktionen
Tipp
Wenn Sie nach einer Dokumentation für DAX-Funktionen suchen, geben Sie in einer Websuche das Schlüsselwort DAX gefolgt vom Funktionsnamen ein.
Weitere Informationen finden Sie in der DAX-Funktionsreferenz.
Funktionen, die aus Excel stammen
In den folgenden Abschnitten werden mehrere nützliche Funktionen beschrieben, mit denen Sie möglicherweise bereits vertraut sind, da sie auch in Excel verfügbar sind.
Die Funktion IF testet, ob eine Bedingung, die als erstes Argument angegeben wurde, erfüllt ist. Sie gibt einen Wert zurück, wenn die Bedingung TRUE ist und gibt einen anderen Wert zurück, wenn die Bedingung FALSE ist. Die Syntax der Funktion lautet:
IF(<logical_test>, <value_if_true>[, <value_if_false>])
Tipp
Ein Funktionsargument ist optional, wenn es in der Dokumentation in eckige Klammern eingeschlossen ist.
Wenn logical_test zu FALSE ausgewertet und value_if_false nicht angegeben wird, gibt die Funktion BLANK zurück.
Es stehen viele Excel-Zusammenfassungsfunktionen zur Verfügung, dazu gehören SUM, COUNT, AVERAGE, MIN, MAX und viele andere. Der einzige Unterschied besteht darin, dass Sie in DAX einen Spaltenverweis übergeben, während Sie in Excel einen Zellbereich übergeben.
Viele Excel-Funktionen für mathematische Berechnungen, Text, Datums‑ und Uhrzeitangaben und Informationen sowie Logikfunktionen sind ebenfalls verfügbar. Eine kleine Auswahl von Excel-Funktionen, die in DAX verfügbar sind, umfasst ABS, ROUND, SQRT, LEN, LEFT, RIGHT, UPPER, DATE, YEAR, MONTH, NOW, ISNUMBER, TRUE, FALSE, AND, OR, NOT und IFERROR.
Funktionen, die nicht aus Excel stammen
Zwei hilfreiche DAX-Funktionen, die nicht spezifisch für die Modellierung sind und nicht aus Excel stammen, sind DISTINCTCOUNT und DIVIDE.
DISTINCTCOUNT-Funktion
Sie können die DAX-Funktion DISTINCTCOUNT verwenden, um die Anzahl der unterschiedlichen Werte in einer Spalte zu zählen. Diese Funktion ist insbesondere in einer Analyselösung sehr hilfreich. Beachten Sie, dass sich die Anzahl der Kunden von der Anzahl eindeutiger Kunden unterscheidet. Bei letzterer Zählweise werden wiederholte Kunden nicht gezählt, sodass der Unterschied die Differenz zwischen der Anzahl der Kunden und der Anzahl unterschiedlicher Kunden ist.
DIVIDE-Funktion
Sie können die DIVIDE DAX-Funktion verwenden, um diese Unterscheidung zu erreichen. Sie müssen Ausdrücke für Zähler und Nenner übergeben. Optional können Sie einen Wert übergeben, der ein alternatives Ergebnis bereitstellt. Die Syntax der Funktion DIVIDE ist folgende:
DIVIDE(<numerator>, <denominator>[, <alternate_result>])
Die Funktion DIVIDE behandelt die Division durch Null automatisch. Wenn kein alternatives Ergebnis übergeben wird und der Nenner Null oder BLANK ist, gibt die Funktion BLANK zurück. Wenn ein alternatives Ergebnis übergeben wurde, wird dieses anstelle von BLANK zurückgegeben.
Diese Funktion ist praktisch, da Sie in Ihrem Ausdruck nicht vorab den Wert im Nenner testen müssen. Die Funktion ist auch besser für das Testen des Nennerwerts optimiert als die Funktion IF. Der Leistungsgewinn ist erheblich, da die Überprüfung einer Division durch Null aufwendig ist. Darüber hinaus führt die Verwendung der Funktion DIVIDE zu einem prägnanteren und eleganteren Ausdruck.
Tipp
Es wird empfohlen, die Funktion DIVIDE immer dann zu verwenden, wenn der Nenner ein Ausdruck ist, der Null oder BLANK zurückgeben kann. Wenn der Nenner ein konstanter Wert ist, empfiehlt es sich, den Divisionsoperator (/) zu verwenden, der später in diesem Modul eingeführt wird. In diesem Fall ist die Division garantiert erfolgreich, und Ihr Ausdruck erbringt eine bessere Leistung, da unnötige Tests vermieden werden.