Arbeiten mit DAX-Funktionen

Abgeschlossen

Die DAX-Funktionsbibliothek enthält Hunderte von Funktionen, die jeweils für ein bestimmtes Ziel entworfen wurden.

Da DAX aus dem Power Pivot-Add-In für Microsoft Excel 2010 entstammt, gibt es mehr als 80 Funktionen, die auch in Excel enthalten sind. Beim Entwurf war es eines der erklärten Ziele von Microsoft, sicherzustellen, dass Excel-Benutzer schnell produktiv mit DAX arbeiten können.

Es gibt jedoch auch eine Vielzahl von Funktionen, die Sie in Excel nicht finden, da sie für die Datenmodellierung spezifisch sind:

  • Funktionen zur Navigation in Beziehungen
  • 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 DAX-Funktion IF prüft, ob eine Bedingung, die als erstes Argument übergeben wird, erfüllt ist. Sie gibt einen Wert zurück, wenn die Bedingung TRUE ist, und einen anderen Wert, 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 als FALSE ausgewertet wird und value_if_false nicht übergeben wird, gibt die Funktion BLANK zurück.

Es sind viele Excel-Zusammenfassungsfunktionen verfügbar, einschließlich SUM, COUNT, AVERAGE, MIN, MAX und vielen anderen. Der einzige Unterschied besteht darin, dass Sie in DAX einen Spaltenverweis und nicht wie in Excel einen Zellbereich übergeben.

Viele Excel-Funktionen für mathematische Berechnungen, Text, Datums- und Uhrzeitangaben und Informationen sowie Logikfunktionen sind ebenfalls verfügbar. Ein kleines Beispiel für Excel Funktionen, die in DAX verfügbar sind, enthalten 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 nützliche 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 unterschiedlicher Werte in einer Spalte zu zählen. Diese Funktion ist insbesondere in einer Analyselösung sehr nützlich. 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

Mit der DAX-Funktion DIVIDE können Sie eine Division durchführen. 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 lautet:

DIVIDE(<numerator>, <denominator>[, <alternate_result>])

Die Funktion DIVIDE behandelt automatisch Fälle von Division durch Null. Wenn kein alternatives Ergebnis übergeben wird und der Nenner 0 (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. Außerdem ist die Funktion auch besser für das Testen des Nennerwerts optimiert als die IF-Funktion. Der Leistungsgewinn ist erheblich, da die Überprüfung einer Division durch 0 (null) aufwendig ist. Darüber hinaus führt die Verwendung der DIVIDE-Funktion zu einem präziseren und eleganteren Ausdruck.

Tipp

Es wird empfohlen, die DIVIDE-Funktion immer dann zu verwenden, wenn der Nenner ein Ausdruck ist, der 0 (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 hat eine bessere Leistung, da unnötige Tests vermieden werden.