Data Analysis Expressions (DAX) klingt zunächst ein wenig einschüchternd, aber lassen Sie sich von dem Namen nicht entmutigen. Die Grundlagen von DAX sind ziemlich einfach zu verstehen. Das Wichtige zuerst: DAX ist KEINE Programmiersprache. DAX ist eine Formelsprache. Sie können DAX verwenden, um benutzerdefinierte Berechnungen für berechnete Spalten und für Measures (auch als berechnete Felder bezeichnet) zu definieren. DAX enthält einige der Funktionen, die in Excel-Formeln verwendet werden, sowie zusätzliche Funktionen, die für die Arbeit mit relationalen Daten und die Erstellung von dynamischen Aggregationen entwickelt wurden.
Grundlegendes zu DAX-Formeln
DAX-Formeln sind Excel-Formeln sehr ähnlich. Zum Erstellen geben Sie ein Gleichheitszeichen gefolgt von einem Funktionsnamen oder Ausdruck sowie den erforderlichen Werten oder Argumenten ein. Wie Excel stellt DAX eine Vielzahl von Funktionen bereit, die Ihnen ermöglichen, mit Zeichenfolgen zu arbeiten, Berechnungen mit Datums- und Uhrzeitangaben durchzuführen und bedingte Werte zu erstellen.
DAX-Formeln unterscheiden sich jedoch in den folgenden wichtigen Punkten:
-
Zum Anpassen von Berechnungen auf Zeilenbasis stellt DAX Funktionen bereit, mit denen Sie den aktuellen Zeilenwert oder einen verknüpften Wert für Berechnungen verwenden können, die sich je nach Kontext unterscheiden.
-
DAX beinhaltet einen Funktionstyp, der statt eines einzelnen Werts eine Tabelle als Ergebnis zurückgibt. Diese Funktionen können verwendet werden, um Eingaben für andere Funktionen bereitzustellen.
-
Zeitintelligenzfunktionen in DAX ermöglichen Berechnungen mit Datumsbereichen und vergleichen die Ergebnisse über parallele Zeiträume hinweg.
Verwendungsbereiche für DAX-Formeln
Formeln können in Power Pivot entweder in berechneten Spalten oder in berechneten Feldern erstellt werden.
Berechnete Spalten
Eine berechnete Spalte ist eine Spalte, die Sie einer vorhandenen Power Pivot-Tabelle hinzufügen. Anstatt Werte in die Spalte einzufügen oder zu importieren, erstellen Sie eine DAX-Formel, mit der die Spaltenwerte definiert werden. Wenn Sie die Power Pivot-Tabelle in eine PivotTable (oder ein PivotChart) einfügen, kann die berechnete Spalte wie alle anderen Datenspalten verwendet werden.
Die Formeln in berechneten Spalten ähneln den Formeln, die Sie in Excel erstellen. Anders als in Excel können Sie jedoch keine andere Formel für unterschiedliche Zeilen in einer Tabelle erstellen. Stattdessen wird die DAX-Formel automatisch auf die gesamte Spalte angewendet.
Enthält eine Spalte eine Formel, wird für jede Zeile der entsprechende Wert berechnet. Die Ergebnisse werden unmittelbar nach der Erstellung der Formel für die Spalte berechnet. Spaltenwerte werden nur neu berechnet, wenn die zugrunde liegenden Daten aktualisiert werden, oder wenn die manuelle Neuberechnung verwendet wird.
Sie können berechnete Spalten erstellen, die auf Measures und anderen berechneten Spalten basieren. Vermeiden Sie jedoch die Verwendung desselben Namens für eine berechnete Spalte und ein Measure, da dies zu verwirrenden Ergebnissen führen kann. Wenn Sie auf eine Spalte verweisen, empfiehlt es sich, einen vollqualifizierten Spaltenverweis zu verwenden, um zu vermeiden, dass versehentlich ein Measure aufgerufen wird.
Ausführlichere Informationen finden Sie unter Berechnete Spalten in Power Pivot.
Kennzahlen
Ein Measure ist eine Formel, die speziell für die Verwendung in einer PivotTable (oder einem PivotChart) erstellt wird, die Power Pivot Daten verwendet. Measures können auf Standardaggregationsfunktionen wie COUNT oder SUM basieren, oder Sie können ihre eigene Formel mithilfe von DAX definieren. Ein Measure wird im Bereich Werte einer PivotTable verwendet. Wenn Sie berechnete Ergebnisse in einem anderen Bereich einer PivotTable einfügen möchten, verwenden Sie stattdessen eine berechnete Spalte.
Wenn Sie eine Formel für ein explizites Measure definieren, geschieht nichts, bis Sie das Measure einer PivotTable hinzufügen. Wenn Sie das Measure hinzufügen, wird die Formel für jede Zelle im Bereich Werte der PivotTable ausgewertet. Da für jede Kombination von Zeilen- und Spaltenüberschriften ein Ergebnis erstellt wird, kann das Ergebnis für das Measure in jeder Zelle unterschiedlich sein.
Die Definition des measures, das Sie erstellen, wird mit der zugehörigen Quelldatentabelle gespeichert. Es wird in der PivotTable-Feldliste angezeigt und steht allen Benutzern der Arbeitsmappe zur Verfügung.
Ausführliche Informationen dazu finden Sie unter Measures in Power Pivot.
Erstellen von Formeln mit der Bearbeitungsleiste
Power Pivot verfügt genauso wie Excel über eine Bearbeitungsleiste und eine AutoVervollständigen-Funktion, um das Erstellen und Bearbeiten von Formeln zu vereinfachen und Eingabe- und Syntaxfehler zu minimieren.
So geben Sie den Namen einer Tabelle ein Beginnen Sie mit der Eingabe des Tabellennamens. Die AutoVervollständigen-Formel stellt eine Dropdownliste bereit, die gültige Namen enthält, die mit den entsprechenden Buchstaben beginnen.
So geben Sie den Namen einer Spalte ein Geben Sie eine eckige Klammer ein, und wählen Sie anschließend die Spalte aus der Liste der Spalten in der aktuellen Tabelle aus. Geben Sie für eine Spalte aus einer anderen Tabelle die ersten Buchstaben des Tabellennamens ein, und wählen Sie anschließend die Spalte aus der AutoVervollständigen-Dropdownliste aus.
Weitere Details und eine exemplarische Vorgehensweise zum Erstellen von Formeln finden Sie unter Erstellen von Formeln für Berechnungen in Power Pivot.
Tipps zum Verwenden von AutoVervollständigen
Sie können AutoVervollständigen von Formeln in der Mitte einer vorhandenen Formel mit geschachtelten Funktionen verwenden. Der Text vor der Einfügemarke wird zum Anzeigen von Werten in der Dropdownliste verwendet, und der gesamte Text hinter der Einfügemarke bleibt unverändert.
Definierte Namen, die Sie für Konstanten erstellen, werden nicht in der AutoVervollständigen-Dropdownliste angezeigt, Sie können sie jedoch eingeben.
Power Pivot fügt die schließende Klammer von Funktionen nicht hinzu oder stimmt automatisch mit Klammern überein. Sie sollten sicherstellen, dass jede Funktion syntaktisch korrekt ist, oder Sie können die Formel nicht speichern oder verwenden.
Verwenden mehrerer Funktionen in einer Formel
Sie können Funktionen schachteln, was bedeutet, dass Sie die Ergebnisse einer Funktion als Argument einer anderen Funktion verwenden. Sie können bis zu 64 Funktionenebenen in berechneten Spalten schachteln. Die Schachtelung kann jedoch das Erstellen oder Behandeln von Problemen mit Formeln erschweren.
Viele DAX-Funktionen wurden zur ausschließlichen Verwendung als geschachtelte Funktionen entwickelt. Diese Funktionen geben eine Tabelle zurück, die nicht direkt als Ergebnis gespeichert werden kann, sondern als Eingabe für eine Tabellenfunktion bereitgestellt werden sollte. Die Funktionen SUMX, AVERAGEX und MINX erfordern beispielsweise alle eine Tabelle als erstes Argument.
Hinweis: Es gibt einige Einschränkungen für die Schachtelung von Funktionen innerhalb von Measures, um sicherzustellen, dass die Leistung nicht durch die vielen Berechnungen beeinträchtigt wird, die von Abhängigkeiten zwischen Spalten erforderlich sind.
Vergleich von DAX-Funktionen und Excel-Funktionen
Die DAX-Funktionsbibliothek basiert auf der Excel-Funktionsbibliothek, die Bibliotheken weisen jedoch viele Unterschiede auf. Dieser Abschnitt enthält einen Überblick über die Unterschiede und die Ähnlichkeiten zwischen Excel-Funktionen und DAX-Funktionen.
-
Viele DAX-Funktionen haben denselben Namen und das gleiche allgemeine Verhalten wie Excel-Funktionen, wurden jedoch geändert, um andere Eingabetypen zu unterstützen, und geben in einigen Fällen u. U. einen anderen Datentyp zurück. In der Regel ist es nicht möglich, DAX-Funktionen in einer Excel-Formel oder Excel-Formeln in Power Pivot zu verwenden, ohne bestimmte Änderungen vorzunehmen.
-
DAX-Funktionen akzeptieren keinen Zellbezug oder Bereich als Verweis. Stattdessen akzeptieren DAX-Funktionen Spalten oder Tabellen als Verweis.
-
Datums- und Uhrzeitfunktionen geben bei DAX einen datetime-Datentyp zurück. Im Gegensatz dazu geben Datums- und Uhrzeitfunktionen bei Excel eine ganze Zahl zurück, die ein Datum als serielle Zahl darstellt.
-
Viele der neuen DAX-Funktionen geben entweder eine Tabelle mit Werten zurück oder führen Berechnungen auf Grundlage einer Tabelle mit Werten aus. Im Gegensatz dazu verfügt Excel über keine Funktionen, die eine Tabelle zurückgeben, obwohl einige Funktionen Matrizen unterstützen. Der einfache Verweis auf vollständige Tabellen und Spalten ist eine neue Funktion in Power Pivot.
-
DAX stellt neue Suchfunktionen bereit, die den Array- und Vektorsuchfunktionen in Excel ähneln. Die DAX-Funktionen erfordern jedoch, dass eine Beziehung zwischen den Tabellen festgelegt wird.
-
Für die Daten in einer Spalte wird immer derselbe Datentyp erwartet. Wenn die Daten nicht vom gleichen Typ sind, wird in DAX die gesamte Spalte in den Datentyp geändert, der am besten zu allen Werten passt.
DAX-Datentypen
Sie können Daten aus vielen verschiedenen Datenquellen, die unterschiedliche Datentypen unterstützen, in ein Power Pivot Datenmodell importieren. Wenn Sie die Daten importieren oder laden und die Daten dann in Berechnungen oder in PivotTables verwenden, werden die Daten in einen der Power Pivot Datentypen konvertiert. Eine Liste der Datentypen finden Sie unter Datentypen in Datenmodellen.
Der table-Datentyp ist ein neuer Datentyp in DAX, der als Eingabe oder Ausgabe für viele neue Funktionen verwendet wird. Beispielsweise nimmt die FILTER-Funktion eine Tabelle als Eingabe an und gibt eine neue Tabelle aus, die nur die Zeilen enthält, die die Filterbedingungen erfüllen. Die Kombination von Tabellen- und Aggregationsfunktionen ermöglicht Ihnen die Ausführung komplexer Berechnungen für dynamisch definierte Datasets. Weitere Informationen finden Sie unter Aggregationen in Power Pivot.
Formeln und das relationale Modell
Das Power Pivot-Fenster ist ein Bereich, in dem Sie mit mehreren Datentabellen arbeiten und die Tabellen in einem relationalen Modell verbinden können. Innerhalb dieses Datenmodells werden Tabellen über Beziehungen miteinander verknüpft, die es Ihnen ermöglichen, Korrelationen mit Spalten in anderen Tabellen zu erstellen, um interessantere Berechnungen durchführen zu können. Sie können beispielsweise Formeln erstellen, die Werte für eine verknüpfte Tabelle addieren, und diesen Wert dann in einer einzelnen Zelle speichern. Außerdem können Sie Filter auf Tabellen und Spalten anwenden, um die Zeilen aus der verknüpften Tabelle zu steuern. Weitere Informationen finden Sie unter Beziehungen zwischen Tabellen in einem Datenmodell.
Da Sie Tabellen mit Beziehungen verknüpfen können, können PivotTables auch Daten aus mehreren Spalten enthalten, die aus verschiedenen Tabellen stammen.
Da Formeln jedoch mit ganzen Tabellen und Spalten arbeiten können, müssen die Berechnungen anders entworfen werden als in Excel.
-
Im Allgemeinen wird eine DAX-Formel in einer Spalte immer auf den ganzen Satz von Werten in der Spalte angewendet (nie auf nur ein paar Zeilen oder Zellen).
-
Tabellen in Power Pivot müssen immer die gleiche Anzahl von Spalten in jeder Zeile enthalten, und alle Zeilen in einer Spalte müssen den gleichen Datentyp enthalten.
-
Wenn Tabellen durch eine Beziehung verbunden werden, muss sichergestellt sein, dass die Werte der beiden als Schlüssel verwendeten Spalten weitestgehend übereinstimmen. Da von Power Pivot keine referenzielle Integrität erzwungen wird, kann auch bei nicht übereinstimmenden Werten in einer Schlüsselspalte eine Beziehung erstellt werden. Das Vorhandensein leerer oder nicht übereinstimmender Werte kann sich jedoch auf die Ergebnisse von Formeln und die Darstellung von PivotTables auswirken. Weitere Informationen finden Sie unter Suchvorgänge in Power Pivot-Formeln.
-
Wenn Sie Tabellen mithilfe von Beziehungen verknüpfen, vergrößern Sie den Bereich oder Kontext, in dem die Formeln ausgewertet werden. Beispielsweise können sich alle Filter oder Spalten- und Zeilenüberschriften in der PivotTable auf die Formeln in einer PivotTable auswirken. Sie können Formeln schreiben, mit denen der Kontext bearbeitet wird, der Kontext kann jedoch auch bewirken, dass die Ergebnisse auf nicht vorhersehbare Weise geändert werden. Weitere Informationen finden Sie unter Kontext in DAX-Formeln.
Aktualisieren der Ergebnisse von Formeln
Datena ktualisierung und Neuberechnung sind zwei getrennte, jedoch miteinander verwandte Vorgänge, die Sie verstehen sollten, wenn Sie ein Datenmodell mit komplexen Formeln, großen Datenmengen oder aus externen Datenquellen abgerufenen Daten erstellen.
Datenaktualisierung ist der Prozess, bei dem die Daten in der Arbeitsmappe mit neuen Daten aus einer externen Datenquelle aktualisiert werden. Daten können manuell in von Ihnen angegebenen Intervallen aktualisiert werden. Wenn Sie die Arbeitsmappe auf einer SharePoint-Website veröffentlicht haben, können Sie auch eine automatische Aktualisierung von externen Quellen planen.
Neuberechnung ist der Prozess, bei dem die Ergebnisse von Formeln aktualisiert werden, um Änderungen an den Formeln selbst sowie an den zugrunde liegenden Daten widerzuspiegeln. Die Neuberechnung kann die Leistung in folgender Weise beeinträchtigen:
-
Für eine berechnete Spalte sollte das Ergebnis der Formel immer für die ganze Spalte neu berechnet werden, wenn Sie die Formel ändern.
-
Bei einem Measure werden die Ergebnisse einer Formel erst berechnet, wenn das Measure im Kontext der PivotTable oder des PivotCharts platziert wird. Die Formel wird auch neu berechnet, wenn Sie eine beliebige Zeilen- oder Spaltenüberschrift ändern, die sich auf Datenfilter auswirkt, oder wenn Sie die PivotTable manuell aktualisieren.
Problembehandlung in Formeln
Fehler beim Erstellen von Formeln
Wenn beim Definieren einer Formel ein Fehler angezeigt wird, enthält die Formel möglicherweise entweder einen Syntaxfehler, einen Semantikfehler oder einen Berechnungsfehler.
Von diesen sind die Syntaxfehler am einfachsten zu beheben. Normalerweise bestehen sie in einer fehlenden Klammer oder einem fehlenden Komma. Hilfe zur Syntax einzelner Funktionen finden Sie in der DAX-Funktionsreferenz.
Der andere Typ Fehler tritt auf, wenn die Syntax richtig ist, der Wert der Spalten, auf die verwiesen wird, jedoch im Kontext der Formel keinen Sinn ergibt. Derartige Semantik- und Berechnungsfehler können durch eins der folgenden Probleme verursacht werden:
-
Die Formel verweist auf eine nicht vorhandene Spalte, Tabelle oder Funktion.
-
Die Formel erscheint richtig, wenn das Datenmodul die Daten dann abruft, findet es jedoch einen Typfehler und gibt einen Fehler aus.
-
Die Formel übergibt einer Funktion eine falsche Zahl oder einen falschen Parametertyp.
-
Die Formel verweist auf eine andere Spalte, die einen Fehler aufweist und deren Werte daher ungültig sind.
-
Die Formel verweist auf eine Spalte, die nicht verarbeitet wurde, d.h. sie verfügt über Metadaten, jedoch nicht über Nutzdaten, die für die Berechnung verwendet werden können.
In den ersten vier Fällen markiert DAX die gesamte Spalte, die die ungültige Formel enthält. Im letzten Fall stellt DAX die Spalte ausgegraut dar, um anzuzeigen, dass sie sich in einem nicht verarbeiteten Zustand befindet.
Falsche oder ungewöhnliche Werte beim Bewerten oder Sortieren von Spaltenwerten
Beim Bewerten oder Sortieren einer Spalte, die einen NaN-Wert (Not a Number, kein Zahlenwert) enthält, können falsche oder unerwartete Ergebnisse resultieren. Wenn eine Berechnung beispielsweise 0 durch 0 dividiert, wird ein NaN-Ergebnis zurückgegeben.
Dies hat den Grund, dass das Formelmodul Sortierung und Bewertung durch Vergleich der numerischen Werte durchführt; NaN kann jedoch nicht mit Zahlen in der Spalte verglichen werden.
Zum Sicherstellen richtiger Ergebnisse können Sie bedingte Anweisungen mit der Funktion WENN verwenden, um auf NaN-Werte zu prüfen und einen numerischen Wert 0 zurückzugeben.
Kompatibilität mit Analysis Services-Tabellenmodellen und DirectQuery-Modus
Normalerweise sind in Power Pivot erstellte DAX-Formeln vollständig kompatibel mit Analysis Services-Tabellenmodellen. Wenn Sie das Power Pivot-Modell zu einer Analysis Services-Instanz migrieren und das Modell dann im DirectQuery-Modus bereitstellen, gibt es jedoch einige Beschränkungen.
-
Von einigen DAX-Formeln können unterschiedliche Ergebnisse zurückgegeben werden, wenn Sie das Modell im DirectQuery-Modus bereitstellen.
-
Einige Formeln können Überprüfungsfehler verursachen, wenn Sie das Modell im DirectQuery-Modus bereitstellen, weil die Formel eine DAX-Funktion enthält, die für eine relationale Datenquelle nicht unterstützt wird.
Weitere Informationen finden Sie in der Dokumentation zur Tabellenmodellierung in Analysis Services in der SQL Server 2012-Onlinedokumentation.