Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Data Analysis Expressions (DAX) ist die Formelsprache, die zum Erstellen von benutzerdefinierten Berechnungen in PowerPivot für Microsoft Excel-Arbeitsmappen und Analysis Services-Tabellenmodellprojekte verwendet wird. DAX-Formeln umfassen Funktionen, Operatoren und Werte, um erweiterte Berechnungen für Daten in Tabellen und Spalten durchzuführen.
Während DAX sowohl für PowerPivot-Arbeitsmappen als auch für Tabellenmodellprojekte gilt, gilt dieses Thema mehr für tabellarische Modellprojekte, die in SQL Server Data Tools (SSDT) erstellt wurden. Bevor Sie dieses Thema lesen, sollten Sie über ein gutes Verständnis für tabellarische Modelle und die Tabellenmodellerstellungsumgebung in SQL Server Data Tools (SSDT) verfügen.
Abschnitte in diesem Thema:
DAX in tabellarischen Modellen
In PowerPivot- und tabellarischen Modellen gibt es keinen Unterschied darin, wie DAX-Formeln Werte aus ihren jeweiligen Datensätzen berechnen. Allerdings ist es unterschiedlich, wo DAX-Formeln in der Arbeitsmappe und in den Modellerstellungstools erstellt werden, und wo der Kontext in bestimmten Kennzahlen ausgewertet wird.
In PowerPivot werden Berechnungsformeln in der Regel vom Arbeitsmappenbenutzer für die Self-Service Business Intelligence-Analyse erstellt. Berechnete Spalten werden für eine Tabelle im PowerPivot-Fenster erstellt, und Maße werden in PivotTables oder im Berechnungsbereich erstellt. Im Gegensatz zu Tabellenmodellprojekten bieten PowerPivot-Arbeitsmappen keine rollenbasierte Sicherheit, die DAX-Formeln verwenden kann, um Daten zu sichern.
In Tabellenmodellprojekten werden Berechnungsformeln im Modell-Designer in SQL Server Data Tools (SSDT) von Modellautoren erstellt. Während Werte für berechnete Spalten, die mithilfe von DAX-Formeln berechnet werden, sofort in der Tabelle im Modelldesigner angezeigt werden, werden Measures erst berechnet, wenn ein Benutzer einen Filter in einem Berichterstellungsclient wie Power View oder in PivotTables in Microsoft Excel angibt. Die Ausnahme bildet das Measure-Vorschaufeature im Measureraster.
Wenn Sie eine PowerPivot-Arbeitsmappe in ein neues tabellarisches Modellprojekt importieren, indem Sie die PowerPivot-Projektvorlage "Aus PowerPivot importieren" verwenden, werden DAX-Formeln für berechnete Spalten automatisch im neuen tabellarischen Modell erstellt. DAX-Formeln für implizite und explizite Berechnungen in der Arbeitsmappe werden automatisch im neuen tabellarischen Modell als explizite Berechnungen erstellt. Da rollen- und sichere Zeilenfilterfunktionen in PowerPivot-Arbeitsmappen noch nicht vorhanden sind, müssen Sie mindestens eine Rolle im neuen tabellarischen Modell erstellen, um Modelldatenzugriff auf Rollenmitglieder bereitzustellen. DAX-Formeln in Zeilenfiltern sind nur erforderlich, wenn Sie Tabellendaten auf Zeilenebene sichern möchten.
DAX-Formeln in berechneten Spalten, Maßnahmen und Zeilenfiltern
Für tabellarische Modelle, die in SQL Server Data Tools (SSDT) erstellt wurden, werden DAX-Formeln in berechneten Spalten, Measures und Zeilenfiltern verwendet.
Berechnete Spalten
Eine berechnete Spalte ist eine Spalte, die Sie einer vorhandenen Tabelle (im Modell-Designer) hinzufügen und dann eine DAX-Formel erstellen, die die Spaltenwerte definiert. Mithilfe der Bearbeitungsleiste erstellen Sie Formeln für berechnete Spalten im Modell-Designer.
Hinweis
Berechnete Spalten werden für Modelle, die Daten aus einer relationalen Datenquelle mithilfe des DirectQuery-Modus abrufen, nicht unterstützt.
Wenn eine berechnete Spalte eine gültige DAX-Formel enthält, werden Werte für jede Zeile berechnet, sobald die Formel eingegeben wird. Werte werden dann in der Datenbank gespeichert. Wenn die Formel =[Calendar Year] & " Q" & [Calendar Quarter] in die Bearbeitungsleiste eingegeben wird, wird z. B. in einer Datumstabelle ein Wert für jede Zeile in der Tabelle berechnet, indem Werte aus der Spalte "Kalenderjahr" (in derselben Tabelle "Datum") verwendet werden, ein Leerzeichen und der Großbuchstabe Q hinzugefügt und dann die Werte aus der Spalte "Kalenderquartal" (in derselben Tabelle "Datum") hinzugefügt werden. Das Ergebnis für jede Zeile in der berechneten Spalte wird sofort berechnet und wird z. B. als 2010 Q1 angezeigt. Spaltenwerte werden nur neu berechnet, wenn die Daten erneut verarbeitet werden.
Weitere Informationen finden Sie unter Berechnete Spalten (SSAS Tabular).
Maßnahmen
Measures sind dynamische Formeln, bei denen sich die Ergebnisse je nach Kontext ändern. Measures werden in Berichtsformaten verwendet, die das Kombinieren und Filtern von Modelldaten mithilfe mehrerer Attribute wie einem Power View-Bericht oder Excel-PivotTable oder PivotChart unterstützen. In Tabellenmodellprojekten werden Kennzahlen vom Modellautor mithilfe des Kennzahlenrasters (und der Formelleiste) im Modelldesigner in SQL Server Data Tools (SSDT) definiert.
Eine Formel in einem Measure kann standardmäßige Aggregationsfunktionen verwenden, die automatisch mithilfe der Autosummenfunktion erstellt werden, z. B. ANZAHL oder SUMME, oder Sie können Ihre eigene Formel mithilfe von DAX definieren. Wenn Sie eine Formel für einen Messwert in der Bearbeitungsleiste definieren, zeigt die Tooltip-Funktion eine Vorschau der Ergebnisse der Summe im aktuellen Kontext an, sonst werden die Ergebnisse nicht sofort irgendwo ausgegeben. Weitere Measuredetails werden auch im Eigenschaftenbereich angezeigt.
Weil das Ergebnis einer Maßnahme nicht ohne Kontext bestimmt werden kann, können die (gefilterten) Ergebnisse der Berechnung nicht sofort angezeigt werden. Zum Auswerten eines Maßes ist eine Berichtsklientenanwendung erforderlich, die den Kontext bereitstellen kann, der für das Abrufen relevanter Daten für jede Zelle benötigt wird, um anschließend den Ausdruck für jede Zelle auswerten zu können. Dieser Client kann eine Excel-PivotTable oder ein PivotChart, ein Power View-Bericht oder eine MDX-Abfrage sein. Unabhängig vom Berichterstellungsclient wird für jede Zelle in den Ergebnissen eine separate Abfrage ausgeführt. Das heißt, jede Kombination aus Zeilen- und Spaltenüberschriften in einer PivotTable oder jede Auswahl von Datenschnitten und Filtern in einem Power View-Bericht generiert eine andere Teilmenge von Daten, über die die Kennzahl berechnet wird. Zum Beispiel, wenn ein Benutzer in einem Measure mit der Formel Total Sales:=SUM([Sales Amount]) das Measure "Gesamtumsatz" in das Fenster "Werte" platziert und dann die Spalte "Produktkategorie" aus einer Tabelle "Produkt" in das Fenster "Filter" platziert, wird die Summe des Umsatzbetrags berechnet und für jede Produktkategorie angezeigt.
Im Gegensatz zu berechneten Spalten und Zeilenfiltern umfasst die Syntax für eine Kennzahl den Namen der Kennzahl vor der Formel. Im soeben angegebenen Beispiel wird der Name "Gesamtumsatz" vor der Formel angezeigt. Nachdem Sie ein Measure erstellt haben, werden der Name und seine Definition in der Feldliste der Berichtsanwendung angezeigt. Abhängig von Perspektiven und Rollen steht es allen Benutzern des Modells zur Verfügung.
Weitere Informationen finden Sie unter Measures (SSAS Tabular).
Zeilenfilter
Zeilenfilter definieren, welche Zeilen in einer Tabelle für Elemente einer bestimmten Rolle sichtbar sind. Zeilenfilter können für jede Tabelle in einem Modell mithilfe von DAX-Formeln erstellt werden. Zeilenfilter werden für eine bestimmte Rolle mithilfe des Rollen-Managers in SQL Server Management Studio erstellt. Zeilenfilter können auch für ein bereitgestelltes Modell mithilfe von Rolleneigenschaften in SQL Server Management Studio definiert werden.
In einem Zeilenfilter definiert eine DAX-Formel, die eine boolesche WAHR/FALSCH-Bedingung auswerten muss, welche Zeilen von den Ergebnissen einer Abfrage von Mitgliedern dieser bestimmten Rolle zurückgegeben werden können. Zeilen, die nicht in der DAX-Formel enthalten sind, können nicht zurückgegeben werden. Beispielsweise können Mitglieder der Rolle "Vertrieb" mit der folgenden DAX-Formel in der Tabelle "Kunden" nur Daten für Kunden in den USA anzeigen, und Aggregate, wie SUMME, werden ebenfalls nur für Kunden in den USA zurückgegeben.
Wenn Sie einen Zeilenfilter mithilfe der DAX-Formel definieren, erstellen Sie einen zulässigen Zeilensatz. Dadurch wird der Zugriff auf andere Zeilen nicht verweigert; Stattdessen werden sie nicht als Teil des zulässigen Zeilensatzes zurückgegeben. Andere Rollen können den Zugriff auf die zeilen zulassen, die von der DAX-Formel ausgeschlossen werden. Wenn ein Benutzer Mitglied einer anderen Rolle ist und die Zeilenfilter dieser Rolle den Zugriff auf diesen bestimmten Zeilensatz ermöglichen, kann der Benutzer Daten für diese Zeile anzeigen.
Zeilenfilter gelten sowohl für die angegebenen Zeilen als auch für verwandte Zeilen. Wenn eine Tabelle über mehrere Beziehungen verfügt, wenden Filter für die aktive Beziehung Sicherheitsfunktionen an. Zeilenfilter werden mit anderen Zeilenfiltern verknüpft, die für verwandte Tabellen definiert sind.
Weitere Informationen finden Sie unter Rollen (SSAS Tabular).
DAX-Datentypen
Sie können Daten aus vielen verschiedenen Datenquellen importieren, die unterschiedliche Datentypen unterstützen. Wenn Sie Daten in ein Modell importieren, werden die Daten in einen der tabellarischen Modelldatentypen konvertiert. Wenn die Modelldaten in einer Berechnung verwendet werden, werden die Daten dann für die Dauer und Ausgabe der Berechnung in einen DAX-Datentyp konvertiert. Wenn Sie eine DAX-Formel erstellen, bestimmen die in der Formel verwendeten Ausdrücke automatisch den zurückgegebenen Wertdatentyp.
Tabellarische Modelle und DAX unterstützen die folgenden Datentypen:
| Datentyp im Modell | Datentyp in DAX | BESCHREIBUNG |
|---|---|---|
| Ganze Zahl | Ein 64-Bit (acht-Byte) Ganzzahlwert 1, 2 | Zahlen ohne Dezimalstellen. Ganze Zahlen können positive oder negative Zahlen sein, müssen jedoch ganze Zahlen zwischen -9.223.372.036.854.775.808 (-2^63) und 9.223.372.036.854.775.807 (2^63-1) sein. |
| Dezimalzahl | Eine 64-Bit (acht Byte) reelle Zahl 1, 2 | Reale Zahlen sind Zahlen, die Dezimalstellen enthalten können. Reelle Zahlen decken einen breiten Wertebereich ab: Negative Werte von -1,79E +308 bis -2,23E -308 Null Positive Werte von 2,23E -308 bis 1,79E + 308 Die Anzahl der signifikanten Ziffern ist jedoch auf 17 Dezimalstellen beschränkt. |
| Boolescher Typ (Boolean) | Boolescher Typ (Boolean) | Entweder ein Wahr- oder Falsch-Wert. |
| Text | Schnur | Eine Unicode-Zeichendatenzeichenfolge. Dabei kann es sich um Zeichenfolgen, Zahlen oder Datumsangaben handeln, die in einem Textformat dargestellt werden. |
| Datum | Datum/Uhrzeit | Datums- und Uhrzeitangaben in einer akzeptierten Datums-/Uhrzeitdarstellung. Gültige Datumsangaben sind alle Datumsangaben nach dem 1. März 1900. |
| Währung | Währung | Der Datentyp "Währung" ermöglicht Werte zwischen -922.337.203.685.477,5808 bis 922.337.203.685.477,5807 mit vier Dezimalstellen mit fester Genauigkeit. |
| Nicht verfügbar | Leer | Ein Leerzeichen ist ein Datentyp in DAX, der SQL-NULL-Werte darstellt und ersetzt. Sie können ein Leeres erstellen, indem Sie die BLANK-Funktion verwenden und mithilfe der logischen Funktion ISBLANK auf Leere testen. |
Tabellarische Modelle enthalten auch den Datentyp "Tabelle" als Eingabe oder Ausgabe für viele DAX-Funktionen. Die FILTER-Funktion verwendet beispielsweise eine Tabelle als Eingabe und gibt eine andere Tabelle aus, die nur die Zeilen enthält, die die Filterbedingungen erfüllen. Durch die Kombination von Tabellenfunktionen mit Aggregationsfunktionen können Sie komplexe Berechnungen über dynamisch definierte Datasets durchführen.
Während Datentypen in der Regel automatisch festgelegt werden, ist es wichtig, Datentypen zu verstehen und zu verstehen, wie sie insbesondere auf DAX-Formeln angewendet werden. Fehler in Formeln oder unerwarteten Ergebnissen werden z. B. häufig durch die Verwendung eines bestimmten Operators verursacht, der nicht mit einem in einem Argument angegebenen Datentyp verwendet werden kann. Beispielsweise gibt die Formel = 1 & 2ein Zeichenfolgenergebnis von 12 zurück. Die Formel = "1" + "2"gibt jedoch ein ganzzahliges Ergebnis von 3 zurück.
Ausführliche Informationen zu Datentypen in tabellarischen Modellen und expliziten und impliziten Konvertierungen von Datentypen in DAX finden Sie unter Datentypen unterstützt (SSAS Tabular).
DAX-Operatoren
Die DAX-Sprache verwendet vier verschiedene Arten von Berechnungsoperatoren in Formeln:
Vergleichsoperatoren zum Vergleichen von Werten und Zurückgeben eines logischen WAHR\FALSCH-Werts.
Arithmetische Operatoren zum Ausführen arithmetischer Berechnungen, die numerische Werte zurückgeben.
Textverkettungsoperatoren, um zwei oder mehr Textzeichenfolgen zu verbinden.
Logische Operatoren, die zwei oder mehr Ausdrücke kombinieren, um ein einzelnes Ergebnis zurückzugeben.
Ausführliche Informationen zu Operatoren, die in DAX-Formeln verwendet werden, finden Sie in der DAX-Operatorreferenz für PowerPivot.
DAX-Formeln
DAX-Formeln sind unerlässlich für das Erstellen von Berechnungen in berechneten Spalten und Maßeinheiten sowie zum Sicherstellen Ihrer Daten durch Zeilenebenenfilter. Zum Erstellen von Formeln für berechnete Spalten und Messwerte verwenden Sie die Bearbeitungsleiste am oberen Rand des Modell-Designerfensters. Zum Erstellen von Formeln für Zeilenfilter verwenden Sie das Dialogfeld "Rollen-Manager". Informationen in diesem Abschnitt sollen Ihnen den Einstieg in die Grundlagen von DAX-Formeln erleichtern.
Formelgrundlagen
DAX ermöglicht tabellarischen Modellautoren das Definieren von benutzerdefinierten Berechnungen in beiden Modelltabellen als Teil berechneter Spalten und als Measures, die Tabellen zugeordnet sind, aber nicht direkt darin angezeigt werden. DAX ermöglicht es Modellautoren auch, Daten zu sichern, indem Berechnungen erstellt werden, die einen booleschen Wert zurückgeben, der definiert, welche Zeilen in einer bestimmten oder verwandten Tabelle von Mitgliedsbenutzern der zugehörigen Rolle abgefragt werden können.
DAX-Formeln können sehr einfach oder recht komplex sein. Die folgende Tabelle enthält einige Beispiele für einfache Formeln, die in einer berechneten Spalte verwendet werden können.
| Formel | BESCHREIBUNG |
=TODAY() |
Fügt das heutige Datum in jede Zeile der Spalte ein. |
=3 |
Fügt den Wert 3 in jede Zeile der Spalte ein. |
=[Column1] + [Column2] |
Fügt die Werte in derselben Zeile von [Spalte1] und [Spalte2] hinzu und fügt die Ergebnisse in die berechnete Spalte derselben Zeile ein. |
Unabhängig davon, ob die von Ihnen erstellte Formel einfach oder komplex ist, können Sie beim Erstellen einer Formel die folgenden Schritte ausführen:
Jede Formel muss mit einem Gleichheitszeichen beginnen.
Sie können entweder einen Funktionsnamen eingeben oder auswählen oder einen Ausdruck eingeben.
Beginnen Sie mit der Eingabe der ersten Buchstaben der gewünschten Funktion oder des gewünschten Namens, und AutoVervollständigen zeigt eine Liste der verfügbaren Funktionen, Tabellen und Spalten an. Drücken Sie die TAB-TASTE, um der Formel ein Element aus der AutoVervollständigen-Liste hinzuzufügen.
Sie können auch auf die Schaltfläche "Fx " klicken, um eine Liste der verfügbaren Funktionen anzuzeigen. Wenn Sie eine Funktion aus der Dropdownliste auswählen möchten, markieren Sie das Element mithilfe der Pfeiltasten, und klicken Sie auf "OK ", um die Funktion der Formel hinzuzufügen.
Geben Sie die Argumente an die Funktion an, indem Sie sie aus einer Dropdownliste möglicher Tabellen und Spalten oder durch Eingeben von Werten auswählen.
Überprüfen Sie auf Syntaxfehler: Stellen Sie sicher, dass alle Klammern geschlossen sind und Spalten, Tabellen und Werte korrekt referenziert werden.
Drücken Sie die EINGABETASTE, um die Formel zu akzeptieren.
Hinweis
Sobald Sie in einer berechneten Spalte die Formel akzeptieren und die Formel überprüft wird, wird die Spalte mit Werten aufgefüllt. Durch Drücken der EINGABETASTE wird die Maßdefinition im Maßraster mit der Tabelle gespeichert. Wenn eine Formel ungültig ist, wird ein Fehler angezeigt.
In diesem Beispiel werden wir uns eine komplexere Formel in einer Maßeinheit namens "Tage im aktuellen Quartal" ansehen.
Days in Current Quarter:=COUNTROWS( DATESBETWEEN( 'Date'[Date], STARTOFQUARTER( LASTDATE('Date'[Date])), ENDOFQUARTER('Date'[Date])))
Dieses Measure wird verwendet, um ein Vergleichsverhältnis zwischen einem unvollständigen Zeitraum und dem vorherigen Zeitraum zu erstellen. Die Formel muss den Anteil des verstrichenen Zeitraums berücksichtigen und mit demselben Anteil im vorherigen Zeitraum vergleichen. In diesem Fall gibt [Tage aktuelles Quartal bis Datum]/[Tage im aktuellen Quartal] den Anteil an, der im aktuellen Zeitraum verstrichen ist.
Diese Formel enthält die folgenden Elemente:
| Formelelement | BESCHREIBUNG |
|---|---|
Days in Current Quarter:= |
Der Name der Maßnahme. |
= |
Das Gleichheitszeichen (=) beginnt mit der Formel. |
COUNTROWS |
Die COUNTROWS-Funktion (DAX) zählt die Anzahl der Zeilen in der Tabelle "Date". |
() |
Offene und schließende Klammer gibt Argumente an. |
DATESBETWEEN |
Die FUNKTION DATEBETWEEN gibt die Datumsangaben zwischen dem letzten Datum für jeden Wert in der Spalte "Datum" in der Tabelle "Datum" zurück. |
'Date' |
Gibt die Date-Tabelle an. Tabellen befinden sich in einfachen Anführungszeichen. |
[Date] |
Gibt die Date-Spalte in der Date-Tabelle an. Spalten werden in eckigen Klammern angegeben. |
, |
|
STARTOFQUARTER |
Die Funktion STARTOFQUARTER gibt das Datum des Anfangs des Quartals zurück. |
LASTDATE |
Die FUNKTION LASTDATE gibt das letzte Datum des Quartals zurück. |
'Date' |
Gibt die Date-Tabelle an. |
[Date] |
Gibt die Date-Spalte in der Date-Tabelle an. |
, |
|
ENDOFQUARTER |
Die Funktion "ENDOFQUARTER" |
'Date' |
Gibt die Date-Tabelle an. |
[Date] |
Gibt die Date-Spalte in der Date-Tabelle an. |
Die Funktion AutoVervollständigen für Formeln verwenden
Sowohl die Bearbeitungsleiste im Modell-Designer als auch das Fenster "Filter für Formelzeilen" im Dialogfeld "Rollen-Manager" bieten eine Autovervollständigungsfunktion. AutoVervollständigen hilft Ihnen, eine gültige Formelsyntax einzugeben, indem es Ihnen Optionen für jedes Element in der Formel anbietet.
Sie können AutoVervollständigen für Formeln inmitten einer vorhandenen Formel mit verschachtelten Funktionen verwenden. Der Text unmittelbar vor der Einfügemarke wird verwendet, um Werte in der Dropdownliste anzuzeigen, und der gesamte Text nach der Einfügemarke bleibt unverändert.
AutoVervollständigen fügt keine schließenden Klammer von Funktionen hinzu und gleicht Klammern nicht automatisch ab. Sie müssen 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 verschachteln, was bedeutet, dass Sie die Ergebnisse einer Funktion als Argument einer anderen Funktion verwenden. Sie können bis zu 64 Ebenen von Funktionen in berechneten Spalten schachteln. Durch die Schachtelung kann es jedoch schwierig werden, Formeln zu erstellen oder Fehler zu beheben.
Viele Funktionen sind so konzipiert, dass sie ausschließlich als geschachtelte Funktionen verwendet werden. Diese Funktionen geben eine Tabelle zurück, die nicht direkt als Ergebnis gespeichert werden kann. sie muss als Eingabe für eine Tabellenfunktion bereitgestellt werden. Die Funktionen SUMMEX, MITTELWERTX und MINX erfordern beispielsweise eine Tabelle als erstes Argument.
Hinweis
Einige Grenzwerte werden in Measures auf die Schachtelung von Funktionen angewendet, um sicherzustellen, dass die Leistung nicht durch die vielen Berechnungen beeinträchtigt wird, die aufgrund von Abhängigkeiten zwischen den Spalten erforderlich sind.
DAX-Funktionen
Dieser Abschnitt enthält eine Übersicht über die Typen von Funktionen, die in DAX unterstützt werden. Ausführlichere Informationen finden Sie unter DAX-Funktionsreferenz.
DAX bietet eine Vielzahl von Funktionen, mit denen Sie Berechnungen mithilfe von Datums- und Uhrzeitangaben durchführen, bedingte Werte erstellen, mit Zeichenfolgen arbeiten, Nachschlagevorgänge basierend auf Beziehungen durchführen und die Möglichkeit zum Durchlaufen einer Tabelle zum Ausführen rekursiver Berechnungen verwenden können. Wenn Sie mit Excel-Formeln vertraut sind, werden viele dieser Funktionen sehr ähnlich angezeigt. DAX-Formeln unterscheiden sich jedoch auf folgende wichtige Weise:
Eine DAX-Funktion verweist immer auf eine vollständige Spalte oder Tabelle. Wenn Sie nur bestimmte Werte aus einer Tabelle oder Spalte verwenden möchten, können Sie der Formel Filter hinzufügen.
Wenn Sie Berechnungen auf Zeilenbasis anpassen müssen, stellt DAX Funktionen bereit, mit denen Sie den aktuellen Zeilenwert oder einen verwandten Wert als Eine Art von Parameter verwenden können, um Berechnungen durchzuführen, die je nach Kontext variieren. Informationen zur Funktionsweise dieser Funktionen finden Sie unter Kontext in DAX-Formeln weiter unten in diesem Thema.
DAX enthält viele Funktionen, die eine Tabelle anstelle eines Werts zurückgeben. Die Tabelle wird nicht in einem Berichterstellungsclient angezeigt, sondern wird verwendet, um Eingaben für andere Funktionen bereitzustellen. Sie können beispielsweise eine Tabelle abrufen und dann die unterschiedlichen Werte in ihr zählen oder dynamische Summen über gefilterte Tabellen oder Spalten hinweg berechnen.
DAX-Funktionen umfassen eine Vielzahl von Zeitintelligenzfunktionen . Mit diesen Funktionen können Sie Datumsbereiche definieren oder auswählen und dynamische Berechnungen basierend auf diesen Datumsangaben oder Bereichen durchführen. Sie können beispielsweise Summen über parallele Zeiträume hinweg vergleichen.
Datums- und Uhrzeitfunktionen
Die Datums- und Uhrzeitfunktionen in DAX ähneln Datums- und Uhrzeitfunktionen in Microsoft Excel. DAX-Funktionen basieren jedoch auf den Datentypen, die datetime von Microsoft SQL Server verwendet werden. Weitere Informationen finden Sie unter Datums- und Uhrzeitfunktionen (DAX).
Filterfunktionen
Die Filterfunktionen in DAX geben bestimmte Datentypen zurück, suchen Werte in verwandten Geschichten nach und filtern nach verwandten Werten. Die Nachschlagefunktionen funktionieren mithilfe von Tabellen und Beziehungen wie einer Datenbank. Mit den Filterfunktionen können Sie den Datenkontext bearbeiten, um dynamische Berechnungen zu erstellen. Weitere Informationen finden Sie unter Filterfunktionen (DAX).
Informationsfunktionen
Eine Informationsfunktion untersucht die Zelle oder Zeile, die als Argument bereitgestellt wird, und teilt Ihnen mit, ob der Wert mit dem erwarteten Typ übereinstimmt. Beispielsweise gibt die ISERROR-Funktion WAHR zurück, wenn der Wert, auf den Sie verweisen, einen Fehler enthält. Weitere Informationen finden Sie unter Information Functions (DAX).
Logische Funktionen
Logische Funktionen reagieren auf einen Ausdruck, um Informationen zu den Werten im Ausdruck zurückzugeben. Mit der WAHR-Funktion können Sie feststellen, ob ein Ausdruck, den Sie auswerten, einen WAHR-Wert zurückgibt. Weitere Informationen finden Sie unter Logische Funktionen (DAX).
Mathematische und Trigonometrische Funktionen
Die mathematischen Funktionen in DAX sind den mathematischen und trigonometrischen Funktionen von Excel sehr ähnlich. Einige geringfügige Unterschiede bestehen in den numerischen Datentypen, die von DAX-Funktionen verwendet werden. Weitere Informationen finden Sie unter Mathematische und Trigfunktionen (DAX).
Statistische Funktionen
DAX stellt statistische Funktionen bereit, die Aggregationen ausführen. Neben dem Erstellen von Summen und Mittelwerten oder dem Ermitteln der Minimal- und Höchstwerte können Sie in DAX auch eine Spalte filtern, bevor Sie Aggregationen basierend auf verwandten Tabellen aggregieren oder erstellen. Weitere Informationen finden Sie unter Statistische Funktionen (DAX).
Textfunktionen
Die Textfunktionen in DAX sind ihren Gegenstücken in Excel sehr ähnlich. Sie können einen Teil einer Zeichenfolge zurückgeben, nach Text innerhalb einer Zeichenfolge suchen oder Zeichenfolgenwerte verketten. DAX bietet auch Funktionen zum Steuern der Formate für Datumsangaben, Uhrzeiten und Zahlen. Weitere Informationen finden Sie unter Textfunktionen (DAX).
Zeitintelligenzfunktionen
Mit den in DAX bereitgestellten Zeitintelligenzfunktionen können Sie Berechnungen erstellen, die integrierte Kenntnisse zu Kalendern und Datumsangaben verwenden. Mithilfe von Zeit- und Datumsbereichen in Kombination mit Aggregationen oder Berechnungen können Sie aussagekräftige Vergleiche in vergleichbaren Zeiträumen für Verkäufe, Lagerbestände usw. erstellen. Weitere Informationen finden Sie unter Time Intelligence Functions (DAX).
Table-Valued-Funktionen
Es gibt DAX-Funktionen, die Tabellen ausgeben, Tabellen als Eingabe verwenden oder beides ausführen. Da eine Tabelle über eine einzelne Spalte verfügen kann, verwenden Tabellenwertfunktionen auch einzelne Spalten als Eingaben. Das Verständnis der Verwendung dieser Tabellenwertfunktionen ist für die vollständige Verwendung von DAX-Formeln wichtig. DAX enthält die folgenden Typen von Tabellenwertfunktionen:
Filterfunktionen Gibt eine Spalte, Tabelle oder Werte zurück, die mit der aktuellen Zeile zusammenhängen.
Aggregationsfunktionen Aggregieren Sie einen beliebigen Ausdruck über den Zeilen einer Tabelle.
Zeitintelligenzfunktionen Zurückgeben einer Tabelle mit Datumsangaben oder Verwenden einer Tabelle mit Datumsangaben zum Berechnen einer Aggregation.
Kontext in DAX-Formeln
Kontext ist ein wichtiges Konzept, das beim Erstellen von Formeln mithilfe von DAX zu verstehen ist. Kontext ermöglicht es Ihnen, dynamische Analysen durchzuführen, da sich die Ergebnisse einer Formel ändern, um die aktuelle Zeilen- oder Zellauswahl sowie alle verwandten Daten widerzuspiegeln. Das Verständnis von Kontext und die effektive Verwendung von Kontexten sind für die Erstellung leistungsstarker, dynamischer Analysen und für die Problembehandlung in Formeln von entscheidender Bedeutung.
Formeln in tabellarischen Modellen können je nach anderen Entwurfselementen in einem anderen Kontext ausgewertet werden:
In einer PivotTable oder einem Bericht angewendete Filter
Filter, die in einer Formel definiert sind
Beziehungen, die mithilfe spezieller Funktionen in einer Formel angegeben werden
Es gibt verschiedene Kontexttypen: Zeilenkontext, Abfragekontext und Filterkontext.
Zeilenkontext
Zeilenkontext kann als "aktuelle Zeile" betrachtet werden. Wenn Sie eine Formel in einer berechneten Spalte erstellen, enthält der Zeilenkontext für diese Formel die Werte aus allen Spalten in der aktuellen Zeile. Wenn die Tabelle mit einer anderen Tabelle verknüpft ist, enthält der Inhalt auch alle Werte aus der anderen Tabelle, die mit der aktuellen Zeile verknüpft sind.
Angenommen, Sie erstellen eine berechnete Spalte, =[Freight] + [Tax]die Werte aus zwei Spalten, Fracht und Steuern, aus derselben Tabelle addiert. Diese Formel ruft automatisch nur die Werte aus der aktuellen Zeile in den angegebenen Spalten ab.
Der Zeilenkontext folgt auch allen Beziehungen, die zwischen Tabellen definiert wurden, einschließlich beziehungen, die in einer berechneten Spalte mithilfe von DAX-Formeln definiert wurden, um zu bestimmen, welche Zeilen in verknüpften Tabellen der aktuellen Zeile zugeordnet sind.
Die folgende Formel verwendet z. B. die FUNKTION RELATED, um einen Steuerwert aus einer verknüpften Tabelle basierend auf der Region abzurufen, an die die Bestellung versandt wurde. Der Steuerwert wird ermittelt, indem der Wert für die Region in der aktuellen Tabelle verwendet wird, die Region in der verknüpften Tabelle nachgeschlagen wird und anschließend der Steuersatz für diese Region aus der verknüpften Tabelle abgerufen wird.
= [Freight] + RELATED('Region'[TaxRate])
Mit dieser Formel wird der Steuersatz für die aktuelle Region aus der Tabelle "Region" abgerufen und dem Wert der Spalte "Fracht" hinzugefügt. In DAX-Formeln müssen Sie die spezifische Beziehung, die die Tabellen verbindet, nicht kennen oder angeben.
Kontext mit mehreren Zeilen
DAX enthält Funktionen, die Berechnungen über eine Tabelle ausführen. Diese Funktionen können über mehrere aktuelle Zeilen verfügen, die jeweils über einen eigenen Zeilenkontext verfügen. Mit diesen Funktionen können Sie im Wesentlichen Formeln erstellen, die Vorgänge rekursiv über eine innere und äußere Schleife ausführen.
Angenommen, Ihr Modell enthält eine Tabelle "Artikel " und eine Tabelle " Vertrieb ". Benutzer können die gesamte Verkaufstabelle durchlaufen, die voller Transaktionen mit mehreren Produkten ist, und die größte Menge finden, die für jedes Produkt in einer Transaktion bestellt wurde.
Mit DAX können Sie eine einzelne Formel erstellen, die den richtigen Wert zurückgibt, und die Ergebnisse werden automatisch aktualisiert, wenn ein Benutzer daten zu den Tabellen hinzufügt.
=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])
Eine detaillierte Anleitung zu dieser Formel finden Sie in der EARLIER-Funktion.
Zusammenfassend speichert die FUNKTION FRÜHER den Zeilenkontext aus dem Vorgang, der dem aktuellen Vorgang vorausging. Zu jeder Zeit speichert die Funktion im Arbeitsspeicher zwei Kontextsätze: ein Kontextsatz stellt die aktuelle Zeile für die innere Schleife der Formel dar, und ein anderer Kontextsatz stellt die aktuelle Zeile für die äußere Schleife der Formel dar. DAX leitet Werte automatisch zwischen den beiden Schleifen ein, sodass Sie komplexe Aggregate erstellen können.
Abfragekontext
Der Abfragekontext bezieht sich auf die Teilmenge der Daten, die implizit für eine Formel abgerufen werden. Wenn ein Benutzer ein Measure oder ein anderes Wertfeld in eine PivotTable oder in einen Bericht einfügt, der auf einem tabellarischen Modell basiert, untersucht die Verarbeitungseinheit die Zeilen- und Spaltenüberschriften, Datenschnitte und Berichtsfilter, um den Kontext zu bestimmen. Anschließend werden die erforderlichen Abfragen für die Datenquelle ausgeführt, um die richtige Teilmenge der Daten abzurufen, die Berechnungen durch die Formel definiert zu machen und dann jede Zelle in der PivotTable oder dem Bericht aufzufüllen. Der abgerufene Datensatz ist der Abfragekontext für jede Zelle.
Warnung
Für ein Modell im DirectQuery-Modus wird der Kontext ausgewertet, und dann werden die festgelegten Vorgänge zum Abrufen der richtigen Teilmenge von Daten und berechnen die Ergebnisse in SQL-Anweisungen übersetzt. Diese Anweisungen werden dann direkt für den relationalen Datenspeicher ausgeführt. Daher ändert sich der Kontext selbst nicht, obwohl die Methode zum Abrufen der Daten und zur Berechnung der Ergebnisse anders ist.
Da sich der Kontext je nach Position der Formel ändert, können sich auch die Ergebnisse der Formel ändern.
Angenommen, Sie erstellen eine Formel, die die Werte in der Spalte " Gewinn " der Tabelle " Umsatz " addiert: =SUM('Sales'[Profit]). Wenn Sie diese Formel in einer berechneten Spalte in der Tabelle " Sales " verwenden, sind die Ergebnisse für die Formel für die gesamte Tabelle identisch, da der Abfragekontext für die Formel immer der gesamte Datensatz der Tabelle " Sales " ist. Ergebnisse werden für alle Regionen, alle Produkte, alle Jahre usw. gewinnbringend sein.
Benutzer möchten jedoch in der Regel nicht dasselbe Ergebnis hunderte Mal sehen, sondern stattdessen den Gewinn für ein bestimmtes Jahr, ein bestimmtes Land/eine bestimmte Region, ein bestimmtes Produkt oder eine Kombination dieser Ergebnisse erhalten und dann eine Gesamtsumme erhalten.
In einer PivotTable kann der Kontext geändert werden, indem Spalten- und Zeilenüberschriften hinzugefügt oder entfernt und Datenschnitte hinzugefügt oder entfernt werden. Wenn Benutzer der PivotTable Spalten- oder Zeilenüberschriften hinzufügen, ändern sie den Abfragekontext, in dem das Measure ausgewertet wird. Slicing- und Filtervorgänge wirken sich auch auf den Kontext aus. Daher wird dieselbe Formel, die in einem Measure verwendet wird, in einem anderen Abfragekontext für jede Zelle ausgewertet.
Filterkontext
Der Filterkontext ist die Menge der in jeder Spalte zulässigen Werte oder der Werte, die aus einer verknüpften Tabelle abgerufen werden. Filter können auf die Spalte im Designer oder auf der Präsentationsebene (Berichte und PivotTables) angewendet werden. Filter können auch explizit durch Filterausdrücke innerhalb der Formel definiert werden.
Filterkontext wird hinzugefügt, wenn Sie Filtereinschränkungen für die in einer Spalte oder Tabelle zulässigen Wertegruppen mithilfe von Argumenten für eine Formel angeben. Filterkontext wird über anderen Kontexten angewendet, z. B. Zeilenkontext oder Abfragekontext.
In tabellarischen Modellen gibt es viele Möglichkeiten zum Erstellen des Filterkontexts. Für Clients, die das Modell wie Power View-Berichte nutzen können, können Benutzer spontan Filter erstellen, indem sie Slicer oder Berichtsfilter zu den Zeilen- und Spaltenüberschriften hinzufügen. Sie können auch Filterausdrücke direkt in der Formel angeben, verwandte Werte angeben, Tabellen filtern, die als Eingaben verwendet werden, oder um den Kontext für die Werte, die in Berechnungen verwendet werden, dynamisch abzurufen. Sie können auch die Filter für bestimmte Spalten vollständig löschen oder selektiv löschen. Dies ist sehr nützlich beim Erstellen von Formeln, die Gesamtsummen berechnen.
Weitere Informationen zum Erstellen von Filtern in Formeln finden Sie in der FILTER-Funktion.
Ein Beispiel dafür, wie Filter gelöscht werden können, um Gesamtsummen zu erstellen, finden Sie in der ALL-Funktion.
Beispiele zum selektiven Löschen und Anwenden von Filtern in Formeln finden Sie in der ALLEXCEPT-Funktion.
Bestimmen des Kontexts in Formeln
Wenn Sie eine DAX-Formel erstellen, wird die Formel zuerst auf gültige Syntax getestet und dann getestet, um sicherzustellen, dass die Namen der in der Formel enthaltenen Spalten und Tabellen im aktuellen Kontext gefunden werden können. Wenn in der Formel angegebene Spalte oder Tabelle nicht gefunden werden kann, wird ein Fehler zurückgegeben.
Der Kontext während der Überprüfung (und Neuberechnungsvorgänge) wird wie in den vorherigen Abschnitten beschrieben, indem die verfügbaren Tabellen im Modell, alle Beziehungen zwischen den Tabellen und alle angewendeten Filter verwendet werden.
Wenn Sie beispielsweise nur einige Daten in eine neue Tabelle importiert haben und sie nicht mit anderen Tabellen verknüpft ist (und Sie keine Filter angewendet haben), ist der aktuelle Kontext der gesamte Satz von Spalten in der Tabelle. Wenn die Tabelle durch Beziehungen zu anderen Tabellen verknüpft ist, enthält der aktuelle Kontext die verknüpften Tabellen. Wenn Sie eine Spalte aus der Tabelle einem Bericht hinzufügen, der Slicer und möglicherweise einige Berichtsfilter enthält, ist der Kontext für die Formel die Teilmenge der Daten in jeder Zelle des Berichts.
Kontext ist ein leistungsstarkes Konzept, das auch die Problembehandlung von Formeln erschweren kann. Es wird empfohlen, mit einfachen Formeln und Beziehungen zu beginnen, um zu sehen, wie der Kontext funktioniert. Im folgenden Abschnitt finden Sie einige Beispiele dafür, wie Formeln unterschiedliche Kontexttypen verwenden, um Ergebnisse dynamisch zurückzugeben.
Beispiele für Kontext in Formeln
Die RELATED-Funktion erweitert den Kontext der aktuellen Zeile, um Werte in einer verknüpften Spalte einzuschließen. Auf diese Weise können Sie Nachschlagevorgänge durchführen. Das Beispiel in diesem Thema veranschaulicht die Interaktion des Filter- und Zeilenkontexts.
Mit der FUNKTION FILTER können Sie die Zeilen angeben, die in den aktuellen Kontext aufgenommen werden sollen. In den Beispielen in diesem Thema wird auch veranschaulicht, wie Filter in andere Funktionen eingebettet werden, die Aggregate ausführen.
Die ALL-Funktion legt den Kontext in einer Formel fest. Sie können es verwenden, um Filter außer Kraft zu setzen, die als Ergebnis des Abfragekontexts angewendet werden.
Mit der FUNKTION ALLEXCEPT-Funktion können Sie alle Filter entfernen, mit Ausnahme eines, das Sie angeben. Beide Themen enthalten Beispiele, die Sie durch das Erstellen von Formeln und das Verständnis komplexer Kontexte führen.
Mit den Funktionen "EARLIER"-Funktion und "EARLIEST-Funktion " können Sie Tabellen durchlaufen, indem Sie Berechnungen ausführen, während Sie auf einen Wert aus einer inneren Schleife verweisen. Wenn Sie mit dem Konzept der Rekursion und mit inneren und äußeren Schleifen vertraut sind, werden Sie die Leistungsfähigkeit zu schätzen wissen, die die Funktionen EARLIER und EARLIEST bereitstellen. Wenn Sie mit diesen Konzepten noch nicht vertraut sind, sollten Sie die Schritte im Beispiel sorgfältig ausführen, um zu sehen, wie die inneren und äußeren Kontexte in Berechnungen verwendet werden.
Formeln und das tabellarische Modell
Der Modell-Designer in SQL Server Data Tools (SSDT) ist ein Bereich, in dem Sie mit mehreren Datentabellen arbeiten und die Tabellen in einem tabellarischen Modell verbinden können. In diesem Modell werden Tabellen durch Beziehungen zu Spalten mit gemeinsamen Werten (Schlüssel) verknüpft. Mit dem tabellarischen Modell können Sie Werte mit Spalten in anderen Tabellen verknüpfen und interessantere Berechnungen erstellen. Genau wie in einer relationalen Datenbank können Sie viele Ebenen verwandter Tabellen verbinden und Spalten aus einer der Tabellen in den Ergebnissen verwenden.
Sie können beispielsweise eine Verkaufstabelle, eine Produkttabelle und eine Produktkategorientabelle verknüpfen, und Benutzer können verschiedene Kombinationen der Spalten in PivotTables und Berichten verwenden. Verwandte Felder können verwendet werden, um verbundene Tabellen zu filtern oder Berechnungen über Teilmengen zu erstellen. (Wenn Sie mit relationaler Datenbank nicht vertraut sind und mit Tabellen und Verknüpfungen arbeiten, lesen Sie Beziehungen (SSAS Tabular).)
Tabellarische Modelle unterstützen mehrere Beziehungen zwischen Tabellen. Um Verwirrung oder falsche Ergebnisse zu vermeiden, wird jeweils nur eine Beziehung als aktive Beziehung festgelegt, Sie können die aktive Beziehung jedoch bei Bedarf ändern, um unterschiedliche Verbindungen in den Daten in Berechnungen zu durchlaufen. Die USERELATIONSHIP-Funktion (DAX) kann verwendet werden, um eine oder mehrere Beziehungen anzugeben, die in einer bestimmten Berechnung verwendet werden sollen.
In einem tabellarischen Modell sollten Sie die folgenden Formelentwurfsregeln beachten:
Wenn Tabellen durch eine Beziehung verbunden sind, müssen Sie sicherstellen, dass die beiden spalten, die als Schlüssel verwendet werden, Werte aufweisen, die übereinstimmen. Referenzielle Integrität wird jedoch nicht erzwungen; daher ist es möglich, nicht übereinstimmende Werte in einer Schlüsselspalte zu haben und trotzdem eine Beziehung zu erstellen. In diesem Fall sollten Sie beachten, dass leere Werte oder nicht übereinstimmende Werte sich auf die Ergebnisse von Formeln auswirken können.
Wenn Sie Tabellen in Ihrem Modell mithilfe von Beziehungen verknüpfen, vergrößern Sie den Bereich oder den Kontext, in dem Die Formeln ausgewertet werden. Änderungen im Kontext, die sich aus dem Hinzufügen neuer Tabellen, neuer Beziehungen oder aus Änderungen in der aktiven Beziehung ergeben, können dazu führen, dass sich ihre Ergebnisse auf eine Weise ändern, die Sie möglicherweise nicht erwarten. Weitere Informationen finden Sie weiter oben in diesem Thema unter Kontext in DAX-Formeln .
Arbeiten mit Tabellen und Spalten
Tabellen in Tabellenmodellen sehen wie Excel-Tabellen aus, unterscheiden sich jedoch in der Art und Weise, wie sie mit Daten und formeln arbeiten:
Formeln funktionieren nur mit Tabellen und Spalten, nicht mit einzelnen Zellen, Bereichsbezügen oder Arrays.
Formeln können Beziehungen verwenden, um Werte aus verwandten Tabellen abzurufen. Die abgerufenen Werte beziehen sich immer auf den aktuellen Zeilenwert.
Sie können keine unregelmäßigen oder "ausgefransten" Daten haben, wie Sie es in einem Excel-Arbeitsblatt tun könnten. Jede Zeile in einer Tabelle muss dieselbe Anzahl von Spalten enthalten. Sie können jedoch leere Werte in einigen Spalten haben. Excel-Datentabellen und Tabellen mit Tabellenmodelldaten sind nicht austauschbar.
Da für jede Spalte ein Datentyp festgelegt ist, muss jeder Wert in dieser Spalte denselben Typ aufweisen.
Verweisen auf Tabellen und Spalten in Formeln
Sie können auf eine beliebige Tabelle und Spalte verweisen, indem Sie dessen Namen verwenden. Zum Beispiel veranschaulicht die folgende Formel, wie man auf Spalten aus zwei Tabellen mithilfe des vollqualifizierten Namens verweist:
=SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount])
Wenn eine Formel ausgewertet wird, sucht der Modell-Designer zunächst nach allgemeiner Syntax und überprüft dann die Namen von Spalten und Tabellen, die Sie für mögliche Spalten und Tabellen im aktuellen Kontext bereitstellen. Wenn der Name mehrdeutig ist oder wenn die Spalte oder Tabelle nicht gefunden werden kann, erhalten Sie einen Fehler in der Formel (eine #ERROR Zeichenfolge anstelle eines Datenwerts in Zellen, in denen der Fehler auftritt). Weitere Informationen zu Benennungsanforderungen für Tabellen, Spalten und andere Objekte finden Sie unter "Benennungsanforderungen" in der DAX-Syntaxspezifikation für PowerPivot.
Tabellenbeziehungen
Durch das Erstellen von Beziehungen zwischen Tabellen erhalten Sie die Möglichkeit, Daten in einer anderen Tabelle nachzuschlagen und verwandte Werte zum Ausführen komplexer Berechnungen zu verwenden. Sie können z. B. eine berechnete Spalte verwenden, um alle Versanddatensätze im Zusammenhang mit dem aktuellen Wiederverkäufer nachzuschlagen und dann die Versandkosten für jeden zu addieren. In vielen Fällen ist jedoch möglicherweise keine Beziehung erforderlich. Sie können die FUNKTION LOOKUPVALUE in einer Formel verwenden, um den Wert in result_columnName für die Zeile zurückzugeben, die kriterien erfüllt, die in den Parametern search_column und search_value angegeben sind.
Viele DAX-Funktionen erfordern, dass Beziehungen zwischen den Tabellen oder mehrerer Tabellen vorhanden sind, um die Spalten zu finden, auf die Sie verwiesen haben, und um Ergebnisse zurückzugeben, die sinnvoll sind. Andere Funktionen versuchen, die Beziehung zu identifizieren; Für optimale Ergebnisse sollten Sie jedoch immer eine Beziehung erstellen, wenn möglich. Weitere Informationen finden Sie weiter oben in diesem Thema unter "Formeln" und "Tabellarisches Modell ".
Aktualisieren der Ergebnisse von Formeln (Prozess)
Datenprozess und Neuberechnung sind zwei separate, aber verwandte Vorgänge. Sie sollten diese Konzepte gründlich verstehen, wenn Sie ein Modell entwerfen, das komplexe Formeln, große Datenmengen oder Daten enthält, die aus externen Datenquellen abgerufen werden.
Die Verarbeitung von Daten ist der Prozess der Aktualisierung der Daten in einem Modell mit neuen Daten aus einer externen Datenquelle.
Neuberechnung ist der Prozess der Aktualisierung der Ergebnisse von Formeln, um änderungen an den Formeln selbst widerzuspiegeln und Änderungen an den zugrunde liegenden Daten widerzuspiegeln. Die Neuberechnung kann sich auf folgende Weise auf die Leistung auswirken:
Die Werte in einer berechneten Spalte werden berechnet und im Modell gespeichert. Um die Werte in der berechneten Spalte zu aktualisieren, müssen Sie das Modell mit einem von drei Verarbeitungsbefehlen verarbeiten : Prozessvoll, Prozessdaten oder Prozessneuberechnung. Das Ergebnis der Formel muss immer für die gesamte Spalte neu berechnet werden, wenn Sie die Formel ändern.
Die durch Maße berechneten Werte werden dynamisch bewertet, sobald ein Benutzer ein Maß zu einer Pivot-Tabelle hinzufügt oder einen Bericht öffnet. Ändert der Benutzer den Kontext, ändern sich die von dem Maß zurückgegebenen Werte. Die Ergebnisse des Measures spiegeln immer den neuesten Werte im speicherinternen Cache wider.
Die Verarbeitung und Neuberechnung wirkt sich nicht auf Zeilenfilterformeln aus, es sei denn, das Ergebnis einer Neuberechnung gibt einen anderen Wert zurück, wodurch die Zeile durch Rollenmember abfragbar oder nicht abfragbar wird.
Weitere Informationen finden Sie unter Prozessdaten (SSAS Tabular).For more information, see Process Data (SSAS Tabular).
Problembehandlung bei Fehlern in Formeln
Wenn beim Definieren einer Formel ein Fehler angezeigt wird, kann die Formel entweder einen syntaktischen Fehler, semantischen Fehler oder Berechnungsfehler enthalten.
Syntaktische Fehler sind am einfachsten zu beheben. Sie umfassen in der Regel eine fehlende Klammer oder ein Fehlendes Komma. Hilfe zur Syntax einzelner Funktionen finden Sie in der DAX-Funktionsreferenz.
Der andere Fehlertyp tritt auf, wenn die Syntax korrekt ist, aber der Wert oder die Spalte, auf die verwiesen wird, ist im Kontext der Formel nicht sinnvoll. Solche Semantik- und Berechnungsfehler können durch eines der folgenden Probleme verursacht werden:
Die Formel bezieht sich auf eine nicht vorhandene Spalte, Tabelle oder Funktion.
Die Formel scheint korrekt zu sein, aber wenn das Datenmodul die Daten abruft, wird ein Typkonflikt gefunden und ein Fehler ausgelöst.
Die Formel übergibt eine falsche Zahl oder einen falschen Parametertyp an eine Funktion.
Die Formel bezieht sich auf eine andere Spalte, die einen Fehler aufweist, und daher sind ihre Werte ungültig.
Die Formel bezieht sich auf eine Spalte, die nicht verarbeitet wurde, d. h. sie enthält Metadaten, aber keine tatsächlichen Daten, die für Berechnungen verwendet werden sollen.
In den ersten vier Fällen kennzeichnet DAX die gesamte Spalte, die die ungültige Formel enthält. Im letzten Fall graut DAX die Spalte ab, um anzugeben, dass sich die Spalte in einem nicht verarbeiteten Zustand befindet.
Zusätzliche Ressourcen
Die tabellarische Modellierung (Adventure Works Tutorial) enthält schrittweise Anleitungen zum Erstellen eines tabellarischen Modells, das viele Berechnungen in berechneten Spalten, Measures und Zeilenfiltern enthält. Für die meisten Formeln wird eine Beschreibung darüber bereitgestellt, was die Formel tun soll.
Der Blog "Analysis Services" und "PowerPivot-Team" enthält Informationen, Tipps, Neuigkeiten und Ankündigungen zu SQL Server 2014 Analysis Services (SSAS) und PowerPivot.
Das DAX Resource Center bietet sowohl interne als auch externe Informationen zu DAX, einschließlich zahlreicher DAX-Lösungen, die von führenden Business Intelligence-Experten eingereicht wurden.
Siehe auch
Data Analysis Expressions (DAX)-Referenz
Maßnahmen (SSAS Tabular)
Berechnete Spalten (SSAS Tabular)
Rollen (SSAS tabellarisch)
KPIs (SSAS tabellarisch)
Unterstützte Datenquellen (tabellarische SSAS)