Heben Sie mit uns Ihre Power BI-Kenntnisse auf die nächste Stufe und lernen Sie die grundlegenden DAX-Formeln, um das Beste aus Ihren Daten herauszuholen und Geschäftsprobleme effizient zu lösen.
Was ist DAX und warum ist es für Power BI wichtig?
Alle Berechnungen, die Sie in Power BI durchführen können, sind von DAX (Data Analysis Expressions) gesteuert. Eine einfache Summe, oder einen Durchschnitt zu kalkulieren oder eine Visualisierung zu erstellen funktioniert, ohne überhaupt mit DAX in Berührung zu kommen. Diese Dinge werden automatisch im Hintergrund gebildet. Es gibt aber Fälle, in denen es besser ist, eine DAX-Formel selbst zu erstellen.
Eine eigene DAX-Formel ist die Lösung, wenn komplexe oder benutzerdefinierte Formeln erstellt werden sollen, bei denen eine einfache Summe oder ein Mittelwert für das zu lösende Geschäftsproblem nicht ausreichen würden.
Wenn eine Formel an mehreren Stellen, in mehreren Diagrammen oder als Ausdruck in anderen DAX-Formeln wiederverwendet werden soll, würde die Verwendung einer DAX-Formel einen Bericht effizienter machen und künftigen Änderungen erleichtern. In solchen Fällen muss nur eine einzige Formel geändert werden, anstatt viele einzelne an jeder Stelle.
Wo werden DAX-Formeln in Power BI verwendet?
Es gibt 3 Fälle, in denen DAX-Formel zum Einsatz kommen:
- Erstellen einer berechneten Tabelle
- Erstellen einer berechneten Spalte
- Erstellen einer Kennzahl
Anstatt Werte abzufragen und aus einer Datenquelle in die Spalten einer neuen oder bereits vorhandenen Tabelle zu laden, kann eine DAX-Formel erstellt werden, um die Werte der Spalten zu definieren.
In Microsoft Excel unter der Registerkarte „Modellierung“ gibt es folgende drei Möglichkeiten: Hinzufügen einer neuen Kennzahl, einer berechneten Spalte oder einer Tabelle. Es kann eine neue Kennzahl, eine berechnete Spalte oder eine Tabelle hinzugefügt werden.
Alternativ kann mit der rechten Maustaste eine in einer Tabelle in dem Bereich „Felder“ geklickt werden. Im Dropdown-Menü erscheint die Option, eine neue Kennzahl oder eine berechnete Spalte hinzuzufügen.
Eigene DAX-Formel schreiben
DAX-Formeln sind intuitiv und leicht zu lesen. Das macht es einfach, die Grundlagen von DAX zu verstehen, sodass relativ schnell mit dem Schreiben eine eigene Formel begonnen werden kann. Im Folgenden folgen die Bausteine einer richtigen DAX-Syntax.
- Name der Kennzahl oder der berechneten Spalte
- Der Gleichheitsoperator zeigt den Beginn der Formel an
- DAX-Funktion
- Öffnende (und schließende) Klammern
- Spalten- und/oder Tabellenverweise
Jeder nachfolgende Parameter in einer Funktion wird durch ein Komma getrennt.
DAX-Funktionen können ineinander verschachtelt werden, um mehrere Operationen effizient durchzuführen. Dies kann beim Schreiben von DAX-Formeln eine Menge Zeit sparen. Beispielsweise ist es oft nützlich, mehrere verschachtelte IF-Anweisungen zu haben oder die IFERROR-Funktion zu verwenden. Dadurch kann eine andere Funktion umschlossen werden, sodass alle Fehler in der Formel durch einen angegebenen Wert dargestellt werden. Einige der am häufigsten in Berichten verwendeten DAX-Funktionen sind:
- Einfache Berechnungen: COUNT (DAX Formel für Anzahl), SUM (DAX Formel für Summe), AVERAGE (DAX Formel für Mittelwert), MIN, MAX.
- SUMMARIZE: Gibt eine Zusammenfassungstabelle aus, welche für weitere Aggregationen über verschiedene Gruppierungen verwendet wird.
- CALCULATE: Führt eine Aggregation mit einem oder mehreren Filtern durch. Wenn mehr als einen Filter angegeben wird, führt die Funktion die Berechnung durch, wenn alle Filter wahr sind.
- IF (WENN): Gibt einen Wert zurück, basierend auf einer logischen Bedingung, wenn sie wahr ist. Andernfalls wird ein zweiter Wert zurückgegeben.
- IFERROR (WENNFEHLER): Sucht nach Fehlern für eine innere Funktion und gibt ein bestimmter Wert zurück.
- ISBLANK (ISTLEER): Überprüft, ob die Zeilen in einer Spalte leer sind und gibt „true“ oder „false“ zurück.
- DATEDIFF: Gibt die Differenz zwischen zwei Daten (beide als Spaltenreferenz in Datumsformaten) in Tagen, Monaten, Quartalen, Jahren usw. an.
Kontext in DAX-Formeln
DAX-Formeln in Power BI sind dynamisch und ändern sich je Kontext, in welchem sie erstellt wurden. Es ist wichtig, die Funktionsweise von Kontexten in DAX zu verstehen, um Fehler in Formeln schnell beseitigen zu können.
Es gibt zwei Haupttypen von Kontexten in DAX: Zeilenkontext und Filterkontext.
Zeilenkontext
Der Zeilenkontext bezieht sich auf die aktuelle Zeile über allen Spalten einer Tabelle und erstreckt sich auch auf alle Spalten der Bezugstabellen. Mit dieser Art von Kontext weiß die DAX-Formel, welche Zeilen für eine bestimmte Formel verwendet werden soll
Ein Beispiel für eine Formel, die einen Zeilenkontext hat:
In diesem Beispiel wird die Berechnung der Kosten pro Einheit zeilenweise durchgeführt. Das bedeutet, dass DAX wissen muss, was die aktuelle Zeile ist, wenn es den Datensatz durchläuft, die Berechnung durchführt und die neue Spalte mit dem Ergebnis auffüllt.
Der Zeilenkontext ist in berechneten Spalten implizit. Dies liegt daran, dass die Berechnungen, die in berechneten Spalten durchgeführt werden, zeilenweise erfolgen und der Zeilenkontext daher standardmäßig definiert ist. Bei Kennzahlen ist dies jedoch nicht der Fall, da die Aggregationen auf alle Zeilen in einer Tabelle angewendet werden. Diese Berechnungen müssen keine Kenntnis von einer aktuellen Zeile haben, da alle Zeilen zusammen aggregiert werden.
Ein Beispiel für eine Kennzahl ist die folgende DAX-Formel:
In diesem Fall wird die gesamte Spalte Gewinn summiert, um eine einzige Zahl zu erhalten. Diese wird durch die Summe der gesamten Spalte Umsatzerlöse geteilt. DAX braucht die aktuelle Zeile nicht zu kennen, da es eine Aggregation durchführt. Diese Kennzahl hat also keinen Zeilenkontext.
Um einen Zeilenkontext in einer Kennzahl explizit zu definieren, muss eine spezielle Funktion, einen sogenannten Iterator verwendet werden. Beispiele für Iteratorfunktionen sind SUMX, AVERAGEX und COUNTX. Diese Funktionen führen zunächst eine zeilenweise Berechnung durch und nehmen dann die endgültige Aggregation des Ergebnisses vor (d. h. Summe, Durchschnitt, Anzahl usw.). Auf diese Weise wird der Zeilenkontext explizit durch die Verwendung dieser Iteratoren definiert.
Ein Beispiel für eine Iterator Funktion:
In diesem Beispiel wird zunächst der Ausdruck (Umsatzkosten / Verkaufte Einheiten) Zeile für Zeile ausgewertet und das Ergebnis wird dann auf die Funktion AVERAGE (MITTELWERT) angewendet. Eine andere Möglichkeit, dasselbe Ergebnis zu erzielen, besteht darin, zunächst die berechnete Spalte ‚Kosten pro Einheit‘ zu erstellen, und dann eine separate Mittelwert-Berechnung für diese Spalte zu erstellen. Wenn jedoch gewusst wird, wann eine Iteratorfunktionen verwendet werden soll, können Berichte effizienter gestalten und weniger Speicherplatz verbraucht werden, da effektiv zwei Berechnungen mit nur einer einzigen Formel durchführt werden können.
Filterkontext
Ein Filterkontext wird auf einen Zeilenkontext angewendet und bezieht sich auf eine Untermenge von Zeilen oder Spalten, die im Bericht als Filter angegeben sind. Filter können auf mehrere Arten angewendet werden:
- Direkt in einer DAX-Formel
- Über den Filterbereich
- Über ein Datenschnitt-Visual
- Über die Felder, aus denen eine Datenvisualisierung besteht (z. B. die Zeilen und Spalten in einer Matrix)
Ein gutes Beispiel ist die Verwendung der CALCULATE Funktion, mit der ein oder mehrere Filterparameter zu der Kennzahl hinzugefügt werden können. Im folgenden Beispiel wird eine Kennzahl für die Gewinnspanne erstellt, die nur für die Schweiz gefiltert wird: