Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
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:
- Beide Operanden werden in den größtmöglichen gemeinsamen Datentyp konvertiert.
- 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.