Kontext in DAX-Formeln

Hinweis: Wir möchten Ihnen die aktuellsten Hilfeinhalte so schnell wie möglich in Ihrer eigenen Sprache bereitstellen. Diese Seite wurde automatisiert übersetzt und kann Grammatikfehler oder Ungenauigkeiten enthalten. Unser Ziel ist es, Ihnen hilfreiche Inhalte bereitzustellen. Teilen Sie uns bitte über den Link am unteren Rand dieser Seite mit, ob die Informationen für Sie hilfreich sind. Hier finden Sie den englischen Artikel als Referenz.

Mithilfe des Kontexts können Sie eine dynamische Analyse ausführen, in der sich die Ergebnisse einer Formel ändern können, um die aktuelle Zeilen- oder Zellenauswahl sowie verknüpfte Daten widerzuspiegeln. Es ist sehr wichtig, dass Sie den Kontext verstehen und effizient anwenden, um leistungsstarke, Formeln, dynamische Analysen erstellen und Probleme in Formeln beheben zu können.

In diesem Abschnitt werden die verschiedenen Kontexttypen definiert: Zeilenkontext, Abfragekontext und Filterkontext. Es wird erläutert, wie der Kontext für Formeln in berechneten Spalten und in PivotTables ausgewertet wird.

Der letzte Teil dieses Artikels enthält Links zu ausführlichen Beispielen, die veranschaulichen, wie sich die Ergebnisse von Formeln je nach Kontext ändern.

Grundlegendes zu Kontext

Formeln in Power Pivot können durch die in einer PivotTable angewendeten Filter (durch Beziehungen zwischen Tabellen) und durch in Formeln verwendete Filter beeinflusst werden. Der Kontext ermöglicht das Durchführen von dynamischen Analysen. Zum Erstellen von Formeln und Beheben von Fehlern in Formeln ist es wichtig, das Kontextkonzept zu verstehen.

Es gibt verschiedene Typen von Kontext: Zeilenkontext, Abfragekontext und Filterkontext.

Stellen Sie sich den Zeilenkontext als "die aktuelle Zeile" vor. Wenn Sie eine berechnete Spalte erstellt haben, besteht der Zeilenkontext aus den Werten in jeder einzelnen Zeile und den Werten in den Spalten, die mit der aktuellen Zeile verknüpft sind. Es gibt auch einige Funktionen (früher und frühestens), die einen Wert aus der aktuellen Zeile abrufen und diesen Wert dann verwenden, während eine Operation über einer gesamten Tabelle durchgeführt wird.

Der Abfragekontext verweist auf die Teilmenge von Daten, die implizit für jede Zelle in einer PivotTable erstellt wird, abhängig von der Zeilen- und Spaltenüberschrift.

Der Filterkontext ist der Satz von Werten, der in jeder Spalte zulässig ist. Die Grundlage dafür sind Filtereinschränkungen, die auf die Zeile angewendet wurden oder die durch Filterausdrücke innerhalb der Formel definiert sind.

Seitenanfang

Zeilenkontext

Wenn Sie in einer berechneten Spalte eine Formel erstellen, enthält der Zeilenkontext für diese Formel die Werte aller Spalten in der aktuellen Zeile. Wenn die Tabelle mit einer anderen Tabelle verknüpft ist, enthält der Kontext auch alle Werte aus der anderen Tabelle, die mit der aktuellen Zeile verknüpft sind.

Angenommen, Sie erstellen eine berechnete Spalte, =[Freight] + [Tax],

die zwei Spalten aus der gleichen Tabelle addiert. Diese Formel verhält sich wie Formeln in einer Excel-Tabelle, die automatisch auf Werte in der gleichen Zeile verweist. Beachten Sie, dass sich Tabellen von Bereichen unterscheiden: Sie können mit der Bereichsschreibweise nicht auf einen Wert aus einer Zeile vor der aktuellen Zeile verweisen, und Sie können nicht auf jeden beliebigen einzelnen Wert in einer Tabelle oder Zelle verweisen. Sie müssen immer mit Tabellen und Spalten arbeiten.

Der Zeilenkontext folgt automatisch den Beziehungen zwischen Tabellen, um zu bestimmen, welche Zeilen in verknüpften Tabellen der aktuellen Zeile zugeordnet sind.

Mit der folgenden Formel wird beispielsweise die verwandte Funktion verwendet, um einen Steuerwert aus einer verknüpften Tabelle basierend auf dem Bereich abzurufen, an den die Bestellung geliefert wurde. Der Steuerwert wird ermittelt, indem der Wert für Region in der aktuellen Tabelle verwendet wird, der Bereich in der verknüpften Tabelle nachschlagen und dann der Steuersatz für diesen Bereich aus der verknüpften Tabelle erhalten wird.

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

Mit dieser Formel wird einfach der Steuersatz für die aktuelle Region aus der Tabelle Region abgerufen. Sie müssen den Schlüssel zum Verknüpfen der Tabellen nicht kennen oder angeben.

Mehrere Zeilenkontexte

Darüber hinaus umfasst DAX Funktionen, die eine Tabelle durchlaufen, um Berechnungen durchzuführen. Diese Funktionen können über mehrere aktuelle Zeilen und aktuelle Zeilenkontexte verfügen. Programmiertechnisch gesehen können Sie Formeln erstellen, die über eine innere und äußere Schleife rekursieren.

Angenommen, die Arbeitsmappe enthält eine Products-Tabelle und eine Sales-Tabelle. Sie können z. B. die gesamte Vertriebstabelle durchlaufen, die mit Transaktionen verschiedener Produkte gefüllt ist, um die größte Bestellmenge für jedes Produkt in einer beliebigen Transaktion zu ermitteln.

In Excel erfordert diese Berechnung eine Reihe von Zwischenzusammenfassungen, die neu erstellt werden müssten, wenn die Daten geändert werden. Als erfahrener Excel-Benutzer könnten Sie Arrayformeln erstellen, um die Aufgabe zu erledigen. Alternativ könnten Sie in einer relationalen Datenbank geschachtelte untergeordnete SELECT-Anweisungen schreiben.

Mit DAX können Sie jedoch eine einzelne Formel erstellen, die den richtigen Wert zurückgibt, und die Ergebnisse werden automatisch bei jedem Hinzufügen von Daten zu den Tabellen aktualisiert.

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

Eine ausführliche Exemplarische Vorgehensweise dieser Formel finden Sie im vorherigenBeispiel.

Zusammengefasst speichert die EARLIER-Funktion den Zeilenkontext des Vorgangs, der dem aktuellen Vorgang vorausging. Die Funktion speichert zu jedem Zeitpunkt zwei Kontextsätze im Arbeitsspeicher: Ein Kontextsatz stellt die aktuelle Zeile für die innere Schleife der Formel dar, und ein weiterer Kontextsatz stellt die aktuelle Zeile für die äußere Schleife der Formel dar. DAX übermittelt automatisch Werte zwischen den zwei Schleifen, sodass komplexe Aggregate erstellt werden können.

Seitenanfang

Abfragekontext

Der Abfragekontext ist die Teilmenge von Daten, die implizit für eine Formel abgerufen wird. Wenn Sie ein Measure oder ein anderes Wertfeld in eine Zelle in einer PivotTable ablegen, überprüft das Power Pivot-Modul die Zeilen-und Spaltenüberschriften, datenschnitte und Berichtsfilter, um den Kontext zu ermitteln. Anschließend führt Power Pivot die notwendigen Berechnungen durch, um alle Zellen in der PivotTable aufzufüllen. Der Datensatz, der abgerufen wird, ist der Abfragekontext für jede Zelle.

Da sich der Kontext je nach Position, an der Sie die Formel platzieren, ändern kann, ändern sich auch die Ergebnisse der Formel je nachdem, ob Sie sie in einer PivotTable mit vielen Gruppierungen und Filtern oder in einer berechneten Spalte ohne Filter und mit wenig Kontext verwenden.

Angenommen, Sie erstellen diese einfache Formel, durch die die Werte in der Spalte Profit der Tabelle Sales addiert werden: =SUM('Sales'[Profit]).

Wenn Sie diese Formel in einer berechneten Spalte innerhalb der Sales-Tabelle verwenden, sind die Ergebnisse der Formel für die gesamte Tabelle identisch, da der Abfragekontext für die Formel immer dem gesamten Dataset der Sales-Tabelle entspricht. Die Ergebnisse enthalten somit den Gewinn für alle Regionen, alle Produkte, alle Jahre usw.

In der Regel möchten Sie jedoch nicht unzählige Male das gleiche Ergebnis sehen, sondern den Gewinn für ein bestimmtes Jahr, ein bestimmtes Land oder Gebiet, ein bestimmtes Produkt, oder eine Kombination daraus abrufen, um das Gesamtergebnis zu ermitteln.

In einer PivotTable ist es einfach, den Kontext zu ändern, indem Spalten-und Zeilenüberschriften hinzugefügt oder entfernt werden und datenschnitte hinzugefügt oder entfernt werden. Sie können eine Formel wie die obige in einem Measure erstellen und dann in einer PivotTable ablegen. Wenn Sie der PivotTable Spalten-oder Zeilenüberschriften hinzufügen, ändern Sie den Abfragekontext, in dem das Measure ausgewertet wird. Slicing-und Filter Vorgänge wirken sich auch auf den Kontext aus. Daher wird dieselbe Formel, die in einer PivotTable verwendet wird, in einem anderen Abfragekontext für jede Zelle ausgewertet.

Seitenanfang

Filterkontext

Der Filterkontext wird hinzugefügt, wenn Sie Filtereinschränkungen für den in einer Spalte oder einer Tabelle zulässigen Satz von Werten angeben, indem Sie in einer Formel Argumente verwenden. Der Filterkontext wird zusätzlich zu anderem Kontext wie Zeilenkontext oder Abfragekontext angewendet.

Beispielsweise werden in einer PivotTable die Werte für jede Zelle anhand der Zeilen- und Spaltenüberschriften berechnet, wie im vorangehenden Abschnitt zum Abfragekontext beschrieben. Sie können jedoch innerhalb der Measures oder berechneten Spalten, die Sie der PivotTable hinzufügen, Filterausdrücke angeben, um die Werte zu steuern, die von der Formel verwendet werden. Sie können die Filter auch selektiv für bestimmte Spalten löschen.

Weitere Informationen zum Erstellen von Filtern in Formeln finden Sie unter Filterfunktionen.

Ein Beispiel dafür, wie Filter gelöscht werden können, um Gesamtergebnisse zu erstellen, finden Sie unter alle.

Beispiele zum selektiven löschen und Anwenden von Filtern innerhalb von Formeln finden Sie unter ALLEXCEPT-Funktion.

Daher müssen Sie die Definition von Measures oder Formeln überprüfen, die in einer PivotTable verwendet werden, damit Sie den Filterkontext kennen, wenn Sie die Ergebnisse von Formeln interpretieren.

Seitenanfang

Bestimmen des Kontexts in Formeln

Wenn Sie eine Formel erstellen, überprüft Power Pivot für Excel zuerst die allgemeine Syntax und vergleicht dann die von Ihnen bereitgestellten Namen der Spalten und Tabellen mit möglichen Spalten und Tabellen im aktuellen Kontext. Wenn Power Pivot die in der Formel angegebenen Spalten und Tabellen nicht findet, wird ein Fehler angezeigt.

Der Kontext wird, wie in den vorangehenden Abschnitten beschrieben, anhand der verfügbaren Tabellen in der Arbeitsmappe, der Beziehungen zwischen den Tabellen und der angewendeten Filter bestimmt.

Wenn Sie z. B. gerade einige Daten in eine neue Tabelle importiert und keine Filter angewendet haben, ist der ganze Satz von Spalten in der Tabelle Teil des aktuellen Kontexts. Wenn Sie mehrere Tabellen haben, die durch Beziehungen verknüpft sind, und eine PivotTable verwenden, die nach dem Hinzufügen von Spaltenüberschriften und Verwenden von Datenschnitten gefiltert wurde, schließt der Kontext die verknüpften Tabellen und alle auf die Daten angewendeten Filter ein.

Der Kontext ist ein leistungsstarkes Konzept, das die Fehlerbehebung in Formeln allerdings auch erschweren kann. Sie sollten daher mit einfachen Formeln und Beziehungen beginnen, um die Funktionsweise des Kontexts zu verstehen, und dann mit einfachen Formeln in PivotTables experimentieren. Der folgende Abschnitt enthält auch einige Beispiele für Formeln, in denen verschiedene Kontexttypen zur dynamischen Rückgabe von Ergebnissen verwendet werden.

Beispiele für Kontext in Formeln

  • Die RELATED-Funktion erweitert den Kontext der aktuellen Zeile, um Werte in einer verknüpfte Spalte einzuschließen. Auf diese Weise können Sie Suchvorgänge ausführen. Das Beispiel in diesem Thema veranschaulicht die Interaktion des Filter- und Zeilenkontexts.

  • Mit der FILTER-Funktion können Sie die Zeilen angeben, die in den aktuellen Kontext eingeschlossen werden sollen. Zudem wird anhand der Beispiele in diesem Thema veranschaulicht, wie Filter in andere Funktionen, die Aggregate ausführen, eingebettet werden.

  • Die ALL-Funktion legt den Kontext in einer Formel fest. Sie können Filter, die als Ergebnis des Abfragekontexts angewendet werden, mithilfe der ALL-Funktion überschreiben.

  • Mit der ALLEXCEPT-Funktion können Sie alle Filter bis auf den angegebenen Filter entfernen. Beide Themen enthalten Beispiele, die Sie durch das Erstellen von Formeln führen, um komplexe Kontexte besser verstehen zu können.

  • Mit den Funktionen EARLIER und EARLIEST können Sie Tabellen durchlaufen, indem Berechnungen durchgeführt werden, während von einer inneren Schleife auf einen Wert verwiesen wird. Wenn Sie mit dem Konzept der Rekursion und inneren und äußeren Schleifen vertraut sind, werden Sie die Leistungsfähigkeit zu schätzen wissen, die die Funktionen EARLIER und EARLIEST bereitstellen. Wenn Sie mit diesen Konzepten nicht vertraut sind, sollten Sie die Schritte in dem Beispiel sorgfältig durchführen, um den inneren und äußeren Kontext beim Durchführen von Berechnungen zu verstehen.

Seitenanfang

Referenzielle Integrität

In diesem Abschnitt werden einige erweiterte Konzepte hinsichtlich fehlender Werte in Power Pivot-Tabellen erläutert, die durch Beziehungen verbunden sind. Dieser Abschnitt ist möglicherweise nützlich, wenn Sie Arbeitsmappen mit mehreren Tabellen und komplexen Formeln verwenden und Hilfe benötigen, um die Ergebnisse besser zu verstehen.

Falls Sie noch keine Erfahrung mit Konzepten relationaler Daten haben, empfiehlt es sich, zuerst das Einführungsthema Übersicht über Beziehungen zu lesen.

Referenzielle Integrität und Power Pivot-Beziehungen

In Power Pivot muss keine referenzielle Integrität zwischen zwei Tabellen erzwungen werden, damit eine gültige Beziehung definiert werden kann. Stattdessen wird eine leere Zeile auf der 1-Seite jeder 1:n-Beziehung erstellt und zur Verarbeitung aller nicht übereinstimmenden Zeilen aus der verknüpften Tabelle verwendet. Sie verhält sich praktisch wie ein äußerer Join in SQL.

Wenn Sie in PivotTables Daten auf der 1-Seite der Beziehung gruppieren, werden alle nicht übereinstimmenden Daten auf der n-Seite der Beziehung gruppiert und mit einer leeren Zeile als Überschrift in Summen aufgenommen. Die leere Überschrift entspricht in etwa dem unbekannten Element.

Grundlegendes zum unbekannten Element

Wenn Sie mit mehrdimensionalen Datenbanksystemen gearbeitet haben, z. B. SQL Server Analysis Services, sind Sie wahrscheinlich bereits mit dem Konzept des unbekannten Elements vertraut. Wenn Ihnen der Begriff neu ist, erklärt das folgende Beispiel, was das unbekannte Element ist und wie es sich auf Berechnungen auswirkt.

Angenommen, Sie erstellen eine Berechnung, die die monatlichen Umsätze für jeden Store summiert, doch in einer Spalte in der Tabelle " Sales " fehlt ein Wert für den Store-Namen. Was erwarten Sie in der Formel, wenn die Tabellen für Store und Sales mit dem Store-Namen verbunden sind? Wie sollte die PivotTable die Umsatzzahlen gruppieren oder anzeigen, die sich nicht auf eine vorhandene Filiale beziehen?

Dies ist ein allgemeines Problem in Data Warehouses, bei denen umfangreiche Tabellen mit Faktendaten logisch mit Dimensionstabellen verknüpft werden müssen, die Informationen zu Filialen, Regionen und anderen Attributen enthalten, die zum Kategorisieren und Berechnen von Fakten verwendet werden. Alle neuen Fakten, die nicht mit einer vorhandenen Entität verbunden sind, werden vorübergehend dem unbekannten Element zugeordnet, um das Problem zu beheben. Daher werden nicht verknüpfte Fakten in einer PivotTable unter einer leeren Überschrift gruppiert.

Behandlung von leeren Werten im Vergleich zur leeren Zeile

Leere Werte unterscheiden sich von den leeren Zeilen, die zur Unterstützung des unbekannten Elements hinzugefügt werden. Der leere Wert ist ein Spezialwert, der zur Darstellung von NULLEN, leeren Zeichenfolgen und anderen fehlenden Werten verwendet wird. Weitere Informationen zu leeren Werten sowie zu anderen DAX-Datentypen finden Sie unter Datentypen in Datenmodellen.

Seitenanfang

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Office Insider werden

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×