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 soll Ihnen kurz eine einfache Einführung in die Verwendung von DAX (Data Analysis Expressions) zum Lösen einer Reihe einfacher Berechnungen und Datenanalyseprobleme geben.It’s meant to give 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. Wir gehen einige Konzeptinformationen, eine Reihe von Aufgaben, die Sie ausführen können, und ein paar Quizfragen zum Prüfen des Gelernten durch.We’ll go over some conceptual information, a series of tasks you can complete, and a few quizzes 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 recht einfach, eine neue Power BI Desktop-Datei zu erstellen und einige Daten in sie zu importieren.It’s quite 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 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. Das ist die Power in Power BI, und DAX hilft Ihnen, sie freizusetzen.This is the power in 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’re going to 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 Power BI Desktop, importing data, adding 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 ein paar echten Daten und im Beobachten der Ergebnisse.The best way to learn DAX is to create some basic formulas, use it with some actual data, and see the results for yourself. Für die Beispiele und Aufgaben in diesem Artikel wird die Contoso Sales for Power BI Desktop Preview-Datei verwendet.The examples and tasks here use the Contoso Sales Sample for Power BI Desktop Preview file. Das ist die gleiche Beispieldatei, die im Artikel „Tutorial: Erstellen eigener Measures in Power BI Desktop“ verwendet wird.This is the same sample file used in the Tutorial: Create your own measures in Power BI Desktop article. Sie können sie hier herunterladen.You can download it here.

Fangen wir an!Let's begin!

Den Bezugsrahmen für unser Verständnis von DAX bilden drei grundlegende Konzepte: Syntax, Funktionen und Kontext.We will frame our understanding of DAX around three fundamental concepts: Syntax, Functions, and Context. Natürlich gibt es andere wichtige Konzepte in DAX, aber das Verständnis dieser drei Konzepte bietet die beste Grundlage für die Entwicklung Ihrer DAX-Fertigkeiten.Of course, 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. Betrachten wir als Beispiel eine einfache DAX-Formel für ein Measure.For example, let’s look at a simple DAX formula for a measure.

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 (=) kennzeichnet den Anfang der Formel.The equals sign operator (=) 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 addiert alle Zahlen in der Spalte Sales[SalesAmount].The DAX function SUM 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 () umschließen einen Ausdruck, der ein oder mehrere Argumente enthält.Parenthesis () surround an expression containing 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.

Bei dem 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 is 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. Das mag jetzt ein bisschen verwirrend erscheinen, aber in dem Maß, wie Ihre Fähigkeiten im Umgang mit DAX-Formeln zunehmen, macht dieses Wissen Ihre Formeln und Modelle effizienter.This may seem a little confusing now, but as your DAX formula skills grow, knowing this 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. Sie erfahren später mehr über Funktionen.You will learn more about functions later.

Sie sehen außerdem, dass der Spalte „[SalesAmount]“ der Name der Tabelle („Sales“) voransteht, in die die Spalte gehört.You also see the column [SalesAmount] was preceded by the table Sales in which the column belongs. Dies wird als ein vollqualifizierter Spaltenname bezeichnet, insofern als er den Spaltennamen mit vorangestelltem Tabellennamen enthält.This is known as a fully qualified column name in that it includes the column name preceded by the table name. Wenn auf Spalten in der gleichen Tabelle verwiesen wird, muss der Tabellenname nicht in die Formel aufgenommen werden.Columns referenced in the same table do not require the table name be included in the formula. Dadurch können lange Formeln, die auf viele verschiedene Spalten verweisen, kürzer und leichter lesbar werden.This can make long formulas that reference many columns shorter and easier to read. Allerdings empfiehlt es sich, den Tabellennamen in Ihre Measureformeln mit aufzunehmen, selbst innerhalb derselben Tabelle.However, it's 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’ll need to 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 is not correct, a syntax error will be returned. In anderen Fällen ist vielleicht die Syntax richtig, aber die zurückgegebenen Werte entsprechen ganz und gar nicht Ihren Erwartungen.In other cases, the syntax may be correct, but the values returned might not be what you are expecting. Der DAX-Editor in Power BI Desktop beinhaltet Vorschläge; eine Funktion, die zum Erstellen syntaktisch korrekter Formeln dient, indem sie Ihnen hilft, die richtigen Elemente auszuwählen.The DAX editor in Power BI Desktop includes suggestions; a 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

Um diese Aufgabe auszuführen, müssen Sie die Contoso Sales Power BI Desktop-Beispieldatei öffnen.To complete this task, you’ll need to open the Contoso Sales Sample Power BI Desktop file.

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

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

  3. Geben Sie hinter dem Gleichheitszeichen SUM und danach eine öffnende Klammer ein.After the equals sign, type SUM followed by an opening parenthesis.

    Statt einen Spaltennamen einzugeben, um gleich zu addieren, geben wir eine weitere Funktion ein, um die zu addierenden Daten zu filtern .Rather than type a column name to sum up right away, we’re going to enter another function, to filter the data we want to sum up.

  4. Geben Sie zwischen den Klammern CALCULATE und danach eine öffnende Klammer ein.Between the parentheses, type CALCULATE, followed by an opening parenthesis.

    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 what’s 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 second, a filter.

  5. Geben Sie zwischen den Klammern () für die Funktion CALCULATE den Wert Sales[SalesAmount] ein.Between the parenthesis () for the CALCULATE function, type Sales[SalesAmount]. Dies ist das erste Ausdrucksargument für unsere CALCULATE-Funktion.This is the first expression argument for our CALCULATE function.

  6. Geben Sie ein Komma (,) ein, um den ersten Filter anzugeben, und geben Sie dann PREVIOUSQUARTER (Vorquartal) und danach eine öffnende Klammer ein.Type a comma (,) to specify the first filter, then type PREVIOUSQUARTER followed by an opening parenthesis..

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

  7. Geben Sie zwischen den Klammern () für die Funktion PREVIOUSQUARTER den Wert Calendar[DateKey] ein.Between the 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. >

  8. Achten Sie darauf, dass beide an die Funktion PREVIOUSQUARTER und an die Funktion CALCULATE übergebenen Argumente mit zwei schließenden Klammern )) geschlossen werden.Make sure both the arguments being passed to the PREVIOUSQUARTER function and the CALCULATE function are closed by two closing parentheses )).

    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]))

  9. Klicken Sie auf das Häkchen in der Bearbeitungsleiste, oder drücken Sie die EINGABETASTE, um die Formel zu überprüfen und sie zum Modell hinzuzufügen.Click the checkmark 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 Measure erstellt, und noch dazu kein einfaches.You just created a measure 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 ein Diagramm einsetzen und dann „Year“ (Jahr) und „QuarterOfYear“ („QuartalImJahr“) als Datenschnitte hinzufügen, kommt etwas in dieser Art heraus:For example, if we put SalesAmount and our new Previous Quarter Sales measure in a chart, and then added Year and QuarterOfYear as Slicers, we’d get something like this:

Sie wurden gerade mit einigen wichtigen Aspekten von DAX-Formeln bekannt gemacht.You were just introduced to several important aspects of DAX formulas. Erstens enthielt diese Formel zwei Funktionen.First, this formula included two functions. Beachten Sie, dass PREVIOUSQUARTER, eine Zeitintelligenzfunktion, als Argument verschachtelt ist, das an CALCULATE, eine Filterfunktion, übergeben wird.Notice 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 sehr schwer zu erstellen und zu debuggen, und wahrscheinlich wäre sie auch nicht sehr schnell.In fact, such a formula would be very 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.

Schließlich haben Sie die Funktion CALCULATE verwendet.Finally, you used the CALCULATE function. Dies ist eine der leistungsstärksten Funktionen in DAX.This is one of the most powerful functions in DAX. Beim Erstellen von Modellen und komplexeren Formeln werden Sie diese Funktion wahrscheinlich viele Male verwenden.As you author models and create more complex formulas, you will likely use this function many times. Die Erörterung der Funktion CALCULATE würde den Rahmen dieses Artikels sprengen, Sie sollten ihr mit wachsendem Wissen über DAX aber besondere Aufmerksamkeit schenken.Discussing the CALCULATE function is outside the scope of this article, but as your knowledge of DAX grows, pay special attention to this one.

Syntax-KursquizSyntax QuickQuiz

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

  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 und 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 will 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, wird aber verwendet, um die Eingabe für andere Funktionen bereitzustellen.The table is not 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 eine sehr beliebte Funktion, SVERWEIS.Excel has a very 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 wirklich recht einfach, und in den meisten Fällen müssen Sie dafür gar keine Formel erstellen.Looking up values in another table is really quite easy, and in most cases you don’t need to create any formula at all.

    Wie Sie sehen können, können Funktionen in DAX Ihnen beim Erstellen sehr leistungfähiger Formeln helfen.As you can see, functions in DAX can help you create very 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 using many different functions. Eine der besten Quellen für weitere Informationen zu jeder der DAX-Funktionen ist die DAX-Funktionsreferenz.One of the best places to learn details about each of 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. Um beispielsweise die in eine Berechnung aufzunehmenden Werte weiter einzugrenzen, können Sie einen Filterkontext anwenden, der nicht nur den Zeilenkontext angibt, sondern auch einen bestimmten Wert (Filter) in diesem Zeilenkontext.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 only 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:

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 Sales.The measure name Store Sales.

B.B. Der Gleichheitszeichenoperator (=) kennzeichnet den Anfang der Formel.The equals sign operator (=) indicates the beginning of the formula.

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

D.D. Klammern () umschließen einen Ausdruck, der ein oder mehrere Argumente enthält.Parenthesis () 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 (,) trennt das erste Ausdrucksargument vom Filterargument.A comma (,) 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 : „Store“, „Online“ usw.Each row in this column specifies a channel: Store, Online, etc.

H.H. Der Einzelwert Store als Filter.The 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”, 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.Being able 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.

DAX ist schon seit mehreren Jahren in anderen Microsoft BI-Tools anzutreffen, wie Power Pivot und tabellarischen Modellen von Analysis Services, daher stehen gute Informationen in großer Menge zur Verfügung.DAX has been around for several years in other Microsoft BI tools such as Power Pivot and Analysis Services Tabular models, so 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.