Teilen über


DAX-Operatoren

Die Sprache "Datenanalyseausdruck" (DAX) verwendet Operatoren zum Erstellen von Ausdrücken, die Werte vergleichen, arithmetische Berechnungen durchführen oder mit Zeichenfolgen arbeiten.

Typen von Operatoren

Es gibt vier verschiedene Arten von Berechnungsoperatoren: Arithmetik, Vergleich, Textverkettung und logisch.

Arithmetische operatoren

Zum Ausführen grundlegender mathematischer Vorgänge wie Addition, Subtraktion oder Multiplikation; Zahlen kombinieren; verwenden Sie die folgenden arithmetischen Operatoren, um numerische Ergebnisse zu erzielen.

Arithmetische Operator Bedeutung Example
+ (Pluszeichen) Ergänzung 3+3
- (Minuszeichen) Subtraktion oder Zeichen 3-1-1
* (Stern) Multiplikation 3*3
/ (Schrägstrich) Geschäftsbereich 3/3
^ (Caretzeichen) Potenzierung 16^4

Hinweis

Das Pluszeichen kann sowohl als binärer Operator als auch als unärer Operator funktionieren. Ein binärer Operator erfordert Zahlen auf beiden Seiten des Operators und führt addition aus. Wenn Sie Werte in einer DAX Formel auf beiden Seiten des binären Operators verwenden, versucht DAX, die Werte in numerische Datentypen umzuwandeln, wenn sie noch keine Zahlen sind. Im Gegensatz dazu kann der unäre Operator auf einen beliebigen Argumenttyp angewendet werden. Das Pluszeichen wirkt sich nicht auf den Typ oder wert aus und wird einfach ignoriert, während der Minusoperator einen negativen Wert erstellt, wenn er auf einen numerischen Wert angewendet wird.

Vergleichsoperatoren

Sie können zwei Werte mit den folgenden Operatoren vergleichen. Wenn zwei Werte mithilfe dieser Operatoren verglichen werden, ist das Ergebnis ein Wahrheitswert, entweder TRUE oder FALSE.

Vergleichsoperator Bedeutung Example
= Gleich [Region] = "USA"
== Genau gleich [Region] == "USA"
> Größer als [Verkaufsdatum] > "Jan 2009"
< Kleiner als [Verkaufsdatum] < "Jan 1 2009"
>= Größer als oder gleich [Betrag] >= 20000
<= Kleiner als oder gleich [Betrag] <= 100
<> Ungleich [Region] <> "USA"

Alle Vergleichsoperatoren mit Ausnahme == behandeln BLANK gleich Zahl 0, leere Zeichenfolge "", DATE(1899, 12, 30) oder FALSE. Daher ist [Spalte] = 0 wahr, wenn der Wert von [Spalte] entweder 0 oder BLANK0 ist. [Spalte] == 0 ist dagegen nur wahr, wenn der Wert von [Spalte] 0 ist.

Text für Zeichenfolgenverkettung

Verwenden Sie das Und-Zeichen (&), um zwei oder mehr Textzeichenfolgen zu verknüpfen oder zu konkatenieren und so ein einzelnes Textstück zu erzeugen.

Textbearbeiter Bedeutung Example
& (kaufmännisches Und-Zeichen) Verbindet oder verkettet zwei Werte, um einen fortlaufenden Textwert zu erzeugen [Region] & ", " & [City]

Logische Operatoren

Verwenden Sie logische Operatoren (&&) und (||), um Ausdrücke zu kombinieren, um ein einzelnes Ergebnis zu erzeugen.

Textbearbeiter Bedeutung Examples
&&(Doppel-Ampersand) Erstellt eine AND Bedingung zwischen zwei Ausdrücken, die jeweils ein boolesches Ergebnis aufweisen. Wenn beide Ausdrücke zurückgeben TRUE, wird auch die Kombination der Ausdrücke zurückgegeben TRUE; andernfalls wird die Kombination zurückgegeben FALSE. ([Region] = "France") && ([BikeBuyer] = "yes"))
|| (Doppelrohrsymbol) Erstellt eine OR Bedingung zwischen zwei logischen Ausdrücken. Wenn ein Ausdruck TRUE zurückgibt, ist das Ergebnis TRUE; nur wenn beide Ausdrücke FALSE sind, ist das Ergebnis FALSE. (([Region] = "France") || ([BikeBuyer] = "yes"))
IN Erstellt eine logische OR Bedingung zwischen jeder Zeile, die mit einer Tabelle verglichen wird. Hinweis: Die Tabellenkonstruktorsyntax verwendet geschweifte Klammern. 'Product'[Color] IN { "Red", "Blue", "Black" }

Operatoren und Rangfolge

In einigen Fällen kann sich die Reihenfolge, in der die Berechnung durchgeführt wird, auf den Rückgabewert auswirken; Daher ist es wichtig zu verstehen, wie die Reihenfolge bestimmt wird und wie Sie die Reihenfolge ändern können, um die gewünschten Ergebnisse zu erhalten.

Berechnungsreihenfolge

Ein Ausdruck wertet die Operatoren und Werte in einer bestimmten Reihenfolge aus. Alle Ausdrücke beginnen immer mit einem Gleichheitszeichen (=). Das Gleichheitszeichen gibt an, dass die nachfolgenden Zeichen einen Ausdruck darstellen.

Nach dem Gleichheitszeichen sind die zu berechnenden Elemente (die Operanden), die durch Berechnungsoperatoren getrennt werden. Ausdrücke werden immer von links nach rechts gelesen, aber die Reihenfolge, in der die Elemente gruppiert werden, kann mithilfe von Klammern in gewissem Maße gesteuert werden.

Rangfolge der Operatoren

Wenn Sie mehrere Operatoren in einer einzelnen Formel kombinieren, werden die Vorgänge gemäß der folgenden Tabelle sortiert. Wenn die Operatoren den gleichen Rang haben, werden sie von links nach rechts sortiert. Wenn ein Ausdruck beispielsweise sowohl einen Multiplikations- als auch einen Divisionsoperator enthält, werden sie in der Reihenfolge ausgewertet, in der sie im Ausdruck angezeigt werden, von links nach rechts.

Bediener Description
^ Potenzierung
Zeichen (z. B. –1)
* und / Multiplikation und Division
+ und Addition und Subtraktion
& Verbindet zwei Textzeichenfolgen (Verkettung)
=,==,<,>,<=,>=,<>,IN Vergleich
NOT NOT (unärer Operator)

Verwenden von Klammern zum Steuern der Berechnungsreihenfolge

Um die Reihenfolge der Auswertung zu ändern, sollten Sie diesen Teil der Formel, die zuerst berechnet werden muss, in Klammern setzen. Die folgende Formel erzeugt z. B. 11, da die Multiplikation vor der Addition berechnet wird. Die Formel multipliziert 2 mit 3 und addiert dann 5 zum Ergebnis.

=5+2*3

Wenn Sie dagegen Klammern verwenden, um die Syntax zu ändern, wird die Reihenfolge so geändert, dass 5 und 2 zusammen addiert werden, und das Ergebnis multipliziert mit 3, um 21 zu erzeugen.

=(5+2)*3

Im folgenden Beispiel erzwingen die Klammern um den ersten Teil der Formel, dass zuerst der Ausdruck (3 + 0.25) ausgewertet wird und dann das Ergebnis durch das Ergebnis des Ausdrucks (3 - 0.25) dividiert wird.

=(3 + 0.25)/(3 - 0.25)

Im folgenden Beispiel wird der Exponentiationsoperator zuerst gemäß den Regeln der Rangfolge für Operatoren angewendet, und dann wird der Zeichenoperator angewendet. Das Ergebnis für diesen Ausdruck ist -4.

=-2^2

Um sicherzustellen, dass der Zeichenoperator zuerst auf den numerischen Wert angewendet wird, können Sie Klammern verwenden, um Operatoren zu steuern, wie im folgenden Beispiel gezeigt. Das Ergebnis für diesen Ausdruck ist 4.

= (-2)^2

Compatibility

DAX Behandelt und vergleicht verschiedene Datentypen, ähnlich wie Microsoft Excel. Das zugrunde liegende Berechnungsmodul basiert jedoch auf SQL Server Analysis Services und bietet zusätzliche erweiterte Features eines relationalen Datenspeichers, einschließlich umfangreicherer Unterstützung für Datums- und Uhrzeittypen. Daher sind in einigen Fällen die Ergebnisse von Berechnungen oder das Verhalten von Funktionen möglicherweise nicht identisch wie in Excel. Darüber hinaus unterstützt DAX mehr Datentypen als Excel. In diesem Abschnitt werden die wichtigsten Unterschiede beschrieben.

Koercieren von Datentypen von Operanden

Im Allgemeinen sollten die beiden Operanden auf der linken und rechten Seite eines Operators denselben Datentyp aufweisen. Wenn die Datentypen jedoch unterschiedlich sind, werden sie in einen gemeinsamen Datentyp konvertiert, DAX um den Operator in einigen Fällen anzuwenden:

  1. Beide Operanden werden in den größtmöglichen gemeinsamen Datentyp konvertiert.
  2. Der Operator wird, wenn möglich, angewendet.

Angenommen, Sie haben zwei Zahlen, die Sie kombinieren möchten. Eine Zahl ergibt sich aus einer Formel, z. B. =[Price] * .20, und das Ergebnis kann viele Dezimalstellen enthalten. Die andere Zahl ist eine ganze Zahl, die als Zeichenfolgenwert bereitgestellt wurde.

In diesem Fall werden beide Zahlen in reelle Zahlen in ein numerisches Format konvertiert, wobei das größte numerische Format verwendet wird, DAX in dem beide Arten von Zahlen gespeichert werden können. DAX Anschließend wird die Multiplikation angewendet.

Je nach Kombination aus Datentypen wird die Typkoersion möglicherweise nicht für Vergleichsvorgänge angewendet. Eine vollständige Liste der datentypen, die von unterstützt werden, finden Sie unter Datentypen, die in tabellarischen Modellen und Datentypen in Power BI Desktop unterstützt werden.For a complete list of data types supported by DAX, see Data types supported in tabular models and Data types in Power BI Desktop.

Ganze Zahl, Reelle Zahl, Währung, Datum/Uhrzeit und Leer werden zu Vergleichszwecken als numerisch betrachtet. Ein leerer Wert wird bei einem Vergleich als Null bewertet. Die folgenden Datentypkombinationen werden für Vergleichsvorgänge unterstützt.

Datentyp der linken Seite Datentyp der rechten Seite
Numerisch Numerisch
Boolean Boolean
String String

Andere gemischte Datentypvergleiche geben einen Fehler zurück. Beispielsweise gibt eine Formel wie "="1" > 0 einen Fehler zurück, der angibt, dass DAX Vergleichsvorgänge den Vergleich von Werten vom Typ "Text" nicht mit Werten vom Typ "Integer" unterstützen.

Datentypen, die in DAX verwendet werden In Excel verwendete Datentypen
Zahlen (I8, R8) Zahlen (R8)
String String
Boolean Boolean
DateTime Variante
Währung Währung

Unterschiede bei der Rangfolge

Die Rangfolge von Vorgängen in DAX Formeln entspricht im Wesentlichen der Reihenfolge, die von Microsoft Excel verwendet wird, aber einige Excel-Operatoren werden nicht unterstützt, z. B. Prozent. Außerdem werden Bereiche nicht unterstützt.

Achten Sie daher bei jedem Kopieren und Einfügen von Formeln aus Excel darauf, die Formel sorgfältig zu überprüfen, da einige Operatoren oder Elemente in den Formeln möglicherweise nicht gültig sind. Wenn es Zweifel an der Reihenfolge gibt, in der Vorgänge ausgeführt werden, empfiehlt es sich, Klammern zu verwenden, um die Reihenfolge der Vorgänge zu steuern und alle Mehrdeutigkeiten bezüglich des Ergebnisses zu entfernen.

DAX SyntaxParameterbenennungDAX