Freigeben über


DAX-Operatorreferenz für PowerPivot

Die DAX-Sprache (Data Analysis Expressions) nutzt Operatoren zur Erstellung von Ausdrücken, die Ihnen ermöglichen, Werte zu vergleichen, arithmetische Berechnungen durchzuführen und mit Zeichenfolgen zu arbeiten. In diesem Abschnitt wird die Verwendung der einzelnen Operatoren beschrieben.

Operatortypen

Es gibt vier verschiedene Typen von Berechnungsoperatoren: arithmetische Operatoren, Vergleichsoperatoren, Textverkettungsoperatoren und logische Operatoren.

Arithmetische Operatoren

Verwenden Sie die folgenden arithmetischen Operatoren, um einfache mathematische Operationen wie Addition, Subtraktion und Multiplikation durchzuführen, Zahlen zu kombinieren und numerische Ergebnisse zu berechnen.

Arithmetischer Operator

Bedeutung

Beispiel

+ (Pluszeichen)

Addition

3+3

– (Minuszeichen)

Subtraktion/Zeichen

3–1–1

* (Sternchen)

Multiplikation

3*3

/ (Schrägstrich)

Division

3/3

^ (Caretzeichen)

Potenzierung

16^4

HinweisHinweis

Das Pluszeichen kann als binärer Operator und als unärer Operator fungieren. Ein binärer Operator erfordert Zahlen auf beiden Seiten des Operators und führt Additionen aus. Wenn Sie in einer DAX-Formel Werte auf beiden Seiten des binären Operators verwenden, wird versucht, die Werte in numerische Datentypen umzuwandeln, falls es sich nicht um Zahlen handelt. Im Gegensatz dazu kann der unäre Operator für beliebige Argumenttypen verwendet werden. Das Pluszeichen wirkt sich nicht auf den Typ oder den Wert aus und wird einfach ignoriert, wohingegen das Minuszeichen einen numerischen Wert in einen negativen Wert umwandelt.

Vergleichsoperatoren

Sie können zwei Werte mit den folgenden Operatoren vergleichen. Werden zwei Werte mithilfe dieser Operatoren verglichen, ist das Ergebnis ein logischer Wert, und zwar entweder TRUE oder FALSE.

Vergleichsoperator

Bedeutung

Beispiel

=

Gleich

[Region] = USA

>

Größer als

[Sales Date] > Jan 2009

<

Kleiner als

[Sales Date] < Jan 1 2009

>=

Größer als oder gleich

[Amount] >= 20000

<=

Kleiner als oder gleich

[Amount] <= 100

<>

Ungleich

[Region] <> USA

Textverkettungsoperator

Verwenden Sie das kaufmännische Und-Zeichen (&) zum Verknüpfen bzw. Verketten von zwei oder mehr Textzeichenfolgen, um ein einzelnes Stück Text zu erzeugen.

Textoperator

Bedeutung

Beispiel

& (kaufmännisches Und-Zeichen)

Verknüpft bzw. verkettet zwei Werte, um einen kontinuierlichen Textwert zu erzeugen.

[Region] & , & [City]

Logische Operatoren

Verwenden Sie die logischen Operatoren (&&) und (||) zum Kombinieren von Ausdrücken, um ein einzelnes Ergebnis zu erzeugen.

Textoperator

Bedeutung

Beispiele

&& (doppeltes kaufmännisches Und-Zeichen)

Erstellt eine AND-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.

([Region] = France) && ([BikeBuyer] = yes))

|| (doppelter senkrechter Strich)

Erstellt eine OR-Bedingung zwischen zwei logischen Ausdrücken. Wenn einer der beiden Ausdrücke TRUE zurückgibt, ist das Ergebnis TRUE. Wenn beide Ausdrücke FALSE zurückgeben, ist das Ergebnis FALSE.

(([Region] = France) || ([BikeBuyer] = yes))

Operatoren und Rangfolge

In einigen Fällen kann sich die Reihenfolge, in der die Berechnung durchgeführt wird, auf den Rückgabewert auswirken. Daher müssen Sie wissen, wie die Reihenfolge bestimmt wird und wie Sie die Reihenfolge ändern müssen, 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 darauffolgenden Zeichen einen Ausdruck bilden.

Nach dem Gleichheitszeichen folgen die zu berechnenden Elemente (Operanden), zwischen denen Berechnungsoperatoren stehen. Ausdrücke werden immer von links nach rechts gelesen, aber Sie können die Reihenfolge und Gruppierung der Elemente bis zu einem gewissen Grad durch Klammern steuern.

Operatorrangfolge

Wenn Sie mehrere Operatoren in einer Formel kombinieren, gilt für die Vorgänge die in der folgenden Tabelle gezeigte Reihenfolge. Wenn keiner der Operatoren Vorrang hat, gilt die Reihenfolge von links nach rechts. Wenn ein Ausdruck sowohl einen Multiplikations- als auch einen Divisionsoperator enthält, werden sie beispielsweise von links nach rechts in der Reihenfolge ausgewertet, in der sie im Ausdruck vorkommen.

Operator

Beschreibung

^

Potenzierung

Zeichen (wie in –1)

* und /

Multiplikation und Division

+ und -

Addition und Subtraktion

&

Verbindet zwei Textzeichenfolgen (Verkettung)

=< ><=>=<>

Vergleich

Festlegen der Berechnungsreihenfolge mit Klammern

Um die Reihenfolge der Auswertung zu ändern, können Sie den Teil der Formel in Klammern setzen, der zuerst berechnet werden soll. Beispiel: Das Ergebnis der folgenden Formel ist 11, da Multiplikation Vorrang vor Addition hat. Die Formel multipliziert 2 mit 3 und addiert dann 5.

=5+2*3

Wenn Sie die Syntax mithilfe von Klammern ändern, gilt eine andere Reihenfolge. In diesem Fall werden 5 und 2 addiert und das Ergebnis mit 3 multipliziert. Das Endergebnis ist 21.

=(5+2)*3

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

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

Im folgenden Beispiel wird gemäß den Regeln der Operatorrangfolge zuerst der Potenzierungsoperator und danach 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 die Anwendung von Operatoren, wie im folgenden Beispiel gezeigt, mithilfe von Klammern steuern. Das Ergebnis für diesen Ausdruck ist 4.

= (-2)^2

Kompatibilitätshinweise

Mit DAX können unterschiedliche Datentypen, ähnlich wie in Microsoft Excel, einfach gehandhabt und verglichen werden. Das zugrunde liegende Berechnungsmodul basiert jedoch auf SQL Server Analysis Services und stellt zusätzliche erweiterte Funktionen eines relationalen Datenspeichers bereit, einschließlich der umfassenderen Unterstützung von Datums- und Uhrzeittypen. Daher sind die Ergebnisse von Berechnungen und das Verhalten der Funktionen in einigen Fällen anders als in Excel. Darüber hinaus unterstützt DAX eine größere Anzahl von Datentypen als Excel. In diesem Abschnitt werden wesentliche Unterschiede beschrieben.

Umwandlung des Datentyps von Operanden

Im Allgemeinen sollten die beiden Operanden auf der linken und rechten Seite eines Operators den gleichen Datentyp aufweisen. Wenn die Datentypen unterschiedlich sind, werden diese in DAX zum Vergleich jedoch wie folgt in einen gemeinsamen Datentyp konvertiert:

  1. Die Operanden werden zunächst in den größtmöglichen gemeinsamen Datentyp konvertiert.

  2. Als Nächstes werden die Operanden verglichen.

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

In diesem Fall konvertiert DAX beide Zahlen in reelle Zahlen mit einem numerischen Format, wobei das größte numerische Format verwendet wird, das beide Arten von Zahlen speichern kann. Anschließend werden die Werte von DAX verglichen.

In Excel dagegen wird versucht, die Werte mit unterschiedlichen Datentypen zu vergleichen, ohne sie zunächst in einen gemeinsamen Datentyp umzuwandeln. Aus diesem Grund erhalten Sie mit demselben Vergleichsausdruck in DAX möglicherweise andere Ergebnisse als in Excel.

In DAX verwendete Datentypen

In Excel verwendete Datentypen

Numbers (I8, R8)

Boolean

String

DateTime

Currency

Numbers (R8)

Boolean

String

Variant

Currency

Weitere Informationen zur impliziten Datentypkonvertierung finden Sie unter In PowerPivot-Arbeitsmappen unterstützte Datentypen.

Unterschiede bei der Rangfolge

Die Rangfolge von Vorgängen in DAX-Formeln ist im Grunde die gleiche wie in Microsoft Excel, einige Excel-Operatoren werden jedoch nicht unterstützt, wie beispielsweise das Prozentzeichen. Außerdem werden Bereiche nicht unterstützt.

Wenn Sie also Formeln aus Excel kopieren und einfügen, sollten Sie die Formel sorgfältig überprüfen, da einige Operatoren oder Elemente in DAX möglicherweise nicht gültig sind. Wenn Sie hinsichtlich der Reihenfolge, in der die Operationen ausgeführt werden, nicht sicher sind, empfiehlt sich die Verwendung von Klammern, um die Reihenfolge eindeutig festzulegen und mehrdeutige Ergebnisse zu vermeiden.