Verständnis von Zeilen- und Filterkontext
Swipe um das Menü anzuzeigen
Jede DAX-Berechnung läuft in einem Kontext ab – einer Definition, welche Zeilen zum Zeitpunkt der Auswertung relevant sind. Ohne das Verständnis des Kontexts ist es unmöglich vorherzusagen, welchen Wert eine Kennzahl zurückgibt oder zu erkennen, warum sie einen falschen Wert liefert.
Zeilenkontext
Zeilenkontext ist der Kontext, der innerhalb einer berechneten Spalte existiert. Wenn Power Pivot eine berechnete Spalte auswertet, verarbeitet es jede Zeile einzeln – DAX weiß genau, in welcher Zeile es sich befindet, und verwendet nur die Werte dieser Zeile in der Berechnung.
Was ist das? Das Bewusstsein für die aktuelle Zeile. Die Formel kann auf jede Spalte in derselben Tabelle verweisen und erhält den Wert für genau diese Zeile – nicht eine Summe oder einen Durchschnitt, sondern den exakten Zellwert.
Zeilenkontext existiert nicht für Kennzahlen. Wenn eine Kennzahl ausgewertet wird, gibt es keine aktuelle Zeile – nur eine Menge aktiver Filter. Deshalb führt das Schreiben eines zeilenbezogenen Labels als Kennzahl zu einem Fehler: Die Kennzahl hat keine Zeile, auf die sie sich beziehen kann.
Filterkontext
Filterkontext ist der Kontext, der bei der Auswertung einer Kennzahl existiert. Es handelt sich um die vollständige Menge aktiver Filter im Datenmodell zum Zeitpunkt der Berechnung der Kennzahl – bestimmt durch alles, was die Pivot-Tabelle aktuell über diese bestimmte Zelle weiß.
Jede Zelle in einer Pivot-Tabelle verfügt über eine eigene, einzigartige Kombination aktiver Filter.
Eine leere Zelle weist nicht auf einen Fehler hin – sie bedeutet, dass der Filterkontext für diese Zelle keine übereinstimmenden Zeilen zurückgibt. Unter der aktuellen Kombination aktiver Filter sind einfach keine Daten vorhanden.
Die vier Quellen des Filterkontexts
Der Filterkontext ergibt sich gleichzeitig aus vier unabhängigen Quellen. Jede davon schränkt den Datensatz weiter ein:
- Zeilenbeschriftungen: Jeder Wert im Zeilenbereich wendet einen Filter auf seine Zeile an. Region = North und Region = South erzeugen unterschiedliche Filterkontexte – jede Zelle in der Zeile North sieht nur North-Verkäufe;
- Spaltenbeschriftungen: Jeder Wert im Spaltenbereich fügt eine zweite Filterdimension hinzu. In Kombination mit Zeilenbeschriftungen befindet sich jede Zelle nun am Schnittpunkt zweier unabhängiger Filter;
- Slicer: Eine Auswahl im Slicer wendet ihren Filter gleichzeitig auf jede Zelle in der Pivot-Tabelle an. Die Auswahl von January in einem Monatsslicer beschränkt alle Zellen auf Daten aus January, unabhängig von ihrer Zeilen- oder Spaltenposition;
- Pivot-Tabellen-Filter: Direkt im Filterbereich der Pivot-Tabelle angewendete Filter tragen ebenfalls zum Filterkontext jeder Zelle bei und stapeln sich auf bereits aktive Zeilen-, Spalten- und Slicer-Filter.
Aufgabe
Schritt 1 — Experiment zum Zeilenkontext
-
Arbeitsmappe öffnen. Navigieren zu Power Pivot → Verwalten → Datenansicht → Sales-Tab.
-
Die berechnete Spalte Order Size betrachten. Sie enthält für jede Zeile entweder Large oder Small, basierend auf dem Wert Quantity in dieser Zeile.
-
Nun eine zweite berechnete Spalte zur Sales-Tabelle hinzufügen, mit folgender Formel:
= Sales[Quantity] * Sales[UnitPrice]
-
Diese Spalte in
Row Revenueumbenennen. -
Die Spalte durchscrollen und bestätigen, dass jede Zeile einen anderen Wert anzeigt, nämlich das Produkt aus Quantity und UnitPrice der jeweiligen Zeile.
Schritt 2 — Beantworten Sie anschließend folgende Fragen
- Welcher Kontexttyp wird verwendet, wenn DAX Row Revenue für jede Zeile berechnet?
- Ist Row Revenue identisch mit der bereits in der Sales-Tabelle vorhandenen Spalte Total?
- Würde es Sinn ergeben, Row Revenue als Measure statt als berechnete Spalte zu erstellen?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen