DAX-ÜbersichtDAX overview

Data Analysis Expressions (DAX) ist eine Formelausdruckssprache, die für Analysis Services, Power BI und Power Pivot in Excel verwendet wird.Data Analysis Expressions (DAX) is a formula expression language used in Analysis Services, Power BI, and Power Pivot in Excel. DAX-Formeln beinhalten Funktionen, Operatoren und Werte zum Ausführen erweiterter Berechnungen und Abfragen von Daten in verknüpften Tabellen und Spalten in tabellarischen Datenmodellen.DAX formulas include functions, operators, and values to perform advanced calculations and queries on data in related tables and columns in tabular data models.

Dieser Artikel bietet nur eine grundlegende Einführung in die wichtigsten Konzepte in DAX.This article provides only a basic introduction to the most important concepts in DAX. Es wird beschrieben, wie DAX-Berechnungen für alle Produkte verwendet werden, die sie nutzen.It describes DAX as it applies to all the products that use it. Einige Funktionen sind möglicherweise nicht auf bestimmte Produkte oder Anwendungsfälle anwendbar.Some functionality may not apply to certain products or use cases. Informationen zur spezifischen Implementierung von DAX finden Sie in der Dokumentation Ihres Produkts.Refer to your product's documentation describing its particular implementation of DAX.

BerechnungenCalculations

DAX-Formeln werden in Measures, berechneten Spalten, berechneten Tabellen und im Rahmen der Sicherheit auf Zeilenebene verwendet.DAX formulas are used in measures, calculated columns, calculated tables, and row-level security.

MeasuresMeasures

Measures sind dynamische Berechnungsformeln, bei denen sich die Ergebnisse abhängig vom Kontext ändern.Measures are dynamic calculation formulas where the results change depending on context. Measures werden bei Berichten verwendet, die das Kombinieren und Filtern von Modelldaten mithilfe von mehreren Attributen unterstützen, wie z. B. ein Power BI-Bericht, eine PivotTable oder ein PivotChart in Excel.Measures are used in reporting that support combining and filtering model data by using multiple attributes such as a Power BI report or Excel PivotTable or PivotChart. Measures werden mithilfe der DAX-Bearbeitungsleiste im Modell-Designer erstellt.Measures are created by using the DAX formula bar in the model designer.

Eine Formel in einem Measure kann standardmäßige Aggregationsfunktionen verwenden, die automatisch mit dem Feature „AutoSumme“ erstellt werden, wie z. B. COUNT oder SUM. Alternativ können Sie auch Ihre eigene Formel mit der DAX-Bearbeitungsleiste definieren.A formula in a measure can use standard aggregation functions automatically created by using the Autosum feature, such as COUNT or SUM, or you can define your own formula by using the DAX formula bar. Benannte Measures können als Argument an andere Measures übermittelt werden.Named measures can be passed as an argument to other measures.

Wenn Sie in der Bearbeitungsleiste eine Formel für ein Measure definieren, wird über die QuickInfo eine Vorschau der Ergebnisse für den Gesamtwert im aktuellen Kontext angezeigt. Die Ergebnisse werden jedoch noch nicht ausgegeben.When you define a formula for a measure in the formula bar, a Tooltip feature shows a preview of what the results would be for the total in the current context, but otherwise the results are not immediately output anywhere. Der Grund dafür, dass Sie die (gefilterten) Ergebnisse der Berechnung nicht sofort einsehen können, ist, dass das Ergebnis eines Measures ohne einen Kontext nicht bestimmt werden kann.The reason you cannot see the (filtered) results of the calculation immediately is because the result of a measure cannot be determined without context. Das Auswerten eines Measures erfordert eine Clientanwendung zur Berichtserstellung, die in der Lage ist, den erforderlichen Kontext bereitzustellen, um die relevanten Daten für jede Zelle abrufen und anschließend den Ausdruck für jede Zelle auswerten zu können.To evaluate a measure requires a reporting client application that can provide the context needed to retrieve the data relevant to each cell and then evaluate the expression for each cell. Bei diesem Client kann es sich um eine Excel PivotTable oder einen PivotChart, einen Power BI-Bericht oder einen Tabellenausdruck in einer DAX-Abfrage in SQL Server Management Studio (SSMS) handeln.That client might be an Excel PivotTable or PivotChart, a Power BI report, or a table expression in a DAX query in SQL Server Management Studio (SSMS).

Unabhängig vom Client wird für jede Zelle in den Ergebnissen eine separate Abfrage ausgeführt.Regardless of the client, a separate query is run for each cell in the results. Das heißt, jede Kombination aus Zeilen- und Spaltenüberschriften in einer PivotTable oder jede Auswahl von Slicern und Filtern in einem Power BI Bericht generiert eine andere Teilmenge der Daten, für die das Measure berechnet wird.That is to say, each combination of row and column headers in a PivotTable, or each selection of slicers and filters in a Power BI report, generates a different subset of data over which the measure is calculated. Verwenden Sie beispielsweise diese sehr einfache Measure-Formel:For example, using this very simple measure formula:

Total Sales = SUM([Sales Amount])

Wenn ein Benutzer das TotalSales-Measure in einem Bericht verwendet und dann die Spalte „Product Category“ aus einer Product-Tabelle in „Filter“, wird die Summe von „Sales Amount“ berechnet und für die einzelnen Produktkategorien angezeigt.When a user places the TotalSales measure in a report, and then places the Product Category column from a Product table into Filters, the sum of Sales Amount is calculated and displayed for each product category.

Im Gegensatz zu berechneten Spalten enthält die Syntax für ein Measure den Namen des Measures vor der Formel.Unlike calculated columns, the syntax for a measure includes the measure's name preceding the formula. Im soeben angegebenen Beispiel wird der Name Total Sales vor der Formel angezeigt.In the example just provided, the name Total Sales appears preceding the formula. Nachdem Sie ein Measure erstellt haben, werden der Name und die zugehörige Definition in der Feldliste für die Clientanwendung für die Berichterstellung angezeigt. Abhängig von den Perspektiven und Rollen stehen sie allen Benutzern des Modells zur Verfügung.After you've created a measure, the name and its definition appear in the reporting client application Fields list, and depending on perspectives and roles is available to all users of the model.

Weitere Informationen finden Sie unter:To learn more, see:
Measures in Power BI DesktopMeasures in Power BI Desktop
Measures in Analysis ServicesMeasures in Analysis Services
Measures in Power PivotMeasures in Power Pivot

Berechnete SpaltenCalculated columns

Eine berechnete Spalte ist eine Spalte, die Sie einer vorhandenen Tabelle (im Modell-Designer) hinzufügen und dann eine DAX-Formel erstellen, die die Werte der Spalte definiert.A calculated column is a column that you add to an existing table (in the model designer) and then create a DAX formula that defines the column's values. Wenn eine berechnete Spalte eine gültige DAX-Formel enthält, werden für jede Zeile Werte berechnet, sobald die Formel eingegeben wird.When a calculated column contains a valid DAX formula, values are calculated for each row as soon as the formula is entered. Die Werte werden dann im Arbeitsspeicherdatenmodell gespeichert.Values are then stored in the in-memory data model. Beispielsweise in einer Datumstabelle, wenn die Formel in die Bearbeitungsleiste eingegeben wird:For example, in a Date table, when the formula is entered into the formula bar:

= [Calendar Year] & " Q" & [Calendar Quarter]

Für jede Zeile in der Tabelle wird ein Wert berechnet, indem Werte von der Spalte „Calendar Year“ (in derselben Datumstabelle) verwendet werden, ein Leerzeichen und der Großbuchstabe „Q“ hinzugefügt wird und dann die Werte von der Spalte „Calendar Quarter“ (in derselben Datumstabelle) hinzugefügt werden.A value for each row in the table is calculated by taking values from the Calendar Year column (in the same Date table), adding a space and the capital letter Q, and then adding the values from the Calendar Quarter column (in the same Date table). Das Ergebnis für jede Zeile in der berechneten Spalte wird sofort berechnet und angezeigt, z. B. 2017 Q1.The result for each row in the calculated column is calculated immediately and appears, for example, as 2017 Q1. Spaltenwerte werden nur neu berechnet, wenn die Tabelle oder eine verknüpfte Tabelle verarbeitet (aktualisiert) oder das Modell aus dem Arbeitsspeicher entladen und dann neu geladen wird, wie z. B. beim Schließen und nochmaligen Öffnen einer Power BI Desktop-Datei.Column values are only recalculated if the table or any related table is processed (refresh) or the model is unloaded from memory and then reloaded, like when closing and reopening a Power BI Desktop file.

Weitere Informationen finden Sie unter:To learn more, see:
Berechnete Spalten in Power BI DesktopCalculated columns in Power BI Desktop
Berechnete Spalten in Analysis ServicesCalculated columns in Analysis Services
Berechnete Spalten in Power PivotCalculated Columns in Power Pivot.

Berechnete TabellenCalculated tables

Eine berechnete Tabelle ist ein berechnetes Objekt, das auf einem Formelausdruck basiert und von allen oder einem Teil der anderen Tabellen im selben Modell abgeleitet ist.A calculated table is a computed object, based on a formula expression, derived from all or part of other tables in the same model. Anstatt Werte aus einer Datenquelle abzufragen und von dort in die Spalten Ihrer neuen Tabelle zu laden, definiert eine DAX-Formel die Werte der Spalte.Instead of querying and loading values into your new table's columns from a data source, a DAX formula defines the table's values.

Berechnete Tabellen können in einer Dimension mit unterschiedlichen Rollen hilfreich sein.Calculated tables can be helpful in a role-playing dimension. Ein Beispiel hierfür ist die Tabelle „Date“, da OrderDate, ShipDate oder DueDate von der Fremdschlüsselbeziehung abhängig sind.An example is the Date table, as OrderDate, ShipDate, or DueDate, depending on the foreign key relationship. Indem Sie explizit eine berechnete Tabelle für ShipDate erstellen, erhalten Sie eine eigenständige Tabelle, die für Abfragen verfügbar und gleich funktionsfähig wie jede andere Tabelle ist.By creating a calculated table for ShipDate explicitly, you get a standalone table that is available for queries, as fully operable as any other table. Berechnete Tabellen sind auch nützlich, um ein gefiltertes Rowset oder eine Teilmenge oder ein Superset von Spalten aus anderen vorhandenen Tabellen zu konfigurieren.Calculated tables are also useful when configuring a filtered rowset, or a subset or superset of columns from other existing tables. Dadurch wird die ursprüngliche Tabelle intakt gehalten, während Sie Variationen dieser Tabelle erstellen, um bestimmte Szenarios zu unterstützen.This allows you to keep the original table intact while creating variations of that table to support specific scenarios.

Berechnete Tabellen unterstützen Beziehungen zu anderen Tabellen.Calculated tables support relationships with other tables. Die Spalten in der berechneten Tabelle weisen Datentypen sowie Formatierungen auf und können zu einer Datenkategorie gehören.The columns in your calculated table have data types, formatting, and can belong to a data category. Berechnete Tabellen können wie jede andere Tabelle benannt und angezeigt oder ausgeblendet werden.Calculated tables can be named, and surfaced or hidden just like any other table. Berechnete Tabellen werden neu berechnet, wenn eine der Tabellen, aus denen sie Daten abrufen, aktualisiert wird.Calculated tables are re-calculated if any of the tables it pulls data from are refreshed or updated.

Weitere Informationen finden Sie unter:To learn more, see:
Berechnete Tabellen in Power BI DesktopCalculated tables in Power BI Desktop
Berechnete Tabellen in Analysis ServicesCalculated tables in Analysis Services.

Sicherheit auf ZeilenebeneRow-level security

Mit Sicherheit auf Zeilenebene muss eine DAX-Formel zu einer booleschen TRUE/FALSE-Bedingung ausgewertet werden. Dabei wird definiert, welche Zeilen in den Ergebnissen einer Abfrage von Mitgliedern einer bestimmten Rolle zurückgegeben werden können.With row-level security, a DAX formula must evaluate to a Boolean TRUE/FALSE condition, defining which rows can be returned by the results of a query by members of a particular role. Für Mitglieder mit der Rolle „Vertrieb“ lautet die DAX-Formel für die Tabelle „Customers“ beispielsweise wie folgt:For example, for members of the Sales role, the Customers table with the following DAX formula:

= Customers[Country] = "USA"

Mitglieder mit der Vertriebsrolle können nur Daten für Kunden in den USA und Aggregate sehen, SUM wird z. B. nur für Kunden in den USA zurückgegeben.Members of the Sales role will only be able to view data for customers in the USA, and aggregates, such as SUM are returned only for customers in the USA. Sicherheit auf Zeilenebene ist in Power Pivot in Excel nicht verfügbar.Row-level security is not available in Power Pivot in Excel.

Wenn Sie Sicherheit auf Zeilenebene mithilfe einer DAX-Formel definieren, erstellen Sie eine Gruppe zulässiger Zeilen.When defining row-level secuirty by using DAX formula, you are creating an allowed row set. Dadurch wird der Zugriff auf andere Zeilen nicht verweigert, stattdessen werden sie einfach nicht als Teil des zulässigen Zeilensatzes zurückgegeben.This does not deny access to other rows; rather, they are simply not returned as part of the allowed row set. Andere Rollen können Zugriff auf die von der DAX-Formel ausgeschlossenen Zeilen gewähren.Other roles can allow access to the rows excluded by the DAX formula. Wenn ein Benutzer Mitglied einer anderen Rolle ist und die Sicherheit auf Zeilenebene für diese Rolle den Zugriff auf diese bestimmte Gruppe von Zeilen zulässt, kann der Benutzer Daten für diese Zeile anzeigen.If a user is a member of another role, and that role's row-level security allows access to that particular row set, the user can view data for that row.

Formeln für Sicherheit auf Zeilenebene gelten für die angegebenen sowie die mit diesen verknüpften Zeilen.Row-level security formulas apply to the specified rows as well as related rows. Wenn eine Tabelle über mehrere Beziehungen verfügt, wenden Filter für die aktive Beziehung Sicherheitsfunktionen an.When a table has multiple relationships, filters apply security for the relationship that is active. Formeln für Sicherheit auf Zeilenebene werden mit anderen für verknüpfte Tabellen definierten Formeln gekreuzt.Row-level security formulas will be intersected with other formulas defined for related tables.

Weitere Informationen finden Sie unter:To learn more, see:
Sicherheit auf Zeilenebene (Row-Level Security, RLS) mit Power BIRow-level security (RLS) with Power BI
Rollen in Analysis ServicesRoles in Analysis Services

AbfragenQueries

DAX-Abfragen können in SQL Server Management Studio (SSMS) und Open-Source-Tools wie DAX Studio (daxstudio.org) erstellt und ausgeführt werden.DAX queries can be created and run in SQL Server Management Studio (SSMS) and open-source tools like DAX Studio (daxstudio.org). Anders als DAX-Berechnungsformeln, die nur in tabellarischen Datenmodellen erstellt werden können, können DAX-Abfragen auch für mehrdimensionale Analysis Services-Modelle ausgeführt werden.Unlike DAX calculation formulas, which can only be created in tabular data models, DAX queries can also be run against Analysis Services Multidimensional models. DAX-Abfragen sind häufig einfacher zu schreiben und effizienter als MDX-Abfragen (Multidimensional Data Expressions, mehrdimensionaler Ausdruck).DAX queries are often easier to write and more efficient than Multidimensional Data Expressions (MDX) queries.

Eine DAX-Abfrage ist eine Anweisung, ähnlich wie eine SELECT-Anweisung in T-SQL.A DAX query is a statement, similar to a SELECT statement in T-SQL. Der einfachste Typ der DAX-Abfrage ist eine Evaluate-Anweisung.The most basic type of DAX query is an evaluate statement. Beispiel:For example,

EVALUATE
 ( FILTER ( 'DimProduct', [SafetyStockLevel] < 200 ) )
ORDER BY [EnglishProductName] ASC

Gibt in den Ergebnissen eine Tabelle zurück, in der nur die Produkte mit SafetyStockLevel (Sicherheitsbestand) kleiner als 200 in aufsteigender Reihenfolge nach EnglishProductName aufgelistet werden.Returns in Results a table listing only those products with a SafetyStockLevel less than 200, in ascending order by EnglishProductName.

Measures können als Teil der Abfrage erstellt werden.You can create measures as part of the query. Sie existieren nur für die Dauer der Abfrage.Measures exist only for the duration of the query. Weitere Informationen finden Sie unter DAX-Abfragen.To learn more, see DAX queries.

FormelnFormulas

DAX-Formeln sind für das Erstellen von Berechnungen in berechneten Spalten und Measures sowie das Schützen Ihrer Daten mithilfe der Sicherheit auf Zeilenebene unerlässlich.DAX formulas are essential for creating calculations in calculated columns and measures, and securing your data by using row-level security. Verwenden Sie die Bearbeitungsleiste am oberen Rand des Modell-Designer-Fensters oder den DAX-Editor, um Formeln für berechnete Spalten und Measures zu erstellen.To create formulas for calculated columns and measures, use the formula bar along the top of the model designer window or the DAX Editor. Verwenden Sie den Rollen-Manager oder das Dialogfeld „Rollen verwalten“, um Formeln für die Sicherheit auf Zeilenebene zu erstellen.To create formulas for row-level security, use the Role Manager or Manage roles dialog box. Die Informationen in diesem Abschnitt sollen Ihnen den Einstieg in das Verständnis der Grundlagen von DAX-Formeln erleichtern.Information in this section is meant to get you started with understanding the basics of DAX formulas.

FormelgrundlagenFormula basics

DAX-Formeln können sehr einfach oder sehr komplex sein.DAX formulas can be very simple or quite complex. In der folgenden Tabelle sind einige Beispiele für einfache Formeln aufgeführt, die in einer berechneten Spalte verwendet werden können.The following table shows some examples of simple formulas that could be used in a calculated column.

FormelFormula DefinitionDefinition
= TODAY() Fügt das heutige Datum in jede Zeile einer berechneten Spalte einInserts today's date in every row of a calculated column.
= 3 Fügt den Wert „3“ in jede Zeile einer berechneten Spalte einInserts the value 3 in every row of a calculated column.
= [Column1] + [Column2] Fügt die Werte in der gleichen Zeile von [Column1] und [Column2] hinzu und fügt die Ergebnisse in die berechnete Spalte der gleichen Zeile einAdds the values in the same row of [Column1] and [Column2] and puts the results in the calculated column of the same row.

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:Whether the formula you create is simple or complex, you can use the following steps when building a formula:

  1. Jede Formel muss mit einem Gleichheitszeichen (=) beginnen.Each formula must begin with an equal sign (=).

  2. Sie können entweder einen Funktionsnamen eingeben oder auswählen oder einen Ausdruck eingeben.You can either type or select a function name, or type an expression.

  3. Geben Sie zunächst die ersten Buchstaben der gewünschten Funktion oder des Namens ein, und AutoVervollständigen zeigt eine Liste der verfügbaren Funktionen, Tabellen und Spalten an.Begin to type the first few letters of the function or name you want, and AutoComplete displays a list of available functions, tables, and columns. Drücken Sie die Tabulatortaste, um der Formel ein Element aus der AutoVervollständigen-Liste hinzuzufügen.Press TAB to add an item from the AutoComplete list to the formula.

    Sie können auch auf die Schaltfläche Fx klicken, um eine Liste der verfügbaren Funktionen anzuzeigen.You can also click the Fx button to display a list of available functions. Markieren Sie das Element mit den Pfeiltasten, um eine Funktion aus der Dropdownliste auszuwählen, und klicken Sie auf OK, um die Funktion der Formel hinzuzufügen.To select a function from the dropdown list, use the arrow keys to highlight the item, and click OK to add the function to the formula.

  4. Geben Sie die Argumente für die Funktion an, indem Sie sie aus einer Dropdownliste möglicher Tabellen und Spalten auswählen, oder indem Sie Werte eingeben.Supply the arguments to the function by selecting them from a dropdown list of possible tables and columns, or by typing in values.

  5. Überprüfen Sie auf Syntaxfehler: Stellen Sie sicher, dass alle Klammern geschlossen sind und dass ordnungsgemäß auf Spalten, Tabellen und Werte verwiesen wird.Check for syntax errors: ensure that all parentheses are closed and columns, tables and values are referenced correctly.

  6. Drücken Sie die EINGABETASTE, um die Formel anzunehmen.Press ENTER to accept the formula.

Hinweis

In einer berechneten Spalte wird die Spalte mit Werten aufgefüllt, sobald Sie die Formel eingeben und diese überprüft wird.In a calculated column, as soon as you enter the formula and the formula is validated, the column is populated with values. In einem Measure wird durch Drücken der EINGABETASTE die Measure-Definition in der Tabelle gespeichert.In a measure, pressing ENTER saves the measure definition with the table. Wenn eine Formel ungültig ist, wird ein Fehler angezeigt.If a formula is invalid, an error is displayed.

In diesem Beispiel sehen wir uns eine Formel in einem Measure namens Days in Current Quarter (Tage im aktuellen Quartal) an:In this example, let's look at a formula in a measure named Days in Current Quarter:

Days in Current Quarter = COUNTROWS( DATESBETWEEN( 'Date'[Date], STARTOFQUARTER( LASTDATE('Date'[Date])), ENDOFQUARTER('Date'[Date])))

Dieses Measure wird zum Erstellen eines Vergleichsverhältnisses zwischen einem unvollständigen Zeitraum und dem vorherigen Zeitraum verwendet.This measure is used to create a comparison ratio between an incomplete period and the previous period. In der Formel muss der Anteil des verstrichenen Zeitraums berücksichtigt und mit dem gleichen Anteil des vorherigen Zeitraums verglichen werden.The formula must take into account the proportion of the period that has elapsed, and compare it to the same proportion in the previous period. In diesem Fall gibt „Days Current Quarter to Date“ (Tage im aktuellen Quartal bis Datum) oder „Days in Current Quarter“ (Tage im aktuellen Quartal) den Anteil an, der im aktuellen Zeitraum verstrichen ist.In this case, [Days Current Quarter to Date]/[Days in Current Quarter] gives the proportion elapsed in the current period.

Diese Formel enthält die folgenden Elemente:This formula contains the following elements:

FormelelementFormula element BeschreibungDescription
Days in Current Quarter Der Name des MeasuresThe name of the measure.
= Das Gleichheitszeichen (=) steht am Anfang der Formel.The equals sign (=) begins the formula.
COUNTROWS Mit COUNTROWS wird die Anzahl der Zeilen in der Date-Tabelle gezählt.COUNTROWS counts the number of rows in the Date table
() Öffnende und schließende Klammern geben Argumente an.Open and closing parenthesis specifies arguments.
DATESBETWEEN Die Funktion DATESBETWEEN gibt in der Date-Spalte der Date-Tabelle die Datumsangaben zwischen dem letzten Datum für jeden Wert zurück.The DATESBETWEEN function returns the dates between the last date for each value in the Date column in the Date table.
'Date' Gibt die Date-Tabelle anSpecifies the Date table. Tabellen werden in einfachen Anführungszeichen angegeben.Tables are in single quotes.
[Date] Gibt die Date-Spalte in der Date-Tabelle anSpecifies the Date column in the Date table. Spalten werden in eckigen Klammern angegeben.Columns are in brackets.
,
STARTOFQUARTER Die Funktion STARTOFQUARTER gibt das Datum des Quartalsbeginns zurück.The STARTOFQUARTER function returns the date of the start of the quarter.
LASTDATE Die Funktion LASTDATE gibt den letzten Tag des Quartals zurück.The LASTDATE function returns the last date of the quarter.
'Date' Gibt die Date-Tabelle anSpecifies the Date table.
[Date] Gibt die Date-Spalte in der Date-Tabelle anSpecifies the Date column in the Date table.
,
ENDOFQUARTER Die ENDOFQUARTER-FunktionThe ENDOFQUARTER function
'Date' Gibt die Date-Tabelle anSpecifies the Date table.
[Date] Gibt die Date-Spalte in der Date-Tabelle anSpecifies the Date column in the Date table.

Verwenden von AutoVervollständigen für FormelnUsing formula AutoComplete

AutoVervollständigen unterstützt Sie bei der Eingabe einer gültigen Formelsyntax, indem für jedes Element in der Formel Optionen angezeigt werden.AutoComplete helps you enter a valid formula syntax by providing you with options for each element in the formula.

  • Sie können AutoVervollständigen für Formeln auch mitten in einer vorhandenen Formel mit geschachtelten Funktionen verwenden.You can use formula AutoComplete in the middle of an existing formula with nested functions. Ausgehend vom Text unmittelbar vor der Einfügemarke werden Werte in der Dropdownliste angezeigt. Der Text nach der Einfügemarke bleibt unverändert.The text immediately before the insertion point is used to display values in the drop-down list, and all of the text after the insertion point remains unchanged.

  • AutoVervollständigen fügt keine schließende Klammer für Funktionen ein und gleicht Klammern nicht automatisch ab.AutoComplete does not add the closing parenthesis of functions or automatically match parentheses. Sie müssen sicherstellen, dass die Syntax aller Funktionen fehlerfrei ist. Andernfalls können Sie die Formel nicht speichern bzw. verwenden.You must make sure that each function is syntactically correct or you cannot save or use the formula.

Verwenden mehrerer Funktionen in einer FormelUsing multiple functions in a formula

Sie können Funktionen schachteln, d. h. das Ergebnis einer Funktion als Argument in einer anderen Funktion verwenden.You can nest functions, meaning that you use the results from one function as an argument of another function. Berechnete Spalten unterstützen bis zu 64 Schachtelungsebenen.You can nest up to 64 levels of functions in calculated columns. Die Schachtelung kann jedoch die Formelerstellung und die Problembehandlung erschweren.However, nesting can make it difficult to create or troubleshoot formulas. Viele Funktionen wurden zur ausschließlichen Verwendung als geschachtelte Funktionen entwickelt.Many functions are designed to be used solely as nested functions. Diese Funktionen geben eine Tabelle zurück, die nicht direkt als Ergebnis gespeichert werden kann, sondern als Eingabe für eine Tabellenfunktion verwendet werden muss.These functions return a table, which cannot be directly saved as a result; it must be provided as input to a table function. Die Funktionen SUMX, AVERAGEX und MINX erfordern beispielsweise alle eine Tabelle als erstes Argument.For example, the functions SUMX, AVERAGEX, and MINX all require a table as the first argument.

FunktionenFunctions

Eine Funktion ist eine benannte Formel innerhalb eines Ausdrucks.A function is a named formula within an expression. Die meisten Funktionen verwenden als Eingabe erforderliche und optionale Argumente, diese werden auch als Parameter bezeichnet.Most functions have required and optional arguments, also known as parameters, as input. Bei Ausführung der Funktion wird ein Wert zurückgegeben.When the function is executed, a value is returned. DAX enthält Funktionen, mit denen Sie Berechnungen mithilfe von Datums- und Uhrzeitwerten ausführen, bedingte Werte erstellen, mit Zeichenfolgen arbeiten, Suchvorgänge auf der Grundlage von Beziehungen ausführen und eine Tabelle durchlaufen können, um rekursive Berechnungen auszuführen.DAX includes functions you can use to perform calculations using dates and times, create conditional values, work with strings, perform lookups based on relationships, and the ability to iterate over a table to perform recursive calculations. Wenn Sie mit Excel-Formeln vertraut sind, werden Sie feststellen, dass viele dieser Funktionen ähnlich erscheinen. DAX-Formeln unterscheiden sich jedoch in den folgenden wichtigen Punkten:If you are familiar with Excel formulas, many of these functions will appear very similar; however, DAX formulas are different in the following important ways:

  • Eine DAX-Funktion verweist immer auf eine vollständige Spalte oder eine Tabelle.A DAX function always references a complete column or a table. Wenn Sie nur bestimmte Werte aus einer Tabelle oder Spalte verwenden möchten, können Sie der Formel Filter hinzufügen.If you want to use only particular values from a table or column, you can add filters to the formula.

  • Zum Anpassen von Berechnungen auf Zeilenbasis stellt DAX Funktionen bereit, mit denen Sie, ähnlich einem Parameter, den aktuellen Zeilenwert oder einen verknüpften Wert angeben können, um Berechnungen durchzuführen, die sich je nach Kontext unterscheiden.If you need to customize calculations on a row-by-row basis, DAX provides functions that let you use the current row value or a related value as a kind of parameter, to perform calculations that vary by context. Informationen dazu, wie diese Funktionen funktionieren, finden Sie unter Kontext in diesem Artikel.To understand how these functions work, see Context in this article.

  • DAX beinhaltet viele Funktionen, die keinen Wert, sondern eine Tabelle zurückgeben.DAX includes many functions that return a table, rather than a value. In einem Berichtserstellungsclient wird diese Tabelle nicht angezeigt, sondern als Eingabe für andere Funktionen verwendet.The table is not displayed in a reporting client, but is used to provide input to other functions. Sie können z. B. eine Tabelle abrufen und dann die unterschiedlichen Werte darin zählen oder dynamische Summen von gefilterten Tabellen oder Spalten berechnen.For example, you can retrieve a table and then count the distinct values in it, or calculate dynamic sums across filtered tables or columns.

  • Zu den DAX-Funktionen zählen auch verschiedene Zeitintelligenzfunktionen .DAX functions include a variety of time intelligence functions. Mit diesen Funktionen können Sie Datumsbereiche definieren oder auswählen und dynamische Berechnungen auf Grundlage dieser Datumsangaben oder Bereiche durchführen.These functions let you define or select date ranges, and perform dynamic calculations based on these dates or range. Sie können z. B. Summen über parallele Zeiträume vergleichen.For example, you can compare sums across parallel periods.

Datums- und UhrzeitfunktionenDate and time functions

Die Datums- und Uhrzeitfunktionen in DAX funktionieren ebenfalls ähnlich wie in Microsoft Excel.The date and time functions in DAX are similar to date and time functions in Microsoft Excel. DAX-Funktionen basieren jedoch auf einem datetime-Datentyp, der mit dem 1. März 1900 beginnt.However, DAX functions are based on a datetime data type starting March 1, 1900. Weitere Informationen finden Sie unter Datums- und Uhrzeitfunktionen.To learn more, see Date and time functions.

FilterfunktionenFilter functions

Mit den Filterfunktionen in DAX können Sie bestimmte Datentypen abrufen, Werte in verknüpften Tabellen suchen und nach verknüpften Werten filtern.The filter functions in DAX return specific data types, look up values in related tales, and filter by related values. Die Suchfunktionen funktionieren mit Tabellen und Beziehungen wie bei einer Datenbank.The lookup functions work by using tables and relationships, like a database. Die Filterfunktionen ermöglichen die Anpassung des Datenkontexts zur Erstellung dynamischer Berechnungen.The filtering functions let you manipulate data context to create dynamic calculations. Weitere Informationen finden Sie unter Filterfunktionen.To learn more, see Filter functions.

FinanzfunktionenFinancial functions

Die Finanzfunktionen in DAX werden in Formeln verwendet, mit denen Finanzberechnungen durchgeführt werden, z. B. die Berechnung des Nettobarwerts und der Gewinnrate.The financial functions in DAX are used in formulas that perform financial calculations, such as net present value and rate of return. Diese Funktionen ähneln den in Microsoft Excel verwendeten Finanzfunktionen.These functions are similar to financial functions used in Microsoft Excel. Weitere Informationen finden Sie unter Finanzfunktionen.To learn more, see Financial functions.

InformationsfunktionenInformation functions

Eine Informationsfunktion prüft die als Argument bereitgestellte Zelle oder Zeile und gibt an, ob der Wert mit dem erwarteten Typ übereinstimmt.An information function looks at the cell or row that is provided as an argument and tells you whether the value matches the expected type. Die ISTFEHLER-Funktion gibt z. B. TRUE zurück, wenn der Wert, auf den Sie verweisen, fehlerhaft ist.For example, the ISERROR function returns TRUE if the value that you reference contains an error. Weitere Informationen finden Sie unter Informationsfunktionen.To learn more, see Information functions.

Logische FunktionenLogical functions

Logische Funktionen werden auf Ausdrücke angewendet, um Informationen zu den Werten in diesem Ausdruck zurückzugeben.Logical functions act upon an expression to return information about the values in the expression. Mit der Funktion TRUE können Sie beispielsweise erkennen, ob ein von Ihnen ausgewerteter Ausdruck einen TRUE-Wert zurückgibt.For example, the TRUE function lets you know whether an expression that you are evaluating returns a TRUE value. Weitere Informationen finden Sie unter Logische Funktionen.To learn more, see Logical functions.

Mathematische und trigonometrische FunktionenMathematical and trigonometric functions

Die mathematischen Funktionen in DAX sind den mathematischen und trigonometrischen Funktionen in Excel sehr ähnlich.The mathematical functions in DAX are very similar to the Excel mathematical and trigonometric functions. Die von den DAX-Funktionen verwendeten numerischen Datentypen weisen einige kleinere Unterschiede auf.Some minor differences exist in the numeric data types used by DAX functions. Weitere Informationen finden Sie unter Mathematische und trigonometrische Funktionen.To learn more, see Math and trig functions.

Andere FunktionenOther functions

Diese Funktionen führen eindeutige Aktionen aus, die nicht durch eine der Kategorien definiert werden können, zu denen die meisten anderen Funktionen gehören.These functions perform unique actions that cannot be defined by any of the categories most other functions belong to. Weitere Informationen finden Sie unter Andere Funktionen.To learn more, see Other functions.

BeziehungsfunktionenRelationship functions

Mithilfe von Beziehungsfunktionen können Sie in DAX Werte aus einer anderen verknüpften Tabelle zurückgeben, eine bestimmte Beziehung angeben, die in einem Ausdruck verwendet werden soll, und die Richtung für die Kreuzfilterung angeben.Relationship functions in DAX allow you to return values from another related table, specify a particular relationship to use in an expression, and specify cross filtering direction. Weitere Informationen finden Sie unter Beziehungsfunktionen.To lean more, see Relationship functions.

Statistische FunktionenStatistical functions

DAX stellt statistische Funktionen bereit, die Aggregationen ausführen.DAX provides statistical functions that perform aggregations. Zusätzlich zum Erstellen von Summen und Durchschnittswerten oder dem Ermitteln von Mindest- und Höchstwerten können in DAX Spalten vor dem Aggregieren gefiltert und Aggregationen auf Grundlage verknüpfter Tabellen erstellt werden.In addition to creating sums and averages, or finding the minimum and maximum values, in DAX you can also filter a column before aggregating or create aggregations based on related tables. Weitere Informationen finden Sie unter Statistische Funktionen.To learn more, see Statistical functions.

TextfunktionenText functions

Die Textfunktionen in DAX ähneln den entsprechenden Funktionen in Excel sehr.Text functions in DAX are very similar to their counterparts in Excel. Sie können einen Teil einer Zeichenfolge zurückgeben, innerhalb einer Zeichenfolge nach Text suchen oder Zeichenfolgenwerte verketten.You can return part of a string, search for text within a string, or concatenate string values. DAX stellt auch Funktionen zum Steuern der Formate für Datums- und Uhrzeitangaben sowie Zahlen bereit.DAX also provides functions for controlling the formats for dates, times, and numbers. Weitere Informationen finden Sie unter Textfunktionen.To learn more, see Text functions.

ZeitintelligenzfunktionenTime intelligence functions

Mit den in DAX bereitgestellten Zeitintelligenzfunktionen können Sie Berechnungen erstellen, die integriertes Wissen zu Kalendern und Datumsangaben verwenden.The time intelligence functions provided in DAX let you create calculations that use built-in knowledge about calendars and dates. Wenn Sie Zeit- und Datumsbereiche in Kombination mit Aggregationen oder Berechnungen verwenden, können Sie sinnvolle Vergleiche in vergleichbaren Zeiträumen für Verkäufe, Bestand usw. erstellen.By using time and date ranges in combination with aggregations or calculations, you can build meaningful comparisons across comparable time periods for sales, inventory, and so on. Weitere Informationen finden Sie unter Zeitintelligenzfunktionen.To learn more, see Time intelligence functions (DAX).

Funktionen zur TabellenmanipulationTable manipulation functions

Diese Funktionen geben eine Tabelle zurück oder bearbeiten vorhandene Tabellen.These functions return a table or manipulate existing tables. Beispielsweise können Sie mit ADDCOLUMNS berechnete Spalten zu einer angegebenen Tabelle hinzufügen oder mit der Funktion SUMMARIZECOLUMNS eine Zusammenfassungstabelle für eine Reihe von Gruppen zurückgeben.For example, by using ADDCOLUMNS you can add calculated columns to a specified table, or you can return a summary table over a set of groups with the SUMMARIZECOLUMNS function. Weitere Informationen finden Sie unter Tabellenbearbeitungsfunktionen.To learn more, see Table manipulation functions.

VariablenVariables

Sie können innerhalb eines Ausdrucks Variablen erstellen, indem Sie VAR verwenden.You can create variables within an expression by using VAR. VAR ist eigentlich keine Funktion, sondern ein Schlüsselwort, mit dem Sie das Ergebnis eines Ausdrucks als benannte Variable speichern.VAR is technically not a function, it's a keyword to store the result of an expression as a named variable. Diese Variable kann dann als Argument an andere Measureausdrücke weitergegeben werden.That variable can then be passed as an argument to other measure expressions. Zum Beispiel:For example:

VAR
    TotalQty = SUM ( Sales[Quantity] )

Return

    IF (
        TotalQty > 1000,
        TotalQty * 0.95,
        TotalQty * 1.25
        )

In diesem Beispiel kann TotalQty als benannte Variable an andere Ausdrücke übergeben werden.In this example, TotalQty can be passed as a named variable to other expressions. Bei Variablen kann es sich um einen beliebigen skalaren Datentyp handeln, u. a. Tabellen.Variables can be of any scalar data type, including tables. Die Verwendung von Variablen eignet sich besonders gut im Zusammenhang mit DAX-Formeln.Using variables in your DAX formulas can be incredibly powerful.

DatentypenData types

Daten können in ein Modell aus vielen unterschiedlichen Datenquellen importiert werden, die unterschiedliche Datentypen unterstützen.You can import data into a model from many different data sources that might support different data types. Beim Importieren von Daten in ein Modell werden die Daten in einen der tabellarischen Modelldatentypen umgewandelt.When you import data into a model, the data is converted to one of the tabular model data types. Wenn die Modelldaten in einer Berechnung verwendet werden, werden die Daten für die Dauer und die Ausgabe der Berechnung dann in einen DAX-Datentyp konvertiert.When the model data is used in a calculation, the data is then converted to a DAX data type for the duration and output of the calculation. Wenn Sie eine DAX-Formel erstellen, bestimmen die in der Formel verwendeten Begriffe automatisch den zurückgegebenen Wertdatentyp.When you create a DAX formula, the terms used in the formula will automatically determine the value data type returned.

DAX unterstützt die folgenden Datentypen:DAX supports the following data types:

Datentyp im ModellData type in model Datentyp in DAXData type in DAX BESCHREIBUNGDescription
Ganze ZahlWhole Number Ein ganzzahliger 64-Bit-Wert (acht Byte) 1, 2A 64 bit (eight-bytes) integer value 1, 2 Zahlen ohne Dezimalstellen.Numbers that have no decimal places. Ganze Zahlen können positiv oder negativ sein, aber müssen ganze Zahlen zwischen -9 223 372 036 854 775 808 (-2^63) und 9 223 372 036 854 775 807 (2^63-1) sein.Integers can be positive or negative numbers, but must be whole numbers between -9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1).
Decimal NumberDecimal Number Eine reelle 64-Bit-Zahl (acht Byte) 1, 2A 64 bit (eight-bytes) real number 1, 2 Reelle Zahlen sind Zahlen, die Dezimalstellen aufweisen können.Real numbers are numbers that can have decimal places. Reelle Zahlen decken viele Werte ab:Real numbers cover a wide range of values:

Negative Werte von -1,79E +308 bis -2,23E -308Negative values from -1.79E +308 through -2.23E -308

ZeroZero

Positive Werte von 2,23E -308 bis -1,79E +308Positive values from 2.23E -308 through 1.79E + 308

Die Anzahl der relevanten Stellen wird jedoch auf siebzehn Dezimalstellen beschränkt.However, the number of significant digits is limited to 17 decimal digits.
Boolescher WertBoolean BooleanBoolean Entweder ein True oder ein False-Wert.Either a True or False value.
TextText StringString Eine Unicodezeichen-Datenzeichenfolge.A Unicode character data string. Dies können Zeichenfolgen, Zahlen oder Datumsangaben im Textformat sein.Can be strings, numbers or dates represented in a text format.
DateDate Datum/UhrzeitDate/time Datumsangaben und Uhrzeiten in einer akzeptierten Form für die Darstellung von Datum und Uhrzeit.Dates and times in an accepted date-time representation.

Gültig sind alle Datumsangaben nach dem 1. März 1900.Valid dates are all dates after March 1, 1900.
WährungCurrency WährungCurrency Der Währungsdatentyp lässt Werte zwischen -922 337 203 685 477,5808 und 922 337 203 685 477,5807 mit vier Dezimalstellen unveränderlicher Genauigkeit zu.Currency data type allows values between -922,337,203,685,477.5808 to 922,337,203,685,477.5807 with four decimal digits of fixed precision.
N/A LeerBlank Ein leerer Datentyp in DAX, der SQL-NULLEN darstellt und ersetzt.A blank is a data type in DAX that represents and replaces SQL nulls. Sie können mit der BLANK-Funktion ein Leerzeichen erstellen und mit der logischen ISBLANK-Funktion nach Leerzeichen suchen.You can create a blank by using the BLANK function, and test for blanks by using the logical function, ISBLANK.

Tabellarische Datenmodelle umfassen auch den Datentyp Tabelle als Eingabe oder Ausgabe für viele DAX-Funktionen.Tabular data models also include the Table data type as the input or output to many DAX functions. 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.For example, the FILTER function takes a table as input and outputs another table that contains only the rows that meet the filter conditions. Die Kombination von Tabellen- und Aggregationsfunktionen ermöglicht Ihnen die Ausführung komplexer Berechnungen für dynamisch definierte Datasets.By combining table functions with aggregation functions, you can perform complex calculations over dynamically defined data sets.

Obwohl Datentypen in der Regel automatisch festgelegt werden, ist es wichtig, ihre Funktion und Gültigkeit zu verstehen. Dies gilt insbesondere für DAX-Formeln.While data types are typically automatically set, it is important to understand data types and how they apply, in-particular, to DAX formulas. Fehler in Formeln oder unerwartete Ergebnisse werden z. B. oft von einem bestimmten Operator verursacht, der nicht mit einem in einem Argument angegebenen Datentyp verwendet werden kann.Errors in formulas or unexpected results, for example, are often caused by using a particular operator that cannot be used with a data type specified in an argument. Die Formel = 1 & 2gibt z.B. ein Zeichenfolgenergebnis von 12 zurück,For example, the formula, = 1 & 2, returns a string result of 12. die Formel = "1" + "2"dagegen die ganze Zahl 3.The formula, = "1" + "2", however, returns an integer result of 3.

KontextContext

Der Kontext ist ein wichtiges Konzept, das bei der Erstellung von DAX-Formeln zu beachten ist.Context is an important concept to understand when creating DAX formulas. Mithilfe des Kontexts können Sie dynamische Analysen ausführen, da sich die Ergebnisse einer Formel ändern und die aktuelle Zeilen- oder Zellenauswahl sowie alle verknüpften Daten widerspiegeln.Context is what enables you to perform dynamic analysis, as the results of a formula change to reflect the current row or cell selection and also any related data. Es ist sehr wichtig, dass Sie den Kontext verstehen und anwenden, um leistungsstarke, dynamische Analysen erstellen und Probleme in Formeln beheben zu können.Understanding context and using context effectively are critical for building high-performing, dynamic analyses, and for troubleshooting problems in formulas.

Formeln in tabellarischen Modellen können abhängig von anderen Entwurfselementen in einem anderen Kontext ausgewertet werden:Formulas in tabular models can be evaluated in a different context, depending on other design elements:

  • Filter, die auf eine PivotTable oder einen Bericht angewendet werdenFilters applied in a PivotTable or report
  • Innerhalb einer Formel definierte FilterFilters defined within a formula
  • Mit besonderen Funktionen innerhalb einer Formel angegebene BeziehungenRelationships specified by using special functions within a formula

Es gibt verschiedene Typen von Kontext: Zeilenkontext, Abfragekontextund Filterkontext.There are different types of context: row context, query context, and filter context.

ZeilenkontextRow context

Den Zeilenkontext kann man sich als die aktuelle Zeile vorstellen.Row context can be thought of as "the current row". Wenn Sie in einer berechneten Spalte eine Formel erstellen, enthält der Zeilenkontext für diese Formel die Werte aller Spalten in der aktuellen Zeile.If you create a formula in a calculated column, the row context for that formula includes the values from all columns in the current row. Wenn die Tabelle mit einer anderen Tabelle verknüpft ist, enthält der Kontext auch alle Werte aus der anderen Tabelle, die mit der aktuellen Zeile verknüpft sind.If the table is related to another table, the content also includes all the values from the other table that are related to the current row.

Angenommen, Sie erstellen die berechnete Spalte = [Freight] + [Tax], die Werte aus zwei Spalten (Fracht und Steuer) aus derselben Tabelle addiert.For example, suppose you create a calculated column, = [Freight] + [Tax], that adds together values from two columns, Freight and Tax, from the same table. Diese Formel ruft automatisch nur die Werte der aktuellen Zeile in der angegebenen Spalte ab.This formula automatically gets only the values from the current row in the specified columns.

Der Zeilenkontext folgt auch allen Beziehungen, die zwischen Tabellen definiert wurden, einschließlich der innerhalb einer berechneten Spalte mit DAX-Formeln definierten Beziehungen, um zu ermitteln, welche Zeilen in verknüpften Tabellen der aktuellen Zeile zugeordnet sind.Row context also follows any relationships that have been defined between tables, including relationships defined within a calculated column by using DAX formulas, to determine which rows in related tables are associated with the current row.

In der folgenden Formel wird z. B. mit der RELATED-Funktion auf Grundlage des Lands, in das die Bestellung ausgeliefert wurde, ein Steuerwert aus einer verknüpften Tabelle abgerufen.For example, the following formula uses the RELATED function to fetch a tax value from a related table, based on the region that the order was shipped to. Der Steuerwert wird mit dem Wert für Region in der aktuellen Tabelle ermittelt. Die Region wird in der verknüpften Tabelle nachgeschlagen, und anschließend wird der Steuersatz für diese Region aus der verknüpften Tabelle abgerufen.The tax value is determined by using the value for region in the current table, looking up the region in the related table, and then getting the tax rate for that region from the related table.

= [Freight] + RELATED('Region'[TaxRate])  

Diese Formel ruft den Steuersatz für den aktuellen Bereich von der Tabelle Region ab und fügt es dem Wert der Spalte Fracht hinzu.This formula gets the tax rate for the current region from the Region table and adds it to the value of the Freight column. In DAX-Formeln müssen Sie die bestimmte Beziehung zum Verknüpfen der Tabellen nicht kennen oder angeben.In DAX formulas, you do not need to know or specify the specific relationship that connects the tables.

Mehrere ZeilenkontexteMultiple row context

DAX umfasst Funktionen, die eine Tabelle durchlaufen, um Berechnungen durchzuführen.DAX includes functions that iterate calculations over a table. Diese Funktionen können über mehrere aktuelle Zeilen mit jeweils einem eigenen Zeilenkontext verfügen.These functions can have multiple current rows, each with its own row context. In Wesentlichen können Sie mit diesen Funktionen Formeln erstellen, die Vorgänge rekursiv über eine innere und eine äußere Schleife ausführen.In essence, these functions let you create formulas that perform operations recursively over an inner and outer loop.

Angenommen, das Modell enthält eine Products -Tabelle und eine Sales -Tabelle.For example, suppose your model contains a Products table and a Sales table. Sie können z. B. die gesamte Sales-Tabelle durchlaufen, die mit Transaktionen verschiedener Produkte gefüllt ist, um die größte Bestellmenge für jedes Produkt in einer beliebigen Transaktion zu ermitteln.Users might want to go through the entire sales table, which is full of transactions involving multiple products, and find the largest quantity ordered for each product in any one transaction.

Mit DAX können Sie eine einzelne Formel erstellen, die den richtigen Wert zurückgibt, und die Ergebnisse werden automatisch bei jedem Hinzufügen von Daten zu den Tabellen aktualisiert.With DAX you can build a single formula that returns the correct value, and the results are automatically updated any time a user adds data to the tables.

= MAXX(FILTER(Sales,[ProdKey] = EARLIER([ProdKey])),Sales[OrderQty])  

Ein ausführliches Beispiel für diese Formel finden Sie unter EARLIER.For a detailed example of this formula, see EARLIER.

Zusammengefasst speichert die EARLIER-Funktion den Zeilenkontext des Vorgangs, der dem aktuellen Vorgang vorausging.To summarize, the EARLIER function stores the row context from the operation that preceded the current operation. Die Funktion speichert zu jedem Zeitpunkt zwei Kontextsätze im Arbeitsspeicher: Ein Kontextsatz stellt die aktuelle Zeile für die innere Schleife der Formel dar, und ein weiterer Kontextsatz stellt die aktuelle Zeile für die äußere Schleife der Formel dar.At all times, the function stores in memory two sets of context: one set of context represents the current row for the inner loop of the formula, and another set of context represents the current row for the outer loop of the formula. DAX übermittelt automatisch Werte zwischen den zwei Schleifen, sodass komplexe Aggregate erstellt werden können.DAX automatically feeds values between the two loops so that you can create complex aggregates.

AbfragekontextQuery context

DerAbfragekontext ist die Teilmenge von Daten, die implizit für eine Formel abgerufen wird.Query context refers to the subset of data that is implicitly retrieved for a formula. Wenn beispielsweise ein Benutzer ein Measure oder Feld in einem Bericht verwendet, untersucht die Engine die Zeilen- und Spaltenüberschriften, Datenschnitte und Berichtsfilter, um den Kontext zu ermitteln.For example, when a user places a measure or field into a report, the engine examines row and column headers, slicers, and report filters to determine the context. Anschließend werden die erforderlichen Abfragen für die Modelldaten ausgeführt, um die richtige Teilmenge von Daten zu erhalten, die von der Formel definierten Berechnungen durchzuführen und dann die Werte in den Bericht zu übernehmen.The necessary queries are then run against model data to get the correct subset of data, make the calculations defined by the formula, and then populate values in the report.

Da sich der Kontext abhängig von der Position der Formel ändert, können sich auch die Ergebnisse der Formel ändern.Because context changes depending on where you place the formula, the results of the formula can also change. Angenommen, Sie erstellen eine Formel, die die Werte in der Profit-Spalte der Sales-Tabelle summiert: = SUM('Sales'[Profit]).For example, suppose you create a formula that sums the values in the Profit column of the Sales table: = SUM('Sales'[Profit]). Wenn Sie diese Formel in einer berechneten Spalte innerhalb der Sales-Tabelle verwenden, sind die Ergebnisse für die Formel für die gesamte Tabelle identisch, da der Abfragekontext für die Formel immer das gesamte Dataset der Sales-Tabelle ist.If you use this formula in a calculated column within the Sales table, the results for the formula will be the same for the entire table, because the query context for the formula is always the entire data set of the Sales table. Die Ergebnisse werden für alle Regionen, alle Produkte, alle Jahre usw. von Nutzen sein.Results will have profit for all regions, all products, all years, and so on.

Benutzer wollen jedoch in der Regel nicht mehrfach das gleiche Ergebnis angezeigt bekommen, sondern stattdessen den Gewinn für ein bestimmtes Jahr, ein bestimmtes Land, ein bestimmtes Produkt oder eine Kombination davon einsehen und dann ein Gesamtergebnis erhalten.However, users typically don't want to see the same result hundreds of times, but instead want to get the profit for a particular year, a particular country, a particular product, or some combination of these, and then get a grand total.

In einem Bericht wird der Kontext geändert, indem Filter angewendet, Felder hinzugefügt oder entfernt oder Datenschnitte verwendet werden.In a report, context is changed by filtering, adding or removing fields, and using slicers. Bei jeder dieser Änderungen ändert sich der Abfragekontext, in dem das Measure ausgewertet wird.For each change, the query context in which the measure is evaluated. Daher wird dieselbe Formel, wenn sie in einem Measure verwendet wird, für jede Zelle in einem anderen Abfragekontext ausgewertet.Therefore, the same formula, used in a measure, is evaluated in a different query context for each cell.

FilterkontextFilter context

DerFilterkontext ist der Satz von Werten, die in jeder Spalte oder in den aus einer verknüpften Tabelle abgerufenen Werten zulässig sind.Filter context is the set of values allowed in each column, or in the values retrieved from a related table. Filter können im Designer oder in der Darstellungsschicht (Berichte und PivotTables) auf eine Spalte angewendet werden.Filters can be applied to the column in the designer, or in the presentation layer (reports and PivotTables). Filter können auch explizit durch Filterausdrücke innerhalb der Formel definiert werden.Filters can also be defined explicitly by filter expressions within the formula.

Der Filterkontext wird hinzugefügt, wenn Sie Filtereinschränkungen für den in einer Spalte oder einer Tabelle zulässigen Satz von Werten angeben, indem Sie in einer Formel Argumente verwenden.Filter context is added when you specify filter constraints on the set of values allowed in a column or table, by using arguments to a formula. Der Filterkontext wird zusätzlich zu anderen Kontexten wie dem Zeilenkontext oder Abfragekontext angewendet.Filter context applies on top of other contexts, such as row context or query context.

In tabellarischen Modellen gibt es verschiedene Möglichkeiten, einen Filterkontext zu erstellen.In tabular models, there are many ways to create filter context. Innerhalb des Kontexts von Clients, die das Modell verwenden können, wie z. B. Power BI-Berichte, können Benutzer dynamisch Filter erstellen, indem Sie Slicer oder Berichtsfilter für die Zeilen- und Spaltenüberschriften hinzufügen.Within the context of clients that can consume the model, such as Power BI reports, users can create filters on the fly by adding slicers or report filters on the row and column headings. Sie können Filterausdrücke auch direkt in der Formel verwenden, um verknüpfte Werte anzugeben, Tabellen zu filtern, die als Eingaben verwendet werden, oder dynamisch den Kontext für Werte abzurufen, die in Berechnungen verwendet werden.You can also specify filter expressions directly within the formula, to specify related values, to filter tables that are used as inputs, or to dynamically get context for the values that are used in calculations. Darüber hinaus können Sie die Filter für einzelne Spalten vollständig oder selektiv löschen.You can also completely clear or selectively clear the filters on particular columns. Beim Erstellen von Formeln, die Gesamtergebnisse berechnen, ist dies sehr nützlich.This is very useful when creating formulas that calculate grand totals.

Weitere Informationen zum Erstellen von Filtern innerhalb von Formeln finden Sie im Artikel zur FILTER-Funktion (DAX).To learn more about how to create filters within formulas, see the FILTER Function (DAX).
Ein Beispiel dazu, wie Filter gelöscht werden können, um Gesamtergebnisse zu erzeugen, finden Sie unter ALL-Funktion (DAX).For an example of how filters can be cleared to create grand totals, see the ALL Function (DAX).

Beispiele für das selektive Löschen und Anwenden von Filtern innerhalb von Formeln finden Sie unter ALLEXCEPT.For examples of how to selectively clear and apply filters within formulas, see ALLEXCEPT.

Bestimmen des Kontexts in FormelnDetermining context in formulas

Wenn Sie eine DAX-Formel erstellen, wird die Formel zuerst auf gültige Syntax getestet, und dann wird überprüft, ob die Namen der Spalten und Tabellen innerhalb der Formel im aktuellen Kontext vorhanden sind.When you create a DAX formula, the formula is first tested for valid syntax, and then tested to make sure the names of the columns and tables included in the formula can be found in the current context. Wenn eine Spalte oder Tabelle innerhalb der Formel nicht gefunden wird, wird ein Fehler zurückgegeben.If any column or table specified by the formula cannot be found, an error is returned.

Wie in den vorangehenden Abschnitten beschrieben, wird der Kontext während der Validierung (und während Neuberechnungen) anhand der verfügbaren Tabellen im Modell, anhand der Beziehungen zwischen den Tabellen und anhand der angewendeten Filter bestimmt.Context during validation (and recalculation operations) is determined as described in the preceding sections, by using the available tables in the model, any relationships between the tables, and any filters that have been applied.

Wenn Sie z.B. gerade einige Daten in eine neue Tabelle importiert haben, die mit keiner anderen Tabelle verknüpft ist (und Sie keine Filter angewendet haben), ist der aktuelle Kontext der gesamte Satz von Spalten in der Tabelle.For example, if you have just imported some data into a new table and it is not related to any other tables (and you have not applied any filters), the current context is the entire set of columns in the table. Wenn die Tabelle über Beziehungen mit anderen Tabellen verknüpft ist, beinhaltet der aktuelle Kontext auch die verknüpften Tabellen.If the table is linked by relationships to other tables, the current context includes the related tables. Wenn Sie eine Spalte aus der Tabelle einem Bericht hinzufügen, der Slicer und ggf. auch Berichtsfilter verwendet, ist der Kontext für die Formel die Teilmenge der Daten in jeder Zelle des Berichts.If you add a column from the table to a report that has Slicers and maybe some report filters, the context for the formula is the subset of data in each cell of the report.

Der Kontext ist ein leistungsstarkes Konzept, das die Fehlerbehebung in Formeln allerdings auch erschweren kann.Context is a powerful concept that can also make it difficult to troubleshoot formulas. Sie sollten daher mit einfachen Formeln und Beziehungen beginnen, um die Funktionsweise des Kontexts zu verstehen.We recommend that you begin with simple formulas and relationships to see how context works. Der folgende Abschnitt enthält einige Beispiele für Formeln, in denen verschiedene Kontexttypen zur dynamischen Rückgabe von Ergebnissen verwendet werden.The following section provides some examples of how formulas use different types of context to dynamically return results.

OperatorenOperators

In der DAX-Sprache werden vier verschiedene Berechnungsoperatortypen in Formeln verwendet:The DAX language uses four different types of calculation operators in formulas:

  • Vergleichsoperatoren, um Werte zu vergleichen und einen logischen TRUE\FALSE-Wert zurückzugebenComparison operators to compare values and return a logical TRUE\FALSE value.
  • Arithmetische Operatoren, um arithmetische Berechnungen auszuführen, die numerische Werte zurückgebenArithmetic operators to perform arithmetic calculations that return numeric values.
  • Textverkettungsoperatoren, die zwei oder mehr Textzeichenfolgen verknüpfenText concatenation operators to join two or more text strings.
  • Logische Operatoren, die zwei oder mehr Ausdrücke kombinieren, um ein einzelnes Ergebnis zurückzugebenLogical operators that combine two or more expressions to return a single result.

Ausführliche Informationen zu den in DAX-Formeln verwendeten Operatoren finden Sie unter DAX-Operatoren.For detailed information about operators used in DAX formulas, see DAX operators.

Arbeiten mit Tabellen und SpaltenWorking with tables and columns

Tabellen in tabellarischen Datenmodellen sehen wie Excel-Tabellen aus, unterscheiden sich jedoch in der Art und Weise, wie sie mit Daten und Formeln arbeiten:Tables in tabular data models look like Excel tables, but are different in the way they work with data and with formulas:

  • Formeln funktionieren nur für Tabellen und Spalten, nicht für einzelne Zellen, Bereichsverweise oder Arrays.Formulas work only with tables and columns, not with individual cells, range references, or arrays.
  • Formeln können Beziehungen verwenden, um Werte aus verknüpften Tabellen abzurufen.Formulas can use relationships to get values from related tables. Die Werte, die abgerufen werden, beziehen sich immer auf den aktuellen Zeilenwert.The values that are retrieved are always related to the current row value.
  • Sie können keine unregelmäßigen Daten verwenden, so wie dies in einem Excel-Arbeitsblatt möglich ist.You cannot have irregular or "ragged" data like you can in an Excel worksheet. Jede Zeile in einer Tabelle muss die gleiche Anzahl von Spalten enthalten.Each row in a table must contain the same number of columns. In einigen Spalten können jedoch leere Werte stehen.However, you can have empty values in some columns. Excel-Datentabellen und Datentabellen aus tabellarischen Modellen sind nicht austauschbar.Excel data tables and tabular model data tables are not interchangeable.
  • Da der Datentyp für jede Spalte festgelegt ist, muss jeder Wert in dieser Spalte vom gleichen Typ sein,Because a data type is set for each column, each value in that column must be of the same type.

Verweisen auf Tabellen und Spalten in FormelnReferring to tables and columns in formulas

Sie können auf alle Tabellen und Spalten anhand des Namens verweisen.You can refer to any table and column by using its name. Die folgende Formel veranschaulicht z.B., wie Sie auf die Spalten aus zwei Tabellen verweisen, indem Sie den vollqualifizierten Namen verwenden:For example, the following formula illustrates how to refer to columns from two tables by using the fully qualified name:


= SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount])  

Wenn eine Formel ausgewertet wird, überprüft der Modell-Designer zuerst die allgemeine Syntax und vergleicht dann die von Ihnen bereitgestellten Namen der Spalten und Tabellen mit möglichen Spalten und Tabellen im aktuellen Kontext.When a formula is evaluated, the model designer first checks for general syntax, and then checks the names of columns and tables that you provide against possible columns and tables in the current context. Wenn der Name mehrdeutig ist oder die Spalte oder die Tabelle nicht gefunden werden kann, wird für die Formel (statt eines Datenwerts wird in Zellen, in denen der Fehler auftritt, eine #ERROR-Zeichenfolge angezeigt) ein Fehler ausgegeben.If the name is ambiguous or if the column or table cannot be found, you will get an error on your formula (an #ERROR string instead of a data value in cells where the error occurs). Weitere Informationen zu den Benennungsanforderungen für Tabellen, Spalten und andere Objekte finden Sie im Abschnitt „Benennungsanforderungen“ des Artikels DAX-Syntax.To learn more about naming requirements for tables, columns, and other objects, see Naming Requirements in DAX syntax.

TabellenbeziehungenTable relationships

Wenn Sie Beziehungen zwischen Tabellen erstellen, können Sie verknüpfte Werte aus anderen Tabellen in Berechnungen verwenden.By creating relationships between tables, you gain the ability for related values in other tables to be used in calculations. Beispielsweise können Sie eine berechnete Spalte verwenden, um alle Versandunterlagen für den aktuellen Handelspartner zu ermitteln und dann die jeweiligen Versandkosten zusammenzufassen.For example, you can use a calculated column to determine all the shipping records related to the current reseller, and then sum the shipping costs for each. In vielen Fällen ist eine Beziehung u. U. nicht notwendig.In many cases, however, a relationship might not be necessary. Sie können die LOOKUPVALUE-Funktion in einer Formel verwenden, um den Wert in result_columnName für die Zeile zurückzugeben, die die in den Argumenten search_column und search_value angegebenen Kriterien erfüllt.You can use the LOOKUPVALUE function in a formula to return the value in result_columnName for the row that meets criteria specified in the search_column and search_value arguments.

Viele DAX-Funktionen erfordern, dass zwischen zwei Tabellen oder unter mehreren Tabellen eine Beziehung besteht, um die referenzierten Spalten zu finden und sinnvolle Ergebnisse zurückzugeben.Many DAX functions require that a relationship exist between the tables, or among multiple tables, in order to locate the columns that you have referenced and return results that make sense. Andere Funktionen versuchen, die Beziehung zu ermitteln. Um jedoch die besten Ergebnisse zu erzielen, sollten Sie nach Möglichkeit immer eine Beziehung erstellen.Other functions will attempt to identify the relationship; however, for best results you should always create a relationship where possible. Tabellarische Datenmodelle unterstützen mehrere Beziehungen zwischen Tabellen.Tabular data models support multiple relationships among tables. Es wird jeweils nur eine Beziehung als aktive Beziehung festgelegt, um Verwirrung oder falsche Ergebnisse zu vermeiden. Sie können die aktive Beziehung jedoch nach Bedarf ändern, um in Berechnungen unterschiedliche Verbindungen in den Daten zu durchlaufen.To avoid confusion or incorrect results, only one relationship at a time is designated as the active relationship, but you can change the active relationship as necessary to traverse different connections in the data in calculations. Die USERELATIONSHIP-Funktion kann verwendet werden, um mindestens eine Beziehung anzugeben, die in einer bestimmten Berechnung verwendet werden soll.USERELATIONSHIP function can be used to specify one or more relationships to be used in a specific calculation.

Es ist wichtig zu beachten, dass diese Formeln bei der Verwendung von Beziehungen Regeln aufstellen:It's important to observe these formula design rules when using relationships:

  • Wenn Tabellen durch eine Beziehung verbunden sind, müssen Sie sicherstellen, dass die beiden als Schlüssel verwendeten Spalten über die gleichen Werte verfügen.When tables are connected by a relationship, you must ensure the two columns used as keys have values that match. Die referenzielle Integrität wird nicht erzwungen, daher ist es möglich, in einer Schlüsselspalte nicht übereinstimmende Werte zu haben und trotzdem eine Beziehung zu erstellen.Referential integrity is not enforced, therefore it is possible to have non-matching values in a key column and still create a relationship. In so einem Fall müssen Sie beachten, dass leere oder nicht übereinstimmende Werte die Ergebnisse von Formeln beeinflussen können.If this happens, you should be aware that blank values or non-matching values might affect the results of formulas.

  • Wenn Sie Tabellen im Modell mithilfe von Beziehungen verknüpfen, vergrößern Sie den Bereich oder Kontext, in dem die Formeln ausgewertet werden.When you link tables in your model by using relationships, you enlarge the scope, or context, in which your formulas are evaluated. Änderungen im Kontext, die sich aus der Hinzufügung neuer Tabellen, neuen Beziehungen oder aus Änderungen in der aktiven Beziehung ergeben, können zu unerwarteten Änderungen in den Ergebnissen führen.Changes in context resulting from the addition of new tables, new relationships, or from changes in the active relationship can cause your results to change in ways that you might not anticipate. Weitere Informationen finden Sie in diesem Artikel unter Kontext.To learn more, see Context in this article.

Verarbeiten und AktualisierenProcess and refresh

Process (Verarbeiten) und recalculation (Neuberechnung) sind zwei separate, aber verwandte Vorgänge.Process and recalculation are two separate but related operations. Diese Konzepte sollten Ihnen sehr geläufig sein, wenn Sie ein Modell mit komplexen Formeln, großen Datenmengen oder aus externen Datenquellen abgerufenen Daten entwerfen.You should thoroughly understand these concepts when designing a model that contains complex formulas, large amounts of data, or data that is obtained from external data sources.

Process (refresh) (Verarbeiten (aktualisieren)) aktualisiert die Daten in einem Modell mit neuen Daten aus einer externen Datenquelle.Process (refresh) is updating the data in a model with new data from an external data source.

Neuberechnung ist der Vorgang, bei dem die Ergebnisse von Formeln aktualisiert werden, um Änderungen an den Formeln sowie an den zugrunde liegenden Daten widerzuspiegeln.Recalculation is the process of updating the results of formulas to reflect any changes to the formulas themselves and to reflect changes in the underlying data. Neuberechnung kann die Leistung in folgender Weise beeinträchtigen:Recalculation can affect performance in the following ways:

  • Die Werte in einer berechneten Spalte werden berechnet und im Modell gespeichert.The values in a calculated column are computed and stored in the model. Um die Werte in der berechneten Spalte zu aktualisieren, müssen Sie das Modell mit einem von drei Verarbeitungsbefehlen verarbeiten: Vollständig verarbeiten, Daten verarbeiten oder Prozessneuberechnung.To update the values in the calculated column, you must process the model using one of three processing commands – Process Full, Process Data, or Process Recalc. Das Ergebnis der Formel muss immer für die ganze Spalte neu berechnet werden, wenn Sie die Formel ändern.The result of the formula must always be recalculated for the entire column, whenever you change the formula.

  • Die durch Measures berechneten Werte werden dynamisch ausgewertet, wenn ein Benutzer das Measure einer PivotTable hinzufügt oder einen Bericht öffnet. Wenn der Benutzer den Kontext ändert, ändern sich die vom Measure zurückgegebenen Werte.The values calculated by measures are dynamically evaluated whenever a user adds the measure to a PivotTable or open a report; as the user modifies the context, values returned by the measure change. Die Ergebnisse des Measures spiegeln immer den aktuellen Stand des speicherinternen Caches wider.The results of the measure always reflect the latest in the in-memory cache.

Die Verarbeitung und Neuberechnung haben keine Auswirkungen auf Formeln für Sicherheit auf Zeilenebene, es sei denn, das Ergebnis einer Neuberechnung gibt einen anderen Wert zurück, sodass die Zeile für Rollenmitglieder abfragbar oder nicht abfragbar wird.Processing and recalculation have no effect on row-level security formulas unless the result of a recalculation returns a different value, thus making the row queryable or not queryable by role members.

UpdatesUpdates

DAX wird kontinuierlich verbessert.DAX is constantly being improved. Neue und aktualisierte Funktionen werden jeweils mit dem nächsten verfügbaren Update veröffentlicht, in der Regel monatlich.New and updated functions are released with the next available update, which is usually monthly. Dienste werden zuerst aktualisiert, gefolgt von installierten Anwendungen wie Power BI Desktop, Excel, dem SQL Server Management Studio (SSMS) und der Analysis Services-Projekterweiterung für Visual Studio (SSDT).Services are updated first, followed by installed applications like Power BI Desktop, Excel, SQL Server Management Studio (SSMS), and Analysis Services project extension for Visual Studio (SSDT). SQL Server Analysis Services wird im nächsten kumulativen Update aktualisiert.SQL Server Analysis Services is updated with the next cumulative update. Neue Funktionen werden zuerst in der DAX-Funktionsreferenz zeitgleich mit Power BI Desktop-Updates angekündigt und beschrieben.New functions are first announced and described in the DAX function reference coinciding with Power BI Desktop updates.

Nicht alle Funktionen werden in früheren Versionen von SQL Server Analysis Services und Excel unterstützt.Not all functions are supported in earlier versions of SQL Server Analysis Services and Excel.

ProblembehandlungTroubleshooting

Wenn Sie beim Definieren einer Formel einen Fehler erhalten, enthält die Formel eventuell entweder einen Syntaxfehler, einen Semantikfehleroder einen Berechnungsfehler.If you get an error when defining a formula, the formula might contain either a syntactic error, semantic error, or calculation error.

Syntaxfehler sind am einfachsten zu beheben.Syntactic errors are the easiest to resolve. Meist geht es um eine fehlende Klammer oder ein fehlendes Komma.They typically involve a missing parenthesis or comma.

Der andere Fehlertyp tritt auf, wenn die Syntax richtig ist, aber der Wert oder eine Spalte, auf die verwiesen wird, im Kontext der Formel keinen Sinn ergibt.The other type of error occurs when the syntax is correct, but the value or a column referenced does not make sense in the context of the formula. Semantik- und Berechnungsfehler dieser Art können die folgenden Ursachen haben:Such semantic and calculation errors might be caused by any of the following problems:

  • Die Formel verweist auf eine nicht vorhandene Spalte, Tabelle oder Funktion.The formula refers to a non-existing column, table, or function.
  • Die Formel scheint korrekt zu sein, aber wenn die Data Engine die Daten abruft, wird ein Typenkonflikt gefunden, und es wird ein Fehler ausgelöst.The formula appears to be correct, but when the data engine fetches the data, it finds a type mismatch and raises an error.
  • Die Formel übergibt eine falsche Anzahl von Argumenten oder einen falschen Argumenttyp an eine Funktion.The formula passes an incorrect number or type of arguments to a function.
  • Die Formel verweist auf eine andere Spalte mit einem Fehler, weshalb die Werte ungültig sind.The formula refers to a different column that has an error, and therefore its values are invalid.
  • Die Formel verweist auf eine Spalte, die nicht verarbeitet wurde, d. h., es sind Metadaten vorhanden, aber keine tatsächlichen Daten, die für Berechnungen verwendet werden könnten.The formula refers to a column that has not been processed, meaning it has metadata but no actual data to use for calculations.

In den ersten vier Fällen kennzeichnet DAX die gesamte Spalte mit der ungültigen Formel.In the first four cases, DAX flags the entire column that contains the invalid formula. Im letzten Fall blendet DAX die Spalte ab, um anzugeben, dass sich die Spalte in einem nicht verarbeiteten Zustand befindet.In the last case, DAX grays out the column to indicate that the column is in an unprocessed state.

Apps und ToolsApps and tools

Power BI DesktopPower BI Desktop

Power BI Desktop

Power BI Desktop ist eine kostenlose Anwendung für die Datenmodellierung und Berichterstellung.Power BI Desktop is a free data modeling and reporting application. Der Modell-Designer enthält einen DAX-Editor zum Erstellen von DAX-Berechnungsformeln.The model designer includes a DAX editor for creating DAX calculation formulas.

Power Pivot in ExcelPower Pivot in Excel

Power Pivot in Excel

Der Power Pivot in Excel-Modell-Designer enthält einen DAX-Editor zum Erstellen von DAX-Berechnungsformeln.The Power Pivot in Excel models designer includes a DAX editor for creating DAX calculation formulas.

Visual StudioVisual Studio

Visual Studio

Visual Studio mit der Erweiterung Analysis Services Projects (VSIX) wird verwendet, um Analysis Services-Modellprojekte zu erstellen.Visual Studio with Analysis Services projects extension (VSIX) is used to create Analysis Services model projects. Der Designer für tabellarische Modelle, der mit der Projects-Erweiterung installiert wird, enthält einen DAX-Editor.Tabular model designer, installed with the projects extension includes a DAX editor.

SQL Server Management StudioSQL Server Management Studio

SQL Server Management Studio

SQL Server Management Studio (SSMS) ist ein wichtiges Tool für die Arbeit mit Analysis Services.SQL Server Management Studio (SSMS) is an essential tool for working with Analysis Services. SSMS enthält einen DAX-Abfrage-Editor zum Abfragen von tabellarischen und mehrdimensionalen Modellen.SSMS includes a DAX query editor for querying both tabular and multidimensional models.

DAX StudioDAX Studio

DAX Studio

Bei DAX Studio handelt es sich um ein Open-Source-Clienttool zum Erstellen und Ausführen von DAX-Abfragen für Analysis Services, Power BI Desktop und Power Pivot in Excel-Modellen.DAX Studio is an open-source client tool for creating and running DAX queries against Analysis Services, Power BI Desktop, and Power Pivot in Excel models.

LernressourcenLearning resources

Beim Erlernen von DAX empfiehlt es sich, die Anwendung zu verwenden, mit der Sie auch Ihre Datenmodelle erstellen.When learning DAX, it's best to use the application you'll be using to create your data models. Analysis Services, Power BI Desktop und Power Pivot in Excel verfügen alle über Artikel und Tutorials, die Lektionen zur Erstellung von Measures, berechneten Spalten und Zeilenfiltern mithilfe von DAX enthalten.Analysis Services, Power BI Desktop, and Power Pivot in Excel all have articles and tutorials that include lessons on creating measures, calculated columns, and row-filters by using DAX. Hier sind einige zusätzlichen Ressourcen:Here are some additional resources:

VideosVideos

Microsoft Learn-Pfad Verwenden von DAX in Power BI DesktopUse DAX in Power BI Desktop path in Microsoft Learn.

Der definitive Leitfaden für DAX von Alberto Ferrari und Marco Russo (Microsoft Press).The Definitive Guide to DAX by Alberto Ferrari and Marco Russo (Microsoft Press). Dieser umfassende Leitfaden enthält grundlegende Informationen zu innovativen Hochleistungstechniken für angehende Datenmodellierer und BI-Experten.This extensive guide provides basics to innovative high-performance techniques for beginning data modelers and BI professionals.

DAX Studio