Freigeben über


Erlernen der DAX-Grundlagen in Power BI Desktop

Benutzer, die mit Power BI Desktop noch nicht vertraut sind, können diesen Artikel als schnelle und einfache Einführung in die Verwendung von Data Analysis Expressions (DAX) verwenden, um viele grundlegende Berechnungen und Datenanalyseprobleme zu lösen. Wir werden einige konzeptionelle Informationen, eine Reihe von Aufgaben, die Sie ausführen können, und eine Wissensüberprüfung durchführen, um zu testen, was Sie gelernt haben. Nach Abschluss dieses Artikels sollten Sie über ein gutes Verständnis der wichtigsten grundlegenden Konzepte in DAX verfügen.

Was ist DAX?

DAX ist eine Auflistung von Funktionen, Operatoren und Konstanten, die in einer Formel oder einem Ausdruck verwendet werden können, um einen oder mehrere Werte zu berechnen und zurückzugeben. DAX unterstützt Sie beim Erstellen neuer Informationen aus Daten, die bereits in Ihrem Modell vorhanden sind.

Warum ist DAX so wichtig?

Es ist einfach, eine neue Power BI Desktop-Datei zu erstellen und einige Daten darin zu importieren. Sie können sogar Berichte erstellen, die wertvolle Erkenntnisse enthalten, ohne DAX-Formeln zu verwenden. Aber was ist, wenn Sie den Wachstumsprozentsatz für Produktkategorien und für verschiedene Datumsbereiche analysieren müssen? Oder müssen Sie das Jährliche Wachstum im Vergleich zu Markttrends berechnen? DAX-Formeln bieten diese und viele andere wichtige Funktionen. Wenn Sie lernen, wie Sie effektive DAX-Formeln erstellen, können Sie Ihre Daten optimal nutzen. Wenn Sie die Informationen erhalten, die Sie benötigen, können Sie damit beginnen, echte Geschäftsprobleme zu lösen, die sich auf Ihr Endergebnis auswirken.

Voraussetzungen

Möglicherweise sind Sie bereits mit dem Erstellen von Formeln in Microsoft Excel vertraut, und diese Kenntnisse sind hilfreich beim Verständnis von DAX. Aber auch wenn Sie keine Erfahrung mit Excel-Formeln haben, helfen Ihnen die hier beschriebenen Konzepte bei den ersten Schritten beim Erstellen von DAX-Formeln und beim Lösen von realen BI-Problemen sofort.

Wir legen den Schwerpunkt auf das Verstehen der DAX-Formeln, die in Berechnungen verwendet werden, genauer gesagt in Measures und berechneten Spalten. Sie sollten bereits mit der Verwendung von Power BI Desktop zum Importieren von Daten und Hinzufügen von Feldern zu einem Bericht vertraut sein, und Sie sollten auch mit grundlegenden Konzepten von Measures und berechneten Spalten vertraut sein.

Beispielarbeitsmappe

Die beste Möglichkeit, um zu lernen, wie Sie mit DAX arbeiten, besteht darin, einige Grundformeln zu erstellen, sie mit tatsächlichen Daten zu verwenden und die Ergebnisse selbst zu sehen. Die beispiele und Aufgaben hier verwenden die Contoso Sales Sample for Power BI Desktop-Datei. Das ist die Beispieldatei, die auch im Artikel Tutorial: Erstellen eigener Measures in Power BI Desktop verwendet wird.

Beginnen wir

Wir werden unser Verständnis von DAX um drei grundlegende Konzepte richten: Syntax, Funktionen und Kontext. Es gibt andere wichtige Konzepte in DAX, aber das Verständnis dieser drei Konzepte bietet die beste Grundlage, auf der Sie Ihre DAX-Fähigkeiten aufbauen können.

Syntax

Bevor Sie eigene Formeln erstellen, sehen wir uns die DAX-Formelsyntax an. Die Syntax enthält die verschiedenen Elemente, aus denen eine Formel besteht, oder einfacher, wie die Formel geschrieben wird. Hier ist zum Beispiel eine einfache DAX-Formel für eine Kennzahl:

Screenshot einer DAX-Formel mit Zeigern auf einzelne Syntaxelemente.

Diese Formel enthält die folgenden Syntaxelemente:

A. Der Name der Kennzahl, Gesamtumsatz.

B. Der Gleichheitszeichenoperator (=), der den Beginn der Formel angibt. Bei der Berechnung wird ein Ergebnis zurückgegeben.

C. Die DAX-Funktion SUMME, die alle Zahlen in der Spalte "Sales[SalesAmount]" addiert. Weitere Informationen zu Funktionen finden Sie später.

D. Klammer (), die einen Ausdruck umgibt, der ein oder mehrere Argumente enthält. Die meisten Funktionen erfordern mindestens ein Argument. Ein Argument übergibt einen Wert an eine Funktion.

E. Die referenzierte Tabelle Sales (Umsätze)

F. Die Spalte , [SalesAmount], auf die verwiesen wird, in der Tabelle "Vertrieb". Mit diesem Argument weiß die Funktion SUMME, in welcher Spalte eine SUMME aggregiert werden soll.

Wenn Sie versuchen, eine DAX-Formel zu verstehen, ist es oft hilfreich, jedes der Elemente in eine Sprache zu zerlegen, die Sie jeden Tag denken und sprechen. Sie können diese Formel beispielsweise folgendermaßen lesen:

Berechnen Sie für das Measure mit dem Namen "Gesamtumsatz" (=) die SUMME der Werte in der Spalte [SalesAmount] in der Tabelle "Umsatz".

Wenn es einem Bericht hinzugefügt wird, berechnet und gibt diese Maßnahme Werte zurück, indem die Umsatzbeträge für jedes der anderen enthaltenen Felder addiert werden, zum Beispiel für Mobiltelefone in den USA.

Vielleicht denken Sie: "Tun diese Maßnahme nicht dasselbe, als ob ich nur das Feld "SalesAmount" zu meinem Bericht hinzufügen würde? Nun, ja. Es gibt jedoch einen guten Grund, ein eigenes Measure zu erstellen, das Werte aus dem Feld "SalesAmount" addiert: Wir können es als Argument in anderen Formeln verwenden. Diese Lösung scheint jetzt etwas verwirrend zu sein, aber wenn Ihre DAX-Formelkenntnisse wachsen, werden Ihre Formeln und Ihr Modell effizienter, wenn Sie wissen, dass diese Maßnahme ihre Formeln und Ihr Modell effizienter macht. Tatsächlich wird die Kennzahl "Gesamtumsatz" später als Argument in anderen Formeln angezeigt.

Lassen Sie uns ein paar weitere Dinge zu dieser Formel durchgehen. Insbesondere haben wir eine Funktion , SUMME, eingeführt. Funktionen sind vorab geschriebene Formeln, die es einfacher machen, komplexe Berechnungen und Manipulationen mit Zahlen, Datum, Uhrzeit, Text und mehr durchzuführen. Weitere Informationen zu Funktionen finden Sie später.

Sie sehen auch, dass dem Spaltennamen [SalesAmount] die Tabelle "Sales", zu der die Spalte gehört, vorangestellt wurde. Dieser Name wird als vollständig qualifizierter Spaltenname bezeichnet, da er den Spaltennamen enthält, dem der Tabellenname vorangestellt ist. Spalten, auf die in derselben Tabelle verwiesen wird, erfordern nicht, dass der Tabellenname in die Formel einbezogen wird, wodurch lange Formeln, die auf viele Spalten verweisen, kürzer und einfacher zu lesen sein können. Allerdings empfiehlt es sich, den Tabellennamen innerhalb derselben Tabelle in Ihre Maßnahme-Formeln mit aufzunehmen.

Hinweis

Wenn ein Tabellenname Leerzeichen, reservierte Schlüsselwörter oder unzulässige Zeichen enthält, müssen Sie den Tabellennamen in einfache Anführungszeichen setzen. Sie müssen auch Tabellennamen in Anführungszeichen setzen, wenn der Name Zeichen außerhalb des alphanumerischen ANSI-Zeichenbereichs enthält, unabhängig davon, ob das Gebietsschema den Zeichensatz unterstützt oder nicht.

Es ist wichtig, dass Ihre Formeln über die richtige Syntax verfügen. In den meisten Fällen wird ein Syntaxfehler zurückgegeben, wenn die Syntax nicht korrekt ist. In anderen Fällen ist die Syntax möglicherweise richtig, aber die zurückgegebenen Werte sind möglicherweise nicht das, was Sie erwarten. Der DAX-Editor in Power BI Desktop enthält eine Vorschlagsfunktion, mit der Sie syntaktisch korrekte Formeln erstellen können, indem Sie die richtigen Elemente auswählen.

Als Nächstes erstellen wir eine Beispielformel. Diese Aufgabe hilft Ihnen, die Formelsyntax weiter zu verstehen und wie das Feature "Vorschläge" in der Formelleiste Ihnen helfen kann.

Aufgabe: Erstellen einer Messformel

  1. Laden Sie die Power BI-Desktopdatei "Contoso Sales Sample" herunter, und öffnen Sie sie.

  2. Klicken Sie in der Berichtsansicht in der Feldliste mit der rechten Maustaste auf die Tabelle " Vertrieb ", und wählen Sie dann "Neues Measure" aus.

  3. Ersetzen Sie in der Bearbeitungsleiste Measure, indem Sie einen neuen Measurenamen wie Previous Quarter Sales (Umsätze des Vorquartals) eingeben.

  4. Geben Sie nach dem Gleichheitszeichen die ersten Buchstaben CAL ein, und doppelklicken Sie dann auf die Funktion, die Sie verwenden möchten. In dieser Formel möchten Sie die CALCULATE-Funktion verwenden.

    Sie verwenden die CALCULATE-Funktion, um die Beträge zu filtern, die wir nach einem Argument addieren möchten, das an die CALCULATE-Funktion übergeben wird. Dieser Funktionstyp wird als Verschachteln von Funktionen bezeichnet. Die FUNKTION BERECHNEN weist mindestens zwei Argumente auf. Der erste ist der ausdruck, der ausgewertet werden soll, und der zweite ist ein Filter.

  5. Geben Sie nach der öffnenden Klammer ( für die CALCULATE-Funktionsumme gefolgt von einer anderen öffnenden Klammer () ein.

    Als Nächstes übergeben wir ein Argument an die FUNKTION SUMME.

  6. Beginnen Sie mit der Eingabe von Sal, und wählen Sie dann Sales[SalesAmount], gefolgt von einer schließenden Klammer ).

    In diesem Schritt wird das erste Ausdrucksargument für unsere CALCULATE-Funktion erstellt.

  7. Geben Sie ein Komma (,) gefolgt von einem Leerzeichen ein, um den ersten Filter anzugeben, und geben Sie dann PREVIOUSQUARTER ein.

    Sie verwenden die PREVIOUSQUARTER-Zeitintelligenzfunktion, um die SUM-Ergebnisse nach dem vorherigen Quartal zu filtern.

  8. Geben Sie nach der öffnenden Klammer ( für die FUNKTION PREVIOUSQUARTER) " Calendar[DateKey]" ein.

    Die FUNKTION PREVIOUSQUARTER weist ein Argument auf, eine Spalte mit einem zusammenhängenden Datumsbereich. In unserem Fall ist dies die Spalte "DateKey" in der Tabelle "Kalender".

  9. Schließen Sie beide Argumente, die an die PREVIOUSQUARTER-Funktion übergeben werden, und die CALCULATE-Funktion, indem Sie zwei schließende Klammern )) eingeben.

    Ihre Formel sollte nun wie folgt aussehen:

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

  10. Aktivieren Sie das Kontrollkästchen Häkchensymbol in der Formelleiste oder drücken Sie die Eingabetaste, um die Formel zu überprüfen und zur Tabelle „Vertrieb“ hinzuzufügen.

Geschafft! Sie haben gerade mithilfe von DAX eine komplexe Kennzahl erstellt. Was diese Formel tun wird, ist die Berechnung des Gesamtumsatzes für das vorherige Quartal, abhängig von den in einem Bericht angewendeten Filtern. Beispielsweise können wir SalesAmount und unser neues Measure „Umsatz im vorherigen Quartal“ aus der Tabelle „Sales“ in ein gruppiertes Säulendiagramm einfügen. Fügen Sie dann in der Kalendertabelle "Year" als Filter hinzu und wählen Sie 2011 aus. Fügen Sie anschließend "QuarterOfYear" als zusätzlichen Filter hinzu, wählen Sie "4" aus, und erhalten ein Diagramm wie dieses:

Diagramm zum Umsatz und Verkaufsbetrag des vorherigen Quartals

Beachten Sie, dass das Beispielmodell nur eine kleine Menge von Umsatzdaten vom 1.1.2011 bis 19.19.2013 enthält. Wenn Sie ein Jahr oder ein Quartal auswählen, in dem SalesAmount nicht addiert werden kann, oder Ihr neues Measure keine Umsatzdaten für das aktuelle oder vorherige Quartal berechnen kann, werden keine Daten für diesen Zeitraum angezeigt. Wenn Sie beispielsweise "2011" für "Jahr" und "1" für "QuarterOfYear" auswählen, werden keine Daten für den Umsatz des vorherigen Quartals angezeigt, da für das vierte Quartal 2010 keine Daten vorhanden sind.

Sie wurden mit mehreren wichtigen Aspekten von DAX-Formeln eingeführt:

  • Diese Formel enthält zwei Funktionen. PREVIOUSQUARTER, eine Funktion für Zeitintelligenz, wird als Argument in die Funktion CALCULATE, eine Filterfunktion, eingebettet.

    DAX-Formeln können bis zu 64 geschachtelte Funktionen enthalten. Es ist unwahrscheinlich, dass eine Formel jemals so viele geschachtelte Funktionen enthalten würde. Tatsächlich wäre eine solche Formel schwierig zu erstellen und zu debuggen, und es wäre wahrscheinlich auch nicht schnell.

  • In dieser Formel haben Sie auch Filter verwendet. Filter schränken ein, was berechnet wird. In diesem Fall haben Sie einen Filter als Argument ausgewählt, das tatsächlich das Ergebnis einer anderen Funktion ist. Weitere Informationen zu Filtern finden Sie später.

  • Sie haben die CALCULATE-Funktion verwendet. Diese Funktion ist eine der leistungsstärksten Funktionen in DAX. Wenn Sie Modelle erstellen und komplexere Formeln erstellen, verwenden Sie diese Funktion wahrscheinlich mehrmals. Obwohl eine weitergehende Diskussion zur CALCULATE-Funktion außerhalb des Rahmens dieses Artikels liegt, sollten Sie dieser besondere Beachtung schenken, während Ihr Wissen über DAX wächst.

Syntax QuickQuiz

  1. Was macht diese Schaltfläche auf der Formelzeile?

    Schaltflächenauswahl

  2. Was umgibt immer einen Spaltennamen in einer DAX-Formel?

Antworten finden Sie am Ende dieses Artikels.

Funktionen

Funktionen sind vordefinierte Formeln, die Berechnungen mithilfe bestimmter Werte ausführen, die als Argumente bezeichnet werden, in einer bestimmten Reihenfolge oder Struktur. Argumente können andere Funktionen, eine andere Formel, ein Ausdruck, Spaltenverweise, Zahlen, Text, Wahrheitswerte wie WAHR oder FALSCH oder Konstanten sein.

DAX enthält die folgenden Kategorien von Funktionen: Datum und Uhrzeit, Zeitintelligenz, Informationen, Logische, Mathematische, Statistische, Text, Eltern/Kind und andere Funktionen. Wenn Sie mit Funktionen in Excel-Formeln vertraut sind, werden viele der Funktionen in DAX ähnlich erscheinen; DAX-Funktionen sind jedoch auf folgende Weise einzigartig:

  • Eine DAX-Funktion verweist immer auf eine vollständige Spalte oder Tabelle. Wenn Sie nur bestimmte Werte aus einer Tabelle oder Spalte verwenden möchten, können Sie der Formel Filter hinzufügen.

  • Wenn Sie Berechnungen auf Zeilenbasis anpassen müssen, stellt DAX Funktionen bereit, mit denen Sie den aktuellen Zeilenwert oder einen verwandten Wert als Eine Art von Argument verwenden können, um Berechnungen basierend auf dem Kontext auszuführen. Sie erfahren später mehr über den Kontext.

  • DAX enthält viele Funktionen, die eine Tabelle anstelle eines Werts zurückgeben. Die Tabelle wird nicht angezeigt, wird jedoch verwendet, um Eingaben für andere Funktionen bereitzustellen. Sie können beispielsweise eine Tabelle abrufen und dann die unterschiedlichen Werte in ihr zählen oder dynamische Summen über gefilterte Tabellen oder Spalten hinweg berechnen.

  • DAX umfasst verschiedene Zeitintelligenzfunktionen. Mit diesen Funktionen können Sie Datumsbereiche definieren oder auswählen und dynamische Berechnungen basierend darauf ausführen. Sie können beispielsweise Summen über parallele Zeiträume hinweg vergleichen.

  • Excel verfügt über die beliebte Funktion SVERWEIS. DAX-Funktionen nehmen keine Zelle oder einen Zellbereich als Verweis an, wie SVERWEIS in Excel. DAX-Funktionen verwenden eine Spalte oder eine Tabelle als Referenz. Denken Sie daran, dass Sie in Power BI Desktop mit einem relationalen Datenmodell arbeiten. Das Nachschlagen von Werten in einer anderen Tabelle ist einfach, und in den meisten Fällen müssen Sie überhaupt keine Formeln erstellen.

    Wie Sie sehen können, können Funktionen in DAX Ihnen helfen, leistungsstarke Formeln zu erstellen. Wir haben nur die Grundlagen der Funktionen berührt. Wenn Ihre DAX-Fähigkeiten wachsen, erstellen Sie Formeln mithilfe vieler verschiedener Funktionen. Einer der besten Orte, um Details zu den einzelnen DAX-Funktionen zu erfahren, finden Sie in der DAX-Funktionsreferenz.

Funktionen-Kurzquiz

  1. Worauf verweist eine Funktion immer?
  2. Kann eine Formel mehrere Funktionen enthalten?
  3. Welche Funktionskategorie würden Sie verwenden, um zwei Textzeichenfolgen in eine Zeichenfolge zu verketten?

Antworten finden Sie am Ende dieses Artikels.

Kontext

Der Kontext ist eines der wichtigsten DAX-Konzepte, die verstanden werden müssen. In DAX gibt es zwei Kontexttypen: Zeilenkontext und Filterkontext. Wir sehen uns zuerst den Zeilenkontext an.

Zeilenkontext

Der Zeilenkontext wird am einfachsten als die aktuelle Zeile angesehen. Dies gilt immer dann, wenn eine Formel eine Funktion hat, die Filter anwendet, um eine einzelne Zeile in einer Tabelle zu identifizieren. Die Funktion wendet inhärent einen Zeilenkontext für jede Zeile der Tabelle an, über die sie gefiltert wird. Diese Art von Zeilenkontext gilt am häufigsten für Kennzahlen.

Filterkontext

Der Filterkontext ist etwas schwieriger zu verstehen als der Zeilenkontext. Sie können sich den Filterkontext am einfachsten vorstellen als: Mindestens ein Filter, der in einer Berechnung angewendet wird, die ein Ergebnis oder einen Wert bestimmt.

Der Filterkontext ist nicht anstelle des Zeilenkontexts vorhanden; stattdessen gilt sie zusätzlich zum Zeilenkontext. Um beispielsweise die Werte, die in eine Berechnung einbezogen werden sollen, weiter einzugrenzen, können Sie einen Filterkontext anwenden, der nicht nur den Zeilenkontext, sondern auch einen bestimmten Wert (Filter) in diesem Zeilenkontext angibt.

Der Filterkontext ist in Ihren Berichten leicht zu erkennen. Wenn Sie beispielsweise "TotalCost" zu einer Visualisierung hinzufügen und dann "Jahr" und "Region" hinzufügen, definieren Sie einen Filterkontext, der eine Teilmenge von Daten basierend auf einem bestimmten Jahr und einer bestimmten Region auswählt.

Warum ist der Filterkontext für DAX so wichtig? Sie haben gesehen, dass der Filterkontext angewendet werden kann, indem Sie einer Visualisierung Felder hinzufügen. Der Filterkontext kann 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. Sehen wir uns beispielsweise die folgende Formel in einem Messwert namens Store Sales an:

Filial-Verkaufskennzahl

Um diese Formel besser zu verstehen, können wir sie ähnlich wie bei anderen Formeln aufschlüsseln.

Diese Formel enthält die folgenden Syntaxelemente:

A. Den Measurenamen Store Sales.

B. Der Gleichheitszeichenoperator (=), der den Beginn der Formel angibt.

C. Die Funktion CALCULATE, die einen Ausdruck als Argument in einem Kontext auswertet, der durch die angegebenen Filter geändert wird.

D. Klammer (), die einen Ausdruck umgibt, der ein oder mehrere Argumente enthält.

E. Ein Measure [Total Sales] in derselben Tabelle wie ein Ausdruck. Das Measure „Total Sales“ hat die Formel: =SUM(Sales[SalesAmount]).

F. Ein Komma (,), das das erste Ausdrucksargument vom Filterargument trennt.

G. Die vollqualifizierte Spalte, auf die verwiesen wird; Channel[ChannelName]. Dies ist unser Zeilenkontext. Jede Zeile in dieser Spalte gibt einen Kanal an, z. B. Store oder Online.

H. Der jeweilige Wert, Store, als Filter. Dies ist unser Filterkontext.

Mit dieser Formel wird sichergestellt, dass nur Verkaufswerte, die durch das Maß "Gesamtumsatz" definiert sind, ausschließlich für Zeilen in der Spalte Channel[ChannelName] berechnet werden, wobei der Wert "Store" als Filter verwendet wird.

Wie Sie sich vorstellen können, verfügt die Definition des Filterkontexts innerhalb einer Formel über immense und leistungsstarke Funktionen. Die Möglichkeit, nur auf einen bestimmten Wert in einer verwandten Tabelle zu verweisen, ist nur ein Beispiel dafür. Machen Sie sich keine Sorgen, wenn Sie den Kontext nicht sofort verstehen. Während Sie eigene Formeln erstellen, verstehen Sie den Kontext und warum es in DAX so wichtig ist.

Context Schnellquiz

  1. Welche beiden Kontexttypen gibt es?
  2. Was ist Filterkontext?
  3. Was ist Zeilenkontext?

Antworten finden Sie am Ende dieses Artikels.

Zusammenfassung

Nachdem Sie ein grundlegendes Verständnis der wichtigsten Konzepte in DAX aufgebaut haben, können Sie selbst DAX-Formeln für Kennzahlen erstellen. DAX kann zwar etwas schwierig zu erlernen sein, aber es stehen Ihnen viele Ressourcen zur Verfügung. Nachdem Sie diesen Artikel durchlesen und mit einigen ihrer eigenen Formeln experimentieren, erfahren Sie mehr über andere DAX-Konzepte und Formeln, die Ihnen dabei helfen können, Ihre eigenen Geschäftsprobleme zu lösen. Es stehen ihnen viele DAX-Ressourcen zur Verfügung. Am wichtigsten ist die DAX-Referenz (Data Analysis Expressions).

Da DAX bereits seit mehreren Jahren in anderen Microsoft BI-Tools wie Power Pivot und Analysis Services Tabular-Modelle vorhanden ist, gibt es viele großartige Quelleninformationen. Weitere Informationen finden Sie in Büchern, Whitepapers und Blogs von Microsoft und führenden BI-Experten. Das DAX-Ressourcencenter ist auch ein guter Ausgangspunkt.

QuickQuiz-Antworten

Syntax:

  1. Überprüft und gibt die Messung in das Modell ein.
  2. Eckige Klammern [].

Funktionen:

  1. Eine Tabelle und eine Spalte.
  2. Ja. Eine Formel kann bis zu 64 geschachtelte Funktionen enthalten.
  3. Textfunktionen.

Kontext:

  1. Zeilenkontext und Filterkontext.
  2. Mindestens ein Filter in einer Berechnung, der einen einzelnen Wert bestimmt.
  3. Die aktuelle Zeile.