DAX-Formeln schreiben

Abgeschlossen

Jeder Modellberechnungstyp, jede berechnete Tabelle, jede berechnete Spalte und jedes Measure wird anhand des Namens, gefolgt vom Gleichheitszeichen (=) und einer DAX-Formel definiert. Verwenden Sie die folgende Vorlage, um eine Modellberechnung zu erstellen:

<Calculation name> = <DAX formula>

Die Definition der berechneten Tabelle Ship Date, die die Date-Tabellendaten dupliziert, ist z. B.:

Ship Date = 'Date'

Eine DAX-Formel besteht aus Ausdrücken, die ein Ergebnis zurückgeben. Das Ergebnis ist entweder ein Tabellenobjekt oder ein Skalarwert. Berechnete Tabellenformeln müssen ein Tabellenobjekt zurückgeben. Berechnete Spalten‑ und Measureformeln müssen einen skalaren Wert (Einzelwert) zurückgeben.

Formeln setzen sich wie folgt zusammen:

  • DAX-Funktionen
  • DAX-Operatoren
  • Verweise auf Modellobjekte
  • Konstante Werte, wie die Zahl 24 oder der Literaltext „FY“ (Abkürzung für Geschäftsjahr)
  • DAX-Variablen
  • Leerzeichen

Tipp

Bei der Eingabe von DAX-Formeln in Power BI Desktop profitieren Sie von IntelliSense. IntelliSense ist eine Hilfe zur Codevervollständigung, die Funktionen und Modellressourcen auflistet. Wenn Sie eine DAX-Funktion auswählen, erhalten Sie außerdem eine Definition und eine Beschreibung. Es wird empfohlen, IntelliSense zu verwenden, um schneller korrekte Formeln zu erstellen.

DAX-Funktionen

DAX ist, vergleichbar mit Microsoft Excel, eine funktionale Sprache. Das bedeutet, dass Formeln für das Erreichen bestimmter Ziele auf Funktionen angewiesen sind. In der Regel verfügen DAX-Funktionen über Argumente, die das Übergeben von Variablen ermöglichen. Formeln können viele Funktionsaufrufe verwenden. Sie enthalten häufig geschachtelte Funktionen in anderen Funktionen.

In einer Formel müssen hinter den Funktionsnamen Klammern stehen. Innerhalb der Klammern werden Variablen übergeben.

Hinweis

Einige Funktionen akzeptieren keine Argumente, oder die Argumente sind optional.

Das Arbeiten mit DAX-Funktionen wird später in diesem Modul beschrieben.

DAX-Operatoren

Formeln basieren auch auf Operatoren, die arithmetische Berechnungen durchführen, Werte vergleichen, mit Zeichenfolgen arbeiten oder Bedingungen testen können.

DAX-Operatoren werden später in diesem Modul ausführlicher beschrieben.

Verweise auf Modellobjekte

Formeln können nur auf drei Typen von Modellobjekten verweisen: Tabellen, Spalten und Measures. Eine Formel kann nicht auf eine Hierarchie oder Hierarchieebene verweisen. (Denken Sie daran, dass die Hierarchieebene auf einer Spalte basiert, sodass Ihre Formel auf die Spalte einer Hierarchieebene verweisen kann.)

Tabellenreferenzen

Wenn Sie in einer Formel auf eine Tabelle verweisen, wird der Tabellenname offiziell in einfache Anführungszeichen gesetzt. Beachten Sie, dass die Tabelle Date in der folgenden berechneten Tabellendefinition mit einfachen Anführungszeichen markiert ist.

Ship Date = 'Date'

Die einfachen Anführungszeichen können jedoch ausgelassen werden, wenn die beiden folgenden Bedingungen zutreffen:

  1. Der Tabellenname enthält keine eingebetteten Leerzeichen.
  2. Der Tabellenname ist kein reserviertes Wort, das von DAX verwendet wird. Alle DAX-Funktionsnamen und ‑Operatoren sind reservierte Wörter. Date ist ein DAX-Funktionsname, der erklärt, warum, wenn Sie auf eine Tabelle mit dem Namen Date verweisen, sie diese in einfache Anführungszeichen setzen müssen.

In der folgenden berechneten Tabellendefinition auf die Tabelle Airport verwiesen wird, können die einfachen Anführungszeichen weggelassen werden:

Arrival Airport = Airport

Spaltenverweise

Wenn Sie auf eine Spalte in einer Formel verweisen, muss der Spaltenname in eckige Klammern gesetzt werden. Optional kann der Tabellenname vorangestellt werden. Die folgende Measuredefinition bezieht sich z. B. auf die Spalte Sales Amount.

Revenue = SUM([Sales Amount])

Da Spaltennamen zwar innerhalb einer Tabelle, aber nicht notwendigerweise auch innerhalb des Modells eindeutig sind, können Sie Verwechslungen in Spaltenverweisen vermeiden, indem Sie den Tabellennamen voranstellen. Diese eindeutig gekennzeichnete Spalte wird dann als vollqualifizierte Spalte bezeichnet. Einige DAX-Funktionen erfordern das Übergeben vollqualifizierter Spalten.

Tipp

Um die Lesbarkeit Ihrer Formeln zu verbessern, sollten Sie in Spaltenverweisen stets den Tabellennamen voranstellen.

Die vorherige Beispieldefinition für ein Measure kann wie folgt umgeschrieben werden:

Revenue = SUM(Sales[Sales Amount])

Measureverweise

Wenn Sie in einer Formel auf ein Measure verweisen, wie z. B. in Spaltennamenreferenzen, muss der Measurename in eckige Klammern eingeschlossen sein. Die folgende Measuredefinition bezieht sich z. B. auf die Measures Revenue und Cost.

Profit = [Revenue] - [Cost]

Wenn Sie ein DAX-Anfänger sind, kann die Tatsache, dass Spalten‑ und Measurereferenzen immer in eckige Klammern eingeschlossen sind, zu Verwirrung führen, wenn Sie versuchen, eine Formel zu verstehen. Wenn Sie sich jedoch mit den DAX-Grundlagen vertraut machen, können Sie bestimmen, um welche Art von Objekt es sich handelt, da in DAX-Formeln Spalten und Measures auf unterschiedliche Weise verwendet werden.

Tipp

Es ist möglich, einem Measureverweis den Tabellennamen voranzustellen. Measures sind jedoch Objekte auf Modellebene. Selbst wenn sie einer Home-Tabelle zugeordnet wurden, besteht lediglich eine kosmetische Beziehung, um die Measures im Datenbereich übersichtlich zu strukturieren.

Daher empfehlen wir, dass Sie einem Spaltenverweis immer seinen Tabellennamen voranstellen, bei Measures ist das Gegenteil der Fall: Wir empfehlen, einer Measurereferenz niemals ihren Tabellennamen voranzustellen.

Weitere Informationen finden Sie unter Spalten‑ und Measureverweise.

DAX-Variablen

Formeln können DAX-Variablen deklarieren, um die Ergebnisse zu speichern.

Wie und wann Sie DAX-Variablen verwenden, wird später in diesem Modul beschrieben.

Leerzeichen

Leerzeichen bezeichnen Zeichen, mit denen Sie Ihre Formeln besser und schneller lesbar formatieren können. Zu Leerzeichen gehören z. B.:

  • Leerzeichen
  • Registerkarten
  • Wagenrückläufe

Leerzeichen sind optional und ändern weder Ihre Formellogik noch wirken sie sich negativ auf die Leistung aus. Es wird dringend empfohlen, einen Formatierungsstil zu übernehmen und diesen einheitlich anzuwenden. Berücksichtigen Sie dazu die folgenden Empfehlungen:

  • Verwenden Sie Leerzeichen zwischen Operatoren.
  • Verwenden Sie Tabstopps, um geschachtelte Funktionsaufrufe einzuziehen.
  • Verwenden Sie Wagenrückläufe, um Funktionsargumente voneinander zu trennen, insbesondere wenn diese nicht in eine einzelne Zeile passen. Durch eine solche Formatierung wird die Problembehandlung insbesondere bei fehlenden Klammern in der Formel vereinfacht.
  • Verwenden Sie lieber zu viel als zu wenig Leerzeichen.

Tipp

Verwenden Sie die Tastenkombination UMSCHALT+Eingabetaste für einen Zeilenumbruch in der Bearbeitungsleiste. Selbst durch das alleinige Drücken der Eingabetaste wird Ihre Formel festgeschrieben.

Beachten Sie, dass die folgende Measuredefinition in einer einzigen Zeile geschrieben ist und fünf DAX-Funktionsaufrufe umfasst:

Revenue YoY % = DIVIDE([Revenue] - CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])), CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])))

Im folgenden Beispiel handelt es sich um dieselbe Measuredefinition, die nun aber formatiert ist, um sie einfacher lesbar und verständlich zu machen:

Revenue YoY % =
DIVIDE(
    [Revenue]
        - CALCULATE(
            [Revenue],
            SAMEPERIODLASTYEAR('Date'[Date])
    ),
    CALCULATE(
        [Revenue],
        SAMEPERIODLASTYEAR('Date'[Date])
    )
)

Versuchen Sie selbst, das Measure zu formatieren. Öffnen Sie die Power BI Desktop-Datei Adventure Works DW 2020 M02.pbix, erweitern Sie im Bereich Daten die Tabelle Sales, und wählen Sie dann das Measure Revenue YoY % aus. Verwenden Sie in der Bearbeitungsleiste Tabulator‑ und Wagenrücklaufzeichen, um das gleiche Ergebnis wie im vorherigen Beispiel zu erzielen. Denken Sie daran, dass Sie die Tastenkombination UMSCHALT+Eingabetaste verwenden können, um einen Zeilenumbruch hinzuzufügen.

Diese Measuredefinition kann aus Gründen der Lesbarkeit und Leistung weiter verbessert werden, was später in diesem Modul erläutert wird.

Tipp

DAX Formatter ist ein herausragendes Tool für die Formatierung aus einer anderen Quelle, mit dem sich Berechnungen formatieren lassen. Mit diesem Tool können Sie Ihre Berechnung einfügen und formatieren. Dann lässt sich die formatierte Berechnung in die Zwischenablage kopieren und erneut in Power BI Desktop einfügen.