Schreiben von DAX-Formeln

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 Daten der Tabelle Date dupliziert, lautet beispielsweise wie folgt:

Ship Date = 'Date'

Eine DAX-Formel besteht aus Ausdrücken, die ein Ergebnis zurückgeben. Das Ergebnis ist entweder ein Tabellenobjekt oder ein Skalarwert. Formeln für berechnete Tabellen müssen ein Tabellenobjekt zurückgeben, während Formeln für berechnete Spalten und Measures einen Skalarwert (Einzelwert) zurückgeben müssen.

Formeln setzen sich wie folgt zusammen:

  • DAX-Funktionen
  • DAX-Operatoren
  • Verweise auf Modellobjekte
  • Konstante Werte, wie z. B. die Zahl 24 oder der Literaltext „FY“ (für Fiscal Year, Geschäftsjahr)
  • DAX-Variablen
  • Leerraum

Tipp

Wenn Sie DAX-Formeln in Power BI Desktop eingeben, können Sie die Vorteile von IntelliSense nutzen. 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

Ähnlich wie bei Microsoft Excel ist DAX eine funktionale Sprache. Formeln benötigen für das Erreichen bestimmter Ziele. 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 benötigen auch Operatoren, die arithmetische Berechnungen ausfü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.)

Tabellenverweise

Wenn Sie in einer Formel auf eine Tabelle verweisen, wird der Tabellenname offiziell in einfache Anführungszeichen eingeschlossen. Beachten Sie in der folgenden Definition für eine berechnete Tabelle, dass die Tabelle Date in einfache Anführungszeichen eingeschlossen 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 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, daher müssen beim Verweisen auf eine Tabelle mit dem Namen Date einfache Anführungszeichen verwendet werden.

In der folgenden Definition für eine berechnete Tabelle ist es möglich, die einfachen Anführungszeichen beim Verweisen auf die Tabelle Airport wegzulassen:

Arrival Airport = Airport

Spaltenverweise

Wenn Sie in einer Formel auf eine Spalte verweisen, muss der Spaltenname in eckige Klammern eingeschlossen werden. Optional kann der Tabellenname vorangestellt werden. In der folgenden Definition für ein Measure wird z. B. auf die Spalte Sales Amount verwiesen.

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, muss der Measurename wie beim Spaltennamen in eckige Klammern eingeschlossen werden. In der folgenden Definition für ein Measure wird z. B. auf die Measures Revenue und Cost verwiesen.

Profit = [Revenue] - [Cost]

Wenn Sie noch keine Erfahrungen mit DAX haben, kann die Tatsache, dass Spalten- und Measureverweise immer in eckige Klammern eingeschlossen werden müssen, beim Lesen von Formeln zu Verwirrungen führen. Wenn Sie jedoch mit den DAX-Grundlagen vertraut sind, können Sie ermitteln, welcher Objekttyp dies ist, da Spalten und Measures in DAX-Formeln auf unterschiedliche Weise verwendet werden.

Tipp

Es ist möglich, einem Measureverweis den Tabellennamen voranzustellen. Measures sind jedoch Objekte auf Modellebene. Obwohl sie einer Heimtabelle zugewiesen sind, stellt das logische Organisieren von Measures im Bereich Felder nur eine kosmetische Beziehung dar.

Daher sollten Sie zwar in Spaltenverweisen stets den Tabellennamen voranstellen, bei Measures gilt jedoch etwas anderes: Es wird empfohlen, einem Measureverweis niemals den 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.

Leerraum

Leerraum bezeichnet Zeichen, mit denen Sie Ihre Formeln besser und schneller lesbar formatieren können. Zu Leerräumen gehören z. B.:

  • Leerzeichen
  • Tabstoppzeichen
  • Wagenrückläufe

Leerräume sind optional und ändern die Formellogik nicht. Sie haben auch keine negativen Auswirkungen auf die Leistung. 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 Leerraum.

Tipp

Drücken Sie auf der Formelleiste zum Einfügen eines Wagenrücklaufs die Tastenkombination Umschalt+Eingabetaste. Wenn Sie nur die Eingabetaste drücken, wird die Formel committet.

Sehen Sie sich die folgende Definition für ein Measure an, die in einer einzelnen Zeile geschrieben wurde 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, und erweitern Sie dann im Bereich Felder die Tabelle Sales, und wählen Sie das Measure Revenue YoY % aus. Verwenden Sie Tabstopps und Wagenrückläufe, um das gleiche Ergebnis wie im vorherigen Beispiel zu erhalten. Denken Sie beim Hinzufügen eines Wagenrücklaufs daran, die Tastenkombination Umschalt+Eingabetaste zu drücken.

Diese Measuredefinition kann noch weiter optimiert werden, um die Lesbarkeit und Leistung zu verbessern. Dies wird später in diesem Modul erläutert.

Tipp

Ein hervorragendes Formatierungstool aus einer anderen Quelle, mit dem Sie Ihre Berechnungen formatieren können, ist DAX Formatter. Mit diesem Tool können Sie Ihre Berechnung einfügen und formatieren. Anschließend können Sie die formatierte Berechnung in die Zwischenablage kopieren und wieder in Power BI Desktop einfügen.