DAX-Grundlagen in Power BI DesktopDAX basics in Power BI Desktop

Dieser Artikel ist für Benutzer gedacht, die noch nicht mit Power BI Desktop gearbeitet haben.This article is for users new to Power BI Desktop. Er gibt eine einfache Einführung in die Verwendung von DAX (Data Analysis Expressions) zum Lösen einfacher Berechnungen und Datenanalyseprobleme.It gives you a quick and easy introduction on how you can use Data Analysis Expressions (DAX) to solve a number of basic calculation and data analysis problems. Es sind Konzeptinformationen, eine Reihe von Aufgaben, die Sie ausführen können, und eine Wissensbeurteilung zum Prüfen des Gelernten enthalten.We’ll go over some conceptual information, a series of tasks you can complete, and a knowledge check to test what you’ve learned. Nach dem Durcharbeiten dieses Artikels sollten Sie über ein gutes Verständnis der wichtigsten Konzepte in DAX verfügen.After completing this article, you should have a good understanding of the most important fundamental concepts in DAX.

Was ist DAX?What is DAX?

DAX ist eine Sammlung von Funktionen, Operatoren und Konstanten, die in einer Formel oder einem Ausdruck verwendet werden können, um einen oder mehrere Werte zu berechnen oder zurückzugeben.DAX is a collection of functions, operators, and constants that can be used in a formula, or expression, to calculate and return one or more values. Einfacher ausgedrückt hilft Ihnen DAX, neue Informationen aus Daten zu erstellen, die sich bereits in Ihrem Modell befinden.Stated more simply, DAX helps you create new information from data already in your model.

Warum ist DAX so wichtig?Why is DAX so important?

Es ist einfach, eine neue Power BI Desktop-Datei zu erstellen und einige Daten in sie zu importieren.It’s easy to create a new Power BI Desktop file and import some data into it. Sie können sogar ohne die Verwendung von DAX-Formeln Berichte erstellen, die wertvolle Einblicke geben.You can even create reports that show valuable insights without using any DAX formulas at all. Was aber, wenn Sie das prozentuale Wachstum über alle Produktkategorien und für unterschiedliche Datumsbereiche analysieren müssen?But, what if you need to analyze growth percentage across product categories and for different date ranges? Oder Sie müssen das jährliche Wachstum im Vergleich mit den Markttrends berechnen?Or, you need to calculate year-over-year growth compared to market trends? DAX-Formeln geben Ihnen diese und noch viele andere wichtige Möglichkeiten.DAX formulas provide this capability and many other important capabilities as well. Das Wissen, wie Sie effektive DAX-Formeln erstellen, hilft Ihnen, Ihre Daten optimal zu nutzen.Learning how to create effective DAX formulas will help you get the most out of your data. Wenn Sie die Informationen erhalten, die Sie benötigen, können Sie mit der Lösung echter Geschäftsprobleme beginnen, die sich auf Ihr Geschäftsergebnis auswirken.When you get the information you need, you can begin to solve real business problems that affect your bottom line. Darin liegt die Stärke von Power BI, die Sie mit DAX erst richtig nutzen können.This is the power of Power BI, and DAX will help you get there.

VoraussetzungenPrerequisites

Vielleicht kennen Sie sich schon mit dem Erstellen von Formeln in Microsoft Excel aus.You might already be familiar with creating formulas in Microsoft Excel. Dieses Wissen hilft Ihnen, DAX zu verstehen, aber selbst wenn Sie keine Erfahrung mit Excel-Formeln haben, helfen Ihnen die hier beschriebenen Konzepte beim Einstieg in DAX-Formeln und beim Lösen von realen BI-Problemen nahezu aus dem Stand.That knowledge will be helpful in understanding DAX, but even if you have no experience with Excel formulas, the concepts described here will help you get started creating DAX formulas and solving real-world BI problems right away.

Wir legen den Schwerpunkt auf das Verstehen der DAX-Formeln, die in Berechnungen verwendet werden, genauer gesagt in Measures und berechneten Spalten.We’ll focus on understanding DAX formulas used in calculations, more specifically, in measures and calculated columns. Sie sollten sich bereits mit Power BI Desktop, dem Importieren von Daten, dem Hinzufügen von Feldern zu Berichten und ebenso mit den grundlegenden Konzepten von Measures und berechneten Spalten auskennen.You should already be familiar with using Power BI Desktop to import data and add fields to a report, and you should also be familiar with fundamental concepts of Measures and Calculated columns.

BeispielarbeitsmappeExample workbook

Die beste Möglichkeit, DAX zu lernen, besteht im Erstellen einiger einfacher Formeln, ihrer Verwendung mit echten Daten und im Beobachten der Ergebnisse.The best way to learn DAX is to create some basic formulas, use them with actual data, and see the results for yourself. Für die Beispiele und Aufgaben in diesem Artikel wird die Datei „Contoso Sales for Power BI Desktop“ verwendet.The examples and tasks here use the Contoso Sales Sample for Power BI Desktop file. Diese Beispieldatei wird auch in Tutorial: Erstellen eigener Measures in Power BI Desktop verwendet wird.This sample file is the same one used in the Tutorial: Create your own measures in Power BI Desktop article.

Fangen wir an!Let's begin!

Den Bezugsrahmen für unser Verständnis von DAX bilden drei grundlegende Konzepte: Syntax, Funktionen und Kontext.We'll frame our understanding of DAX around three fundamental concepts: Syntax, Functions, and Context. Es gibt andere wichtige Konzepte in DAX, aber das Verständnis dieser drei Konzepte bietet die beste Grundlage für die Entwicklung Ihrer DAX-Fertigkeiten.There are other important concepts in DAX, but understanding these three concepts will provide the best foundation on which to build your DAX skills.

SyntaxSyntax

Bevor Sie eigene Formeln erstellen, werfen wir einen Blick auf die DAX-Formelsyntax.Before you create your own formulas, let’s take a look at DAX formula syntax. Zur Syntax gehören die verschiedenen Elemente, aus denen eine Formel besteht, oder, einfacher, wie sich die Formel zusammensetzt.Syntax includes the various elements that make up a formula, or more simply, how the formula is written. Hier sehen Sie als Beispiel eine einfache DAX-Formel für ein Measure:For example, here's a simple DAX formula for a measure:

DAX-Formelsyntax

Diese Formel beinhaltet die folgenden Syntaxelemente:This formula includes the following syntax elements:

A.A. Den Measurenamen Total Sales (Gesamtumsatz)The measure name, Total Sales.

B.B. Der Gleichheitszeichenoperator ( = ), der den Anfang der Formel kennzeichnetThe equals sign operator (=), which indicates the beginning of the formula. Bei der Berechnung gibt er ein Ergebnis zurück.When calculated, it will return a result.

C.C. Die DAX-Funktion SUM, die alle Zahlen in der Spalte Sales[SalesAmount] addiertThe DAX function SUM, which adds up all of the numbers in the Sales[SalesAmount] column. Im weiteren Verlauf erfahren Sie mehr über Funktionen.You’ll learn more about functions later.

D.D. Klammern () , die einen Ausdruck umschließen, der ein oder mehrere Argumente enthältParenthesis (), which surround an expression that contains one or more arguments. Für alle Funktionen ist mindestens ein Argument erforderlich.All functions require at least one argument. Ein Argument übergibt einen Wert an eine Funktion.An argument passes a value to a function.

E.E. Die referenzierte Tabelle Sales (Umsätze)The referenced table, Sales.

F.F. Die referenzierte Spalte [SalesAmount] in der Tabelle „Sales“The referenced column, [SalesAmount], in the Sales table. Dank dieses Arguments weiß die Funktion SUM, für welche Spalte sie eine SUMME aggregieren soll.With this argument, the SUM function knows on which column to aggregate a SUM.

Beim Versuch, eine DAX-Formel zu verstehen, ist es oft hilfreich, jedes der Elemente in eine Sprache aufzuschlüsseln, die Sie im Alltag verwenden.When trying to understand a DAX formula, it's often helpful to break down each of the elements into a language you think and speak every day. Beispielsweise können Sie diese Formel wie folgt lesen:For example, you can read this formula as:

Für das Measure mit dem Namen „Total Sales“ (Gesamtumsatz) berechne (=) die SUMME der Werte in der Spalte „[SalesAmount]“ (Umsatzbetrag) in der Tabelle „Sales“ (Umsätze).For the measure named Total Sales, calculate (=) the SUM of values in the [SalesAmount ] column in the Sales table.

Wenn es zu einem Bericht hinzugefügt wird, berechnet dieses Measure Werte, indem es die Umsatzbeträge für jedes der anderen Felder, die wir aufnehmen, addiert und zurückgibt, z. B. Mobiltelefone in den USA.When added to a report, this measure calculates and returns values by summing up sales amounts for each of the other fields we include, for example, Cell Phones in the USA.

Sie denken jetzt vielleicht: „Macht dieses Measure nicht etwas, was ich einfach durch Hinzufügen des Felds ‚SalesAmount‘ (Umsatzbetrag) zum Bericht erreichen kann?“You might be thinking, "Isn’t this measure doing the same thing as if I were to just add the SalesAmount field to my report?" Ja, stimmt.Well, yes. Es gibt aber einen guten Grund, ein eigenes Measure zum Addieren von Werten aus dem Feld „SalesAmount“ zu verwenden: Wir können es als Argument in anderen Formeln verwenden.But, there’s a good reason to create our own measure that sums up values from the SalesAmount field: We can use it as an argument in other formulas. Zu Beginn kann das verwirrend sein, aber in dem Maß, wie Ihre Fähigkeiten im Umgang mit DAX-Formeln zunehmen, macht Ihr Wissen über dieses Measure Ihre Formeln und Modelle effizienter.This may seem a little confusing now, but as your DAX formula skills grow, knowing this measure will make your formulas and your model more efficient. Und Sie finden das Measure „Total Sales“ (Gesamtumsatz) im weiteren Verlauf in anderen Formeln.In fact, you’ll see the Total Sales measure showing up as an argument in other formulas later on.

Gehen wir noch ein paar weitere Dinge in dieser Formel durch.Let’s go over a few more things about this formula. Insbesondere haben wir eine Funktion SUM eingeführt.In particular, we introduced a function, SUM. Funktionen sind vorbereitete Formeln, die das Ausführen komplexer Berechnungen und Manipulationen mit Zahlen, Datumswerten, Uhrzeiten, Text und mehr erleichtern.Functions are pre-written formulas that make it easier to do complex calculations and manipulations with numbers, dates, time, text, and more. Im weiteren Verlauf erfahren Sie mehr über Funktionen.You'll learn more about functions later.

Sie sehen außerdem, dass dem Spaltennamen „[SalesAmount]“ der Name der Tabelle („Sales“) voransteht, in die die Spalte gehört.You also see that the column name [SalesAmount] was preceded by the Sales table in which the column belongs. Dieser Name wird als ein vollqualifizierter Spaltenname bezeichnet, da er den Spaltennamen mit dem vorangestellten Tabellennamen enthält.This name is known as a fully qualified column name in that it includes the column name preceded by the table name. Für Spalten, auf die in derselben Tabelle verwiesen wird, ist nicht erforderlich, dass der Tabellenname in der Formel enthalten ist. Dadurch werden lange Formeln, die auf viele Spalten verweisen, kürzer und leichter lesbar.Columns referenced in the same table don't require the table name be included in the formula, which can make long formulas that reference many columns shorter and easier to read. Allerdings empfiehlt es sich, den Tabellennamen selbst innerhalb derselben Tabelle in Ihre Measureformeln mit aufzunehmen.However, it's a good practice to include the table name in your measure formulas, even when in the same table.

Hinweis

Wenn ein Tabellenname Leerzeichen, reservierte Schlüsselwörter oder unzulässige Zeichen enthält, müssen Sie den Tabellennamen in einfache Anführungszeichen einschließen.If a table name contains spaces, reserved keywords, or disallowed characters, you must enclose the table name in single quotation marks. Sie müssen Tabellennamen auch in Anführungszeichen einschließen, wenn der Name Zeichen außerhalb des alphanumerischen ANSI-Zeichenbereichs enthält, unabhängig davon, ob diese Zeichen in Ihrem Gebietsschema unterstützt werden oder nicht.You’ll also need to enclose table names in quotation marks if the name contains any characters outside the ANSI alphanumeric character range, regardless of whether your locale supports the character set or not.

Es ist wichtig, dass ihre Formeln die richtige Syntax aufweisen.It’s important your formulas have the correct syntax. In den meisten Fällen wird ein Syntaxfehler zurückgegeben, wenn die Syntax fehlerhaft ist.In most cases, if the syntax isn't correct, a syntax error is returned. In anderen Fällen ist vielleicht die Syntax richtig, aber die zurückgegebenen Werte entsprechen nicht Ihren Erwartungen.In other cases, the syntax may be correct, but the values returned might not be what you're expecting. Der DAX-Editor in Power BI Desktop beinhaltet ein Vorschlagsfeature, das zum Erstellen syntaktisch korrekter Formeln dient, indem es Ihnen hilft, die richtigen Elemente auszuwählen.The DAX editor in Power BI Desktop includes a suggestions feature, used to create syntactically correct formulas by helping you select the correct elements.

Erstellen wir eine einfache Formel.Let’s create a simple formula. Diese Aufgabe vertieft Ihr Verständnis für die Formelsyntax und dafür, wie die Vorschlagsfunktion in der Bearbeitungsleiste Ihnen helfen kann.This task will help you further understand formula syntax and how the suggestions feature in the formula bar can help you.

Aufgabe: Erstellen einer MeasureformelTask: Create a measure formula

  1. Laden Sie die Power BI Desktop-Datei Contoso Sales Sample herunter, und öffnen Sie diese.Download and open the Contoso Sales Sample Power BI Desktop file.

  2. Klicken Sie in der Berichtsansicht in der Feldliste mit der rechten Maustaste auf die Tabelle Sales und dann auf Neues Measure.In Report view, in the field list, right-click the Sales table, and then select New Measure.

  3. Ersetzen Sie in der Bearbeitungsleiste Measure, indem Sie einen neuen Measurenamen wie Previous Quarter Sales (Umsätze des Vorquartals) eingeben.In the formula bar, replace Measure by entering a new measure name, Previous Quarter Sales.

  4. Geben Sie nach dem Gleichheitszeichen die ersten paar Buchstaben CAL ein, und doppelklicken Sie dann die zu verwendende Funktion.After the equals sign, type the first few letters CAL, and then double-click the function you want to use. In dieser Formel sollten Sie die CALCULATE-Funktion verwenden.In this formula, you want to use the CALCULATE function.

    Sie verwenden die Funktion CALCULATE, um die zu addierenden Beträge mithilfe eines Arguments, das wir der Funktion CALCULATE übergeben, zu filtern.You’ll use the CALCULATE function to filter the amounts we want to sum by an argument we pass to the CALCULATE function. Dies wird als Verschachteln von Funktionen bezeichnet.This is referred to as nesting functions. Die Funktion CALCULATE weist mindestens zwei Argumente auf.The CALCULATE function has at least two arguments. Das erste ist der auszuwertende Ausdruck und das zweite ein Filter.The first is the expression to be evaluated, and the second is a filter.

  5. Geben Sie nach der öffnenden Klammer ( der CALCULATE-Funktion SUM gefolgt von einer weiteren öffnenden Klammer ein ( .After the opening parenthesis ( for the CALCULATE function, type SUM followed by another opening parenthesis (.

    Als Nächstes müssen Sie ein Argument an die SUM-Funktion übergeben.Next, we'll pass an argument to the SUM function.

  6. Beginnen Sie mit der Eingabe von Sal, und wählen Sie dann Sales[SalesAmount] aus. Fügen Sie dann eine schließende Klammer ) ein.Begin typing Sal, and then select Sales[SalesAmount], followed by a closing parenthesis ).

    Dies ist das erste Ausdrucksargument für unsere CALCULATE-Funktion.This is the first expression argument for our CALCULATE function.

  7. Geben Sie ein Komma ( , ) gefolgt von einem Leerzeichen ein, um den ersten Filter anzugeben, und geben Sie dann PREVIOUSQUARTER ein.Type a comma (,) followed by a space to specify the first filter, and then type PREVIOUSQUARTER.

    Sie verwenden die PREVIOUSQUARTER-Zeitintelligenzfunktion, um die SUM-Ergebnisse nach dem vorherigen Quartal zu filtern.You’ll use the PREVIOUSQUARTER time intelligence function to filter SUM results by the previous quarter.

  8. Geben Sie nach der öffnenden Klammer ( für die PREVIOUSQUARTER-Funktion Calendar[DateKey] ein.After the opening parenthesis ( for the PREVIOUSQUARTER function, type Calendar[DateKey].

    Die Funktion PREVIOUSQUARTER hat ein Argument, eine Spalte, die einen zusammenhängenden Bereich von Datumswerten enthält.The PREVIOUSQUARTER function has one argument, a column containing a contiguous range of dates. In diesem Fall ist dies die DateKey-Spalte in der Calendar-Tabelle.In our case, that's the DateKey column in the Calendar table.

  9. Schließen Sie beide an die Funktion PREVIOUSQUARTER und an die Funktion CALCULATE übergebenen Argumente mit zwei schließenden Klammern )) .Close both the arguments being passed to the PREVIOUSQUARTER function and the CALCULATE function by typing two closing parenthesis )).

    Die Formel sollte nun wie folgt aussehen:Your formula should now look like this:

    Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  10. Klicken Sie auf das HäkchenSelect the checkmark Häkchensymbol in der Bearbeitungsleiste, oder drücken Sie die EINGABETASTE, um die Formel zu überprüfen und sie zum Modell hinzuzufügen.in the formula bar or press Enter to validate the formula and add it to the model.

Sie haben‘s geschafft!You did it! Sie haben gerade mithilfe von DAX ein komplexes Measure erstellt.You just created a complex measure by using DAX, and not an easy one at that. Was diese Formel tut – sie berechnet die Gesamtumsätze für das Vorquartal, abhängig von den in einem Bericht angewendeten Filtern.What this formula will do is calculate the total sales for the previous quarter, depending on the filters applied in a report. Wenn wir z. B. „SalesAmount“ (Umsatzbetrag) und unser neues Measure „Previous Quarter Sales“ in einem Diagramm darstellen und dann „Year“ (Jahr) und „QuarterOfYear“ („QuartalImJahr“) als Datenschnitte hinzufügen, sieht das Ergebnis folgendermaßen aus:For example, if we put SalesAmount and our new Previous Quarter Sales measure in a chart, and then add Year and QuarterOfYear as Slicers, we’d get something like this:

Diagramm „Previous Quarter Sales“ und „SalesAmount“

Damit wurden mehrere wichtige Aspekte von DAX-Formeln eingeführt:You were just introduced to several important aspects of DAX formulas:

  • Diese Formel enthielt zwei Funktionen.This formula included two functions. PREVIOUSQUARTER ist eine Zeitintelligenzfunktion ist, die als Argument verschachtelt ist, das an die Filterfunktion CALCULATE übergeben wird.PREVIOUSQUARTER, a time intelligence function, is nested as an argument passed to CALCULATE, a filter function.

    DAX-Formeln können bis zu 64 geschachtelte Funktionen enthalten.DAX formulas can contain up to 64 nested functions. Es ist unwahrscheinlich, dass eine Formel jemals so viele verschachtelte Funktionen enthalten sollte.It’s unlikely a formula would ever contain so many nested functions. Eine solche Formel wäre tatsächlich schwer zu erstellen und zu debuggen, und wahrscheinlich wäre sie auch nicht sehr schnell.In fact, such a formula would be difficult to create and debug, and it probably wouldn’t be very fast either.

  • In dieser Formel haben Sie außerdem Filter verwendet.In this formula, you also used filters. Filter grenzen den zu berechnenden Bereich ein.Filters narrow down what will be calculated. In diesem Fall haben Sie einen Filter als Argument ausgewählt, der tatsächlich das Ergebnis einer weiteren Funktion ist.In this case, you selected one filter as an argument, which is actually the result of another function. Sie erfahren später noch mehr über Filter.You will learn more about filters later.

  • Sie haben die Funktion CALCULATE verwendet.You used the CALCULATE function. Diese ist eine der leistungsstärksten Funktionen in DAX.This function is one of the most powerful functions in DAX. Beim Erstellen von Modellen und komplexeren Formeln werden Sie diese Funktion wahrscheinlich häufig verwenden.As you author models and create more complex formulas, you'll likely use this function many times. Die weitere Erörterung der Funktion CALCULATE würde den Rahmen dieses Artikels sprengen. Sie sollten ihr mit wachsendem Wissen über DAX aber besondere Aufmerksamkeit schenken.Although further discussion about the CALCULATE function is outside the scope of this article, as your knowledge of DAX grows, pay special attention to it.

Syntax-KursquizSyntax QuickQuiz

  1. Wozu dient diese Schaltfläche auf der Bearbeitungsleiste?What does this button on the formula bar do?

    Schaltflächenauswahl

  2. Was umgibt immer einen Spaltennamen in einer DAX-Formel?What always surrounds a column name in a DAX formula?

Die Antworten finden Sie am Ende dieses Artikels.Answers are provided at the end of this article.

FunktionenFunctions

Funktionen sind vordefinierte Formeln, die Berechnungen ausführen, indem sie bestimmte Werte, die Argumente genannt werden, in einer bestimmten Reihenfolge oder Struktur verwenden.Functions are predefined formulas that perform calculations by using specific values, called arguments, in a particular order or structure. Als Argumente können andere Funktionen, eine andere Formel, ein Ausdruck, Spaltenverweise, Zahlen, Text, logische Werte wie WAHR oder FALSCH oder Konstanten dienen.Arguments can be other functions, another formula, expression, column references, numbers, text, logical values such as TRUE or FALSE, or constants.

DAX enthält die folgenden Kategorien von Funktionen: Datum und Uhrzeit, Zeitintelligenz, Information, Logisch, Mathematisch, Statistisch, Text, Über-/Untergeordnet sowie sonstige Funktionen.DAX includes the following categories of functions: Date and Time, Time Intelligence, Information, Logical, Mathematical, Statistical, Text, Parent/Child, and Other functions. Wenn Sie mit Funktionen in Excel-Formeln vertraut sind, werden Ihnen viele der Funktionen in DAX ähnlich vorkommen; Sie sind jedoch in diesen Punkten einzigartig:If you’re familiar with functions in Excel formulas, many of the functions in DAX will appear similar to you; however, DAX functions are unique in the following ways:

  • Eine DAX-Funktion verweist immer auf eine gesamte 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.

  • Wenn Sie Berechnungen zeilenweise anpassen müssen, bietet DAX Funktionen, bei denen Sie den Wert der aktuellen Zeile oder einen damit zusammenhängenden Wert als eine Art Argument verwenden 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 argument, to perform calculations that vary by context. Sie erfahren später noch mehr über Kontext.You'll learn more about context later.

  • DAX beinhaltet zahlreiche Funktionen, die eine Tabelle anstelle eines Werts zurückgeben.DAX includes many functions that return a table rather than a value. Die Tabelle wird nicht angezeigt, aber wird verwendet, um die Eingabe für andere Funktionen bereitzustellen.The table isn't displayed, but is used to provide input to other functions. Beispielsweise können Sie eine Tabelle abrufen und dann die diskreten Werte darin zählen oder dynamische Summen über gefilterte 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.

  • DAX beinhaltet eine Vielzahl von Zeitintelligenzfunktionen.DAX includes a variety of time intelligence functions. Mit diesen Funktionen können Sie Datumsbereiche definieren oder auswählen und dynamische Berechnungen auf ihrer Grundlage durchführen.These functions let you define or select date ranges, and perform dynamic calculations based on them. Beispielsweise können Sie Summen über parallele Zeiträume vergleichen.For example, you can compare sums across parallel periods.

  • Excel verfügt über die beliebte Funktion SVERWEIS.Excel has a popular function, VLOOKUP. DAX-Funktionen nehmen keine Zelle oder einen Zellbereich als Verweis an, wie SVERWEIS in Excel.DAX functions don’t take a cell or cell range as a reference like VLOOKUP does in Excel. DAX-Funktionen nehmen eine Spalte oder eine Tabelle als Verweis an.DAX functions take a column or a table as a reference. Bedenken Sie, dass Sie in Power BI Desktop mit einem relationalen Datenmodell arbeiten.Keep in mind, in Power BI Desktop you’re working with a relational data model. Das Nachschlagen von Werten in einer anderen Tabelle ist einfach, und in den meisten Fällen müssen Sie dafür gar keine Formel erstellen.Looking up values in another table is easy, and in most cases you don’t need to create any formulas at all.

    Wie Sie sehen können, können Funktionen in DAX Ihnen beim Erstellen leistungsfähiger Formeln helfen.As you can see, functions in DAX can help you create powerful formulas. Wir haben wirklich gerade eben nur die Grundlagen von Funktionen berührt.We really only touched on the basics of functions. Mit wachsenden DAX-Fertigkeiten erstellen Sie Formeln, die viele verschiedene Funktionen verwenden.As your DAX skills grow, you'll create formulas by using many different functions. Eine der besten Quellen für Details zu jeder der DAX-Funktionen ist die DAX-Funktionsreferenz.One of the best places to learn details about each of the DAX functions is in the DAX Function Reference.

Funktionen-KurzquizFunctions QuickQuiz

  1. Worauf verweist eine Funktion in jedem Fall?What does a function always reference?
  2. Kann eine Formel mehr als eine Funktion enthalten?Can a formula contain more than one function?
  3. Welche Kategorie von Funktionen würden Sie verwenden, um zwei Textzeichenfolgen zu einer Zeichenfolge zu verketten?What category of functions would you use to concatenate two text strings into one string?

Die Antworten finden Sie am Ende dieses Artikels.Answers are provided at the end of this article.

KontextContext

Kontext ist eins der wichtigsten Konzepte für das Verständnis von DAX.Context is one of the most important DAX concepts to understand. Es gibt zwei Arten von Kontext in DAX; Zeilenkontext und Filterkontext.There are two types of context in DAX: row context and filter context. Wir betrachten zuerst den Zeilenkontext.We’ll first look at row context.

ZeilenkontextRow context

Den Zeilenkontext kann man sich am einfachsten als die aktuelle Zeile vorstellen.Row context is most easily thought of as the current row. Er gilt immer, wenn eine Funktion eine Formel aufweist, die Filter anwendet, um eine einzelne Zeile in der Tabelle zu identifizieren.It applies whenever a formula has a function that applies filters to identify a single row in a table. Die Funktion wendet inhärent einen Zeilenkontext für jede einzelne Zeile der Tabelle an, die sie filtert.The function will inherently apply a row context for each row of the table over which it is filtering. Diese Art Zeilenkontext betrifft meistens Measures.This type of row context most often applies to measures.

FilterkontextFilter context

Filterkontext ist ein bisschen schwieriger zu verstehen als Zeilenkontext.Filter context is a little more difficult to understand than row context. Sie können sich einen Filterkontext am einfachsten so vorstellen: Ein oder mehrere Filter werden in einer Berechnung angewendet, die ein Ergebnis oder einen Wert bestimmt.You can most easily think of filter context as: One or more filters applied in a calculation that determines a result or value.

Filterkontext ersetzt Zeilenkontext nicht, er gilt vielmehr zusätzlich zum Zeilenkontext.Filter context doesn’t exist in place of row context; rather, it applies in addition to row context. Wenn Sie beispielsweise die in eine Berechnung aufzunehmenden Werte weiter eingrenzen möchten, können Sie einen Filterkontext anwenden, der nicht nur den Zeilenkontext, sondern auch einen bestimmten Wert (Filter) in diesem Zeilenkontext angibt.For example, to further narrow down the values to include in a calculation, you can apply a filter context, which not only specifies the row context, but also specifies a particular value (filter) in that row context.

Ein Filterkontext lässt sich in Ihren Berichten leicht erkennen.Filter context is easily seen in your reports. Wenn Sie z. B. einer Visualisierung „TotalCost“ (Gesamtkosten) hinzufügen und dann „Year“ und „Region“, definieren Sie einen Filterkontext, der eine Teilmenge der Daten auf der Basis eines bestimmten Jahrs und einer bestimmten Region auswählt.For example, when you add TotalCost to a visualization, and then add Year and Region, you are defining a filter context that selects a subset of data based on a given year and region.

Warum ist der Filterkontext so wichtig für DAX?Why is filter context so important to DAX? Zwar kann ein Filterkontext am einfachsten durch Hinzufügen von Feldern zu einer Visualisierung angewendet werden, er kann jedoch auch in einer DAX-Formel durch Definieren eines Filters mithilfe von Funktionen wie ALL, RELATED, FILTER, CALCULATE, durch Beziehungen und andere Measures und Spalten angewendet werden.Because while filter context can most easily be applied by adding fields to a visualization, filter context can also be applied in a DAX formula by defining a filter using functions such as ALL, RELATED, FILTER, CALCULATE, by relationships, and by other measures and columns. Sehen wir uns als Beispiel die folgende Formel in einem Measure mit dem Namen „Store Sales“ (Ladenumsätze) an:For example, let’s look at the following formula in a measure named Store Sales:

Measure „Store Sales“

Um diese Formel besser zu verstehen, können wir sie aufgliedern, wie andere Formeln auch.To better understand this formula, we can break it down, much like with other formulas.

Diese Formel beinhaltet die folgenden Syntaxelemente:This formula includes the following syntax elements:

A.A. Den Measurenamen Store SalesThe measure name, Store Sales.

B.B. Der Gleichheitszeichenoperator ( = ), der den Anfang der Formel kennzeichnetThe equals sign operator (=), which indicates the beginning of the formula.

C.C. Die Funktion CALCULATE, die einen Ausdruck als Argument in einem Kontext auswertet, der durch die angegebenen Filter verändert wirdThe CALCULATE function, which evaluates an expression, as an argument, in a context that is modified by the specified filters.

D.D. Klammern () , die einen Ausdruck umschließen, der ein oder mehrere Argumente enthältParenthesis (), which surround an expression containing one or more arguments.

E.E. Ein Measure [Total Sales] in derselben Tabelle wie ein Ausdruck.A measure [Total Sales] in the same table as an expression. Das Measure „Total Sales“ hat die Formel: =SUM(Sales[SalesAmount]).The Total Sales measure has the formula: =SUM(Sales[SalesAmount]).

F.F. Ein Komma ( , ), das das erste Ausdrucksargument vom Filterargument trenntA comma (,), which separates the first expression argument from the filter argument.

G.G. Die vollqualifizierte referenzierte Spalte Channel[ChannelName] .The fully qualified referenced column, Channel[ChannelName]. Dies ist unser Zeilenkontext.This is our row context. Jede Zeile in dieser Spalte bezeichnet einen Kanal, z. B „Store“ oder „Online“.Each row in this column specifies a channel, such as Store or Online.

H.H. Der Einzelwert Store als FilterThe particular value, Store, as a filter. Dies ist unser Filterkontext.This is our filter context.

Diese Formel stellt sicher, dass nur Umsatzwerte, die durch das Measure „Total Sales“ definiert sind, nur für die Zeilen in der Spalte „Channel[ChannelName]“, die den Wert Store als Filter aufweisen, berechnet werden.This formula ensures only sales values defined by the Total Sales measure are calculated only for rows in the Channel[ChannelName] column, with the value Store used as a filter.

Sie können sich sicher vorstellen, dass die Möglichkeit, Filterkontexte innerhalb einer Formel zu definieren, ungeheuer leistungsfähige Möglichkeiten bietet.As you can imagine, being able to define filter context within a formula has immense and powerful capabilities. Die Möglichkeit, in einer zugeordneten Tabelle nur auf einen bestimmten Wert zu verweisen, ist dafür nur ein Beispiel.The ability to reference only a particular value in a related table is just one such example. Machen Sie sich keine Gedanken, wenn Sie Kontext nicht auf Anhieb voll und ganz verstehen.Don’t worry if you do not completely understand context right away. Wenn Sie eigene Formeln erstellen, werden Sie Kontext und dessen Bedeutung in DAX besser verstehen.As you create your own formulas, you will better understand context and why it’s so important in DAX.

Kontext-KurzquizContext QuickQuiz

  1. Welche zwei Arten von Kontext gibt es?What are the two types of context?
  2. Was ist Filterkontext?What is filter context?
  3. Was ist Zeilenkontext?What is row context?

Die Antworten finden Sie am Ende dieses Artikels.Answers are provided at the end of this article.

ZusammenfassungSummary

Jetzt, da Sie über ein grundlegendes Verständnis der wichtigsten Konzepte in DAX verfügen, können Sie beginnen, auf eigene Faust DAX-Formeln für Measures zu erstellen.Now that you have a basic understanding of the most important concepts in DAX, you can begin creating DAX formulas for measures on your own. DAX ist ein bisschen schwierig zu lernen, Ihnen stehen aber viele Ressourcen zur Verfügung.DAX can indeed be a little tricky to learn, but there are many resources available to you. Nach dem Lesen dieses Artikels und ein paar Experimenten mit eigenen Formeln können Sie mehr über andere DAX-Konzepte und -Formeln lernen, die Ihnen beim Lösen Ihrer Geschäftsprobleme helfen können.After reading through this article and experimenting with a few of your own formulas, you can learn more about other DAX concepts and formulas that can help you solve your own business problems. Ihnen stehen viele DAX-Ressourcen zur Verfügung. Am wichtigsten ist die DAX-Referenz (Data Analysis Expressions).There are many DAX resources available to you; most important is the Data Analysis Expressions (DAX) Reference.

Da DAX schon seit mehreren Jahren in anderen Microsoft BI-Tools wie Power Pivot und tabellarischen Modellen von Analysis Services vorhanden ist, stehen gute Informationen in großer Menge zur Verfügung.Because DAX has been around for several years in other Microsoft BI tools such as Power Pivot and Analysis Services Tabular models, there’s a lot of great information out there. Sie finden weitere Informationen in Büchern, Whitepapers und Blogs sowohl von Microsoft als auch von führenden BI-Experten.You can find more information in books, whitepapers, and blogs from both Microsoft and leading BI professionals. Das DAX Resource Center Wiki auf TechNet ist ebenfalls ein hervorragender Ausgangspunkt.The DAX Resource Center Wiki on TechNet is also a great place to start.

Kurzquiz-AntwortenQuickQuiz answers

Syntax:Syntax:

  1. Überprüft das Measure und gibt es in das Modell ein.Validates and enters the measure into the model.
  2. Eckige Klammern [].Brackets [].

Funktionen:Functions:

  1. Eine Tabelle und eine Spalte.A table and a column.
  2. Ja.Yes. Eine Formel kann bis zu 64 verschachtelte Funktionen aufweisen.A formula can contain up to 64 nested functions.
  3. Textfunktionen.Text functions.

Kontext:Context:

  1. Zeilenkontext und Filterkontext.Row context and filter context.
  2. Ein oder mehrere Filter in einer Berechnung, die einen einzelnen Wert bestimmt.One or more filters in a calculation that determines a single value.
  3. Die aktuelle Zeile.The current row.