Verwenden von DAX-Operatoren

Abgeschlossen

Ihre DAX-Formeln können Operatoren verwenden, um Ausdrücke zu generieren, die arithmetische Berechnungen ausführen, Werte vergleichen, mit Zeichenfolgen arbeiten oder Bedingungen testen.

Tipp

Viele DAX-Operatoren und die Rangfolge sind mit denen in Excel identisch.

Arithmetische Operatoren

In der folgenden Tabelle werden die arithmetischen Operatoren aufgelistet.

Operator BESCHREIBUNG
+ Addition
- Subtraktion
* Multiplikation
/ Division
^ Potenzierung

Denken Sie daran: Wenn Sie zwei Ausdrücke dividieren und der Nenner null oder BLANK zurückgeben kann, ist es effizienter und sicherer, die DAX-Funktion DIVIDE zu verwenden.

Vergleichsoperatoren

In der folgenden Tabelle sind die Vergleichsoperatoren aufgelistet, die zum Vergleichen von zwei Werten verwendet werden. Als Ergebnis wird entweder TRUE oder FALSE zurückgegeben.

Operator BESCHREIBUNG
= Gleich
== Genau gleich
> Größer als
< Kleiner als
>= Größer als oder gleich
<= Kleiner als oder gleich
<> Ungleich

Alle Vergleichsoperatoren mit Ausnahme von Genau gleich (==) behandeln BLANK wie die Zahl 0 (null), eine leere Zeichenfolge (""), das Datum 30. Dezember 1899 oder FALSE. Dies bedeutet, dass der Ausdruck [Revenue] = 0 TRUE ist, wenn der Wert von [Revenue] 0 (null) oder BLANK ist. Im Gegensatz dazu ist [Revenue] == 0 nur TRUE, wenn der Wert von [Revenue] 0 (null) ist.

Textverkettungsoperator

Verwenden Sie das kaufmännische Und-Zeichen (&), um zwei Textwerte zu verknüpfen oder zu verketten und einen durchgehenden Textwert zu erhalten. Nehmen Sie z. B. die folgende Definition einer berechneten Spalte an:

Model Color = 'Product'[Model] & "-" & 'Product'[Color]

Logische Operatoren

Verwenden Sie logische Operatoren zum Kombinieren von Ausdrücken, um ein einzelnes Ergebnis zu erzeugen. In der folgenden Tabelle sind alle logischen Operatoren aufgelistet.

Operator BESCHREIBUNG
&& Erstellt eine UND-Bedingung zwischen zwei Ausdrücken, von denen jeder ein boolesches Ergebnis zurückgibt. Wenn beide Ausdrücke TRUE zurückgeben, gibt die Kombination der Ausdrücke ebenfalls TRUE zurück. In allen anderen Fällen gibt die Kombination FALSE zurück.
|| (doppelter senkrechter Strich) Erstellt eine OR-Bedingung zwischen zwei logischen Ausdrücken. Wenn einer der Ausdrücke TRUE zurückgibt, ist das Ergebnis TRUE. Nur wenn beide Ausdrücke FALSE sind, ist das Ergebnis FALSE.
IN Erstellt eine logische ODER-Bedingung zwischen jeder Zeile, die mit einer Tabelle verglichen wird. Hinweis: Bei der Tabellenkonstruktorsyntax werden geschweifte Klammern verwendet.
NOT Kehrt den Zustand eines booleschen Ausdrucks um (FALSE in TRUE und umgekehrt).

Ein Beispiel, in dem der logische IN-Operator verwendet wird, ist die Definition des Measures ANZ Revenue, das die DAX-Funktion CALCULATE verwendet, um einen bestimmten Filter nach zwei Ländern zu erzwingen: Australien und Neuseeland.

Hinweis

Im Modul zum Ändern des Filterkontexts erhalten Sie eine Einführung in die leistungsstarke CALCULATE-Funktion.

ANZ Revenue =
CALCULATE(
    [Revenue],
    Customer[Country-Region] IN {
        "Australia",
        "New Zealand"
    }
)

Operatorrangfolge

Wenn Ihre DAX-Formel mehrere Operatoren umfasst, verwendet DAX Regeln zum Festlegen der Auswertungsreihenfolge. Dies wird als Operatorrangfolge bezeichnet. Die Operationen werden entsprechend der folgenden Tabelle sortiert.

Operator Beschreibung
^ Potenzierung
- Vorzeichen (etwa –1)
* und / Multiplikation und Division
NOT NOT
+ und - Addition und Subtraktion
& Verkettung zweier Textzeichenfolgen
=,==,<,>,<=,>=,<> Vergleich

Wenn keiner der Operatoren Vorrang hat, gilt die Reihenfolge von links nach rechts.

Im Allgemeinen ist die Operatorrangfolge identisch mit der in Excel. Wenn Sie die Auswertungsreihenfolge ändern möchten, gruppieren Sie Operationen mithilfe von Klammern.

Nehmen Sie z. B. die folgende Definition einer berechneten Spalte an:

Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * 1 - [Unit Price Discount Pct]

Diese Beispieldefinition für eine berechnete Spalte führt zu einem falschen Ergebnis, da die Multiplikation vor der Subtraktion ausgeführt wird. In der folgenden korrekten Definition für die berechnete Spalte werden Klammern verwendet, um sicherzustellen, dass die Subtraktionen vor den Multiplikationen ausgeführt werden.

Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * (1 - [Unit Price Discount Pct])

Tipp

Beachten Sie, dass die Regeln für die Operatorrangfolge eine Herausforderung darstellen können, insbesondere für DAX-Anfänger. Daher wird empfohlen, Ihre Formeln gründlich zu testen. Wenn die Formeln aufgrund einer falschen Auswertungsreihenfolge nicht das richtige Ergebnis liefern, sollten Sie testen, wie Sie mit Klammern die Auswertungsreihenfolge anpassen können. Sie können auch Klammern hinzufügen, um die Lesbarkeit Ihrer Formeln zu verbessern.

Weitere Informationen zu DAX-Operatoren und der Rangfolge finden Sie unter DAX-Operatoren.

Implizite Konvertierung

Beim Schreiben einer DAX-Formel, die um unterschiedliche Datentypen mithilfe von Operatoren kombiniert, müssen Sie die Typen nicht explizit konvertieren. Normalerweise identifiziert DAX automatisch die Datentypen von referenzierten Modellobjekten und führt gegebenenfalls implizite Konvertierungen aus, um den angegebenen Vorgang abzuschließen.

Es gibt jedoch möglicherweise einige Einschränkungen für die Werte, die konvertiert werden können. Wenn ein Wert oder eine Spalte einen Datentyp aufweist, der mit dem aktuellen Vorgang nicht kompatibel ist, gibt DAX einen Fehler zurück. Beispielsweise wird beim Versuch, einen Datumswert zu multiplizieren, ein Fehler erzeugt, da dies nicht logisch ist.

Die BLANK-Formel wird abhängig vom verwendeten Operator unterschiedlich behandelt. BLANK wird ähnlich wie in Excel verarbeitet, aber anders als NULL-Werte in Datenbanken (SQL). BLANK wird von arithmetischen Operatoren als 0 (null) betrachtet und bei der Verkettung zu einer Zeichenfolge als leere Zeichenfolge.

Tipp

Beachten Sie, dass die Behandlung von BLANK eine Herausforderung darstellen kann, insbesondere für DAX-Anfänger. Daher wird empfohlen, Ihre Formeln gründlich zu testen. Wenn mit BLANK unerwartete Ergebnisse auftreten, sollten Sie die DAX-Funktionen IF und ISBLANK verwenden, um auf BLANK zu testen, und dann entsprechend reagieren.