Freigeben über


DAX-Syntaxspezifikation für PowerPivot

DAX (Data Analysis Expressions) ist eine Bibliothek mit Funktionen, Operatoren und Konstanten, die kombiniert werden können, um Formeln und Ausdrücke in PowerPivot für Excel zu erstellen. Dieser Abschnitt enthält Details zur Syntax und zu den Anforderungen der Programmiersprache DAX. 

Beispiele für die Arten von Formeln, die Sie erstellen können, und wie Sie mithilfe von Ausdrücken Tabellen filtern und den Kontext ändern können, finden Sie unter Übersicht über Data Analysis Expressions (DAX). Dieses Thema enthält folgende Abschnitte:

Syntaxanforderungen

Benennungsanforderungen

Funktionen

Operatoren und Konstanten

Datentypen

Syntaxanforderungen

DAX-Formeln sind sehr ähnlich wie die Formeln, die Sie in Excel-Tabellen eingeben. Es gibt jedoch einige wesentliche Unterschiede.

  • In Microsoft Excel können Sie einzelne Zellen oder Arrays mit Verweisen versehen; in PowerPivot können Sie nur vollständige Tabellen oder Datenspalten mit Verweisen versehen. Wenn Sie jedoch nur einen Teil einer Spalte oder eindeutige Werte aus einer Spalte verwenden möchten, können Sie ein ähnliches Verhalten mit DAX-Funktionen erzielen, die die Spalte filtern oder eindeutige Werte zurückgeben.

  • DAX-Formeln unterstützen nicht genau die gleichen Datentypen wie Microsoft Excel. Im Allgemeinen bietet DAX mehr Datentypen als Excel, und beim Importieren verschiedener Daten werden von DAX implizite Typkonvertierungen ausgeführt. Weitere Informationen finden Sie unter Übersicht über Data Analysis Expressions (DAX).

Eine DAX-Formel beginnt immer mit einem Gleichheitszeichen (=). Nach dem Gleichheitszeichen können Sie einen beliebigen Ausdruck angeben, der einen Skalar ergibt, oder einen Ausdruck, der in einen Skalar konvertiert werden kann. Dies umfasst folgende Ausdrücke:

  • Eine skalare Konstante oder einen Ausdruck, der einen skalaren Operator verwendet (+,-,*,/,>=,...,&&, ...)

  • Verweise auf Spalten oder Tabellen. Die Programmiersprache DAX verwendet immer Tabellen und Spalten als Eingaben für Funktionen, nie ein Array oder einen beliebigen Satz von Werten.

  • Operatoren, Konstanten und Werte liegen als Teil eines Ausdrucks vor.

  • Das Ergebnis einer Funktion und ihrer erforderlichen Argumente. Einige DAX-Funktionen geben eine Tabelle statt eines Skalars zurück und müssen in eine Funktion eingeschlossen werden, die die Tabelle auswertet und ein Skalar zurückgibt. Lediglich, wenn die Tabelle eine einzelne Spalte (einzelne Zeilentabelle) ist, wird sie als Skalarwert behandelt.

    Die meisten PowerPivot-Funktionen erfordern mindestens ein Argument, dabei kann es sich um Tabellen, Spalten, Ausdrücke und Werte handeln. Einige Funktionen, z. B. PI, erfordern allerdings keine Argumente, jedoch immer Klammern, um das NULL-Argument anzugeben. Sie müssen z. B. immer PI() eingeben, nicht PI. Sie können auch Funktionen innerhalb anderer Funktionen schachteln.

  • Ausdrücke. Ein Ausdruck kann Operatoren, Konstanten und Verweise auf Spalten oder eine beliebige Kombination aus diesen enthalten.

So sind z. B. die folgenden Elemente gültige Formeln.

Formel

Ergebnis

=3

3

= "Sales"

Sales

='Sales'[Amount]

Wenn Sie diese Formel in der Tabelle "Sales" verwenden, wird der Wert der Amount-Spalte aus der Sales-Tabelle für die aktuelle Zeile zurückgegeben.

=(0,03 *[Betrag])

=0,03 * [Betrag]

Drei Prozent des Werts in der Amount-Spalte der aktuellen Tabelle.

Obwohl diese Formel verwendet werden kann, um einen Prozentwert zu berechnen, wird das Ergebnis nicht als Prozentwert angezeigt, außer wenn Sie in der Tabelle eine Formatierung anwenden.

=PI()

Der Wert der Konstante Pi.

HinweisHinweis

Formeln können sich unterschiedlich verhalten, je nachdem, ob sie in einer berechneten Spalte oder in einem Measure innerhalb einer PivotTable verwendet werden. Beachten Sie bei in der Formel verwendeten Daten stets deren Kontext und Beziehungen zu anderen Daten, die möglicherweise bei der Berechnung verwendet werden. Weitere Informationen finden Sie unter Kontext in DAX-Formeln.

Benennungsanforderungen

Ein PowerPivot-Fenster kann mehrere Tabellen enthalten, von denen sich jede auf einer eigenen Registerkarte befindet. Zusammen bilden die Tabellen und ihre Spalten eine Datenbank, die im PowerPivot-VertiPaq-Modul gespeichert wird. Innerhalb dieser Datenbank müssen alle Tabellen eindeutige Namen aufweisen. Die Namen der Spalten müssen auch innerhalb der einzelnen Tabellen eindeutig sein. Bei allen Objektnamen wird die Groß-/Kleinschreibung nicht beachtet; die Namen SALES und Sales würden z. B. die gleiche Tabelle darstellen.

Jede Spalte und jedes Measure, die Sie einer vorhandenen PowerPivot-Datenbank hinzufügen, müssen zu einer bestimmten Tabelle gehören. Sie geben die Tabelle, die die Spalte enthält, entweder implizit an, wenn Sie eine berechnete Spalte in einer Tabelle erstellen, oder explizit, wenn Sie ein Measure erstellen und den Namen der Tabelle angeben, in der die Measuredefinition gespeichert werden soll.

Wenn Sie eine Tabelle oder Spalte als Funktionseingabe verwenden, muss im Allgemeinen der Spaltenname qualifiziert werden. Der vollqualifizierte Name einer Spalte ist der Tabellenname, gefolgt vom Spaltennamen in eckigen Klammern. Beispiel: 'U.S. Sales'[Products]. Ein vollqualifizierter Name ist immer erforderlich, wenn Sie in den folgenden Kontexten auf eine Spalte Verweisen:

  • Als Argument für die VALUES-Funktion

  • Als Argument für die ALL- oder ALLEXCEPT-Funktion

  • In einem Filterargument für die CALCULATE- oder CALCULATETABLE-Funktion

  • Als Argument für die RELATEDTABLE-Funktion

  • Als Argument für alle Zeitintelligenzfunktionen

Ein nicht qualifizierter Spaltenname ist nur der in Klammern eingeschlossene Name der Spalte, z. B. [Sales Amount]. Wenn Sie beispielsweise einen Skalarwert aus der gleichen Zeile der aktuellen Tabelle mit Verweisen versehen, können Sie den unqualifizierten Spaltennamen verwenden.

Wenn der Name einer Tabelle Leerzeichen, reservierte Schlüsselwörter oder unzulässige Zeichen enthält, müssen Sie den Tabellennamen in einfache Anführungszeichen setzen. Sie müssen auch Tabellennamen in Anführungszeichen einschließen, wenn der Name Zeichen außerhalb des alphanumerischen ANSI-Zeichenbereichs enthält, unabhängig davon, ob das Gebietsschema den Zeichensatz unterstützt. Wenn Sie beispielsweise eine Arbeitsmappe öffnen, die in kyrillischen Zeichen geschriebene Tabellennamen enthält, z. B. 'Таблица', muss der Tabellenname in Anführungszeichen eingeschlossen sein, obwohl er keine Leerzeichen enthält.

HinweisHinweis

Um die Eingabe vollqualifizierter Spaltennamen zu vereinfachen, empfiehlt sich die Verwendung der AutoVervollständigen-Funktion für Formeln im Client.

Tabellen

  • Tabellennamen sind immer dann erforderlich, wenn die Spalte nicht aus der aktuellen Tabelle stammt. Tabellennamen müssen innerhalb der Datenbank eindeutig sein.

  • Tabellennamen müssen in einfache Anführungszeichen gesetzt werden, wenn sie Leerzeichen, andere Sonderzeichen oder beliebige nicht englische alphanumerische Zeichen enthalten.

Measures

  • Measurenamen müssen immer in Klammern stehen.

  • Measurenamen können Leerzeichen enthalten.

  • Jeder Measurename muss innerhalb einer Datenbank eindeutig sein. Deshalb ist der Tabellenname vor einem Measurenamen optional, wenn Sie auf ein bereits vorhandenes Measure verweisen. Wenn Sie jedoch ein Measure erstellen, müssen Sie immer eine Tabelle angeben, in der die Measuredefinition gespeichert wird.

Spalten

Spaltennamen müssen im Kontext einer Tabelle eindeutig sein. Mehrere Tabellen können jedoch Spalten mit den gleichen Namen enthalten. Die Unterscheidung erfolgt anhand des Tabellennamens.

Im Allgemeinen kann auf Spalten verwiesen werden, ohne auf die Basistabelle zu verweisen, zu der sie gehören, es sei denn ein Namenskonflikt muss gelöst werden, oder bestimmte Funktionen erfordern, dass die Spaltennamen vollqualifiziert sind.

Reservierte Schlüsselwörter

Wenn der Name, den Sie für eine Tabelle verwenden, derselbe ist wie ein reserviertes Analysis Services-Schlüsselwort, wird ein Fehler ausgelöst, und Sie müssen die Tabelle umbenennen. Sie können jedoch Schlüsselwörter in Objektnamen verwenden, wenn der Objektname in Klammern (für Spalten) oder Anführungszeichen (für Tabellen) eingeschlossen ist.

HinweisHinweis

Beachten Sie, dass Anführungszeichen durch verschiedene Zeichen dargestellt werden können, abhängig von der Anwendung. Wenn Sie Formeln für ein externes Dokument oder eine Internetseite einfügen, sollten Sie den ASCII-Code der Zeichen überprüfen, die für das öffnende und das schließende Anführungszeichen verwendet wird, um sicherzustellen, dass es die gleichen sind. Andernfalls kann DAX die Symbole möglicherweise nicht als Anführungszeichen erkennen, und der Verweis wird dadurch ungültig.

Sonderzeichen

Die folgenden Zeichen und Zeichentypen sind in den Namen von Tabellen, Spalten oder Measures nicht gültig:

  • Führende oder nachstehende Leerzeichen, außer wenn die Leerzeichen von Namenstrennzeichen, Klammern oder einzelnen Apostrophen eingeschlossen werden.

  • Steuerzeichen

  • Die folgenden Zeichen, die für Namen von PowerPivot-Objekten nicht gültig sind:

    .,;':/\*|?&%$!+=()[]{}<>

Beispiele für Objektnamen

In der folgenden Tabelle werden Beispiele für einige Objektnamen beschrieben:

Objekttypen

Beispiele

Kommentar

Tabellenname

Sales

Wenn der Tabellenname keine Leerzeichen oder andere Sonderzeichen enthält, muss der Name nicht in Anführungszeichen gesetzt werden.

Tabellenname

‘Canada Sales’

Wenn der Name Leerzeichen, Tabulatoren oder andere Sonderzeichen enthält, setzen Sie den Namen in einfache Anführungszeichen.

Vollqualifizierter Spaltenname

Sales[Amount]

Der Tabellenname geht dem Spaltennamen voraus, und der Spaltenname wird in Klammern gesetzt.

Vollqualifizierter Measurename

Sales[Profit]

Der Tabellenname geht dem Measurenamen voraus, und der Measurename wird in Klammern gesetzt. In bestimmten Kontexten ist ein vollqualifizierter Name immer erforderlich.

Nicht qualifizierter Spaltenname

[Amount]

Der nicht qualifizierte Name ist nur der Spaltenname in Klammern. Kontexte, in denen der nicht qualifizierte Name in einer berechneten Spalte innerhalb der gleichen Tabelle oder in einer Aggregationsfunktion, die die gleiche Tabelle überwacht, verwendet werden kann.

Vollqualifizierte Spalte in einer Tabelle mit Leerzeichen

‘Canada Sales’[Qty]

Der Tabellenname enthält Leerzeichen, weshalb er in einfache Anführungszeichen gesetzt werden muss.

HinweisHinweis

Beim Erstellen von Formeln empfiehlt sich die Verwendung der AutoVervollständigen-Funktion, um die Eingabe vollqualifizierter Spaltennamen zu vereinfachen. Weitere Informationen finden Sie unter Erstellen von Formeln für Berechnungen.

Verschiedene Einschränkungen

Die erforderliche Syntax für jede Funktion und der Typ des Vorgangs, den sie ausführen kann, hängen sehr von der Funktion ab. Im Allgemeinen gelten jedoch die folgenden Regeln für alle Formeln und Ausdrücke:

  • DAX-Formeln und -Ausdrücke können keine einzelnen Werte in Tabellen ändern oder einfügen.

  • Sie können keine berechneten Zeilen mithilfe von DAX erstellen. Sie können nur berechnete Spalten und Measures erstellen.

  • Wenn Sie berechnete Spalten definieren, können Sie Funktionen auf jede beliebige Ebene schachteln.

  • DAX verfügt über mehrere Funktionen, die eine Tabelle zurückgeben. In der Regel verwenden Sie die Werte, die von diesen Funktionen als Eingabe an andere Funktionen übergeben werden, für die eine Tabelle als Eingabe erforderlich ist.

DAX-Operatoren und -Konstanten

In der folgenden Tabelle sind die von DAX unterstützten Operatoren aufgeführt. Im Allgemeinen verhalten sich die Operatoren in DAX wie in Microsoft Excel, mit einigen kleineren Ausnahmen. Weitere Informationen zur Syntax der einzelnen Operatoren finden Sie unter DAX-Operatorreferenz für PowerPivot.

Operatortyp

Symbol und Verwendung

Klammernoperator

()precedence-Reihenfolge und Gruppierung von Argumenten

Arithmetische Operatoren

+ (Addition)

- (Subtraktion/Zeichen)

* (Multiplikation)

/ (Division)

^ (Potenzierung)

Vergleichsoperatoren

= (Gleich)

> (Größer als)

< (Kleiner als)

>= (Größer als oder gleich)

<= (Kleiner als oder gleich)

<> (Nicht gleich)

Textverkettungsoperator

& (Verkettung)

Logische Operatoren

&& (und)

|| (oder)

Datentypen in DAX

Sie müssen den Datentyp einer Spalte oder den Wert, den Sie in einer DAX-Formel verwenden, nicht umwandeln, konvertieren oder andernfalls angeben. Wenn Sie Daten in einer DAX-Formel verwenden, ermittelt DAX die Datentypen automatisch in Verweisspalten und anhand der eingegebenen Werte und führt ggf. implizite Konvertierungen aus, um den angegebenen Vorgang abzuschließen.

Wenn Sie z. B. versuchen, einem Datumswert eine Zahl hinzuzufügen, wie in Excel, interpretiert PowerPivot den Vorgang im Kontext der Funktion und konvertiert die Zahlen in einen allgemeinen Datentyp. Das Ergebnis wird dann im beabsichtigten Format, einem Datum, präsentiert.

Es gibt jedoch 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. DAX stellt auch keine Funktionen bereit, mit denen Sie den Datentyp von vorhandenen Daten, die Sie in eine PowerPivot-Arbeitsmappe importiert haben, explizit ändern, konvertieren oder umwandeln können.

Wichtiger HinweisWichtig

PowerPivot unterstützt die Verwendung des Variantendatentyps nicht, der in Excel verwendet wurde. Wenn Sie daher Daten laden oder importieren, wird erwartet, dass die Daten in jeder Spalte im Allgemeinen einen konsistenten Datentyp aufweisen.

Einige Funktionen geben Skalarwerte zurück, einschließlich Zeichenfolgen, wohingegen andere Funktionen mit Zahlen (sowohl mit ganzen als auch mit reellen Zahlen) oder Datums- und Uhrzeitangaben funktionieren. Der erforderliche Datentyp für jede Funktion wird im Abschnitt DAX-Funktionsreferenz für PowerPivot beschrieben.

Tabellen sind ein neuer Datentyp in PowerPivot. Sie können Tabellen mit mehreren Daten- und Zeilenspalten als Argument für eine Funktion verwenden. Einige Funktionen geben auch Tabellen zurück, die im Arbeitsspeicher gespeichert werden und als Argumente für andere Funktionen verwendet werden können.

Weitere Informationen zu den verschiedenen numerischen und Uhrzeit-/Datums-Datentypen sowie Details zur Verwendung von Nullen und leeren Zeichenfolgen finden Sie unter In PowerPivot-Arbeitsmappen unterstützte Datentypen .