Power Pivot für die DatenanalyseDen Filterkontext verstehen und mit CALCULATE steuern
Jedes Power-Pivot-Measure in DAX arbeitet immer in einem bestimmten Kontext. Dieser Kontext ist entscheidend dafür, welche Daten in einer Berechnung sichtbar sind – und somit als Ergebnis in einer Zelle der Pivot-Tabelle erscheinen.
In diesem Beitrag lernen Sie zunächst die Grundlagen des Filterkontexts kennen und gehen dann einen Schritt weiter: Mit der Funktion CALCULATE lernen Sie, wie man diesen Kontext gezielt manipulieren kann.
So öffnen sich ganz neue Möglichkeiten für Ihre Analysen – weit über das hinaus, was Pivot-Tabellen ohne DAX leisten können.
Der Filterkontext – das Fundament von DAX
Der Filterkontext bei Excel-Power-Pivot zeichnet sich aus durch:
- Jede Zelle in einer Pivot-Tabelle (PivotTable) hat ihren eigenen Filterkontext.
- Dieser Kontext ergibt sich aus den Zeilen- und Spaltenfeldern, den gesetzten Filtern, sowie aus Datenschnitten und Zeitachsen.
- Ein Measure wird immer erst nach Anwendung aller Filter berechnet.
Beispiel: Das Measure [Umsatz], das mit der DAX-Funktion SUMX die Menge × Stückpreis summiert, wird nicht für die gesamte Tabelle gerechnet, sondern nur für die Zeilen, die durch den aktuellen Filterkontext sichtbar sind.
Wenn Sie also die Pivot-Tabelle nach Kunde A filtern, sieht das Measure nur die Transaktionen von Kunde A. Das gilt auch für Kombinationen wie „Müller GmbH im Jahr 2024“.
Wichtig ist: Der Filterkontext ist die „Brille“, durch die DAX die Daten betrachtet. Alles, was außerhalb des Kontexts liegt, existiert für die Berechnung nicht.
Grenzen des klassischen Filterkontexts
Filter in Pivot-Tabellen sind sehr praktisch: Mit einem Datenschnitt für das Feld Region können Sie zum Beispiel schnell zwischen „Region Süd“ und „Andere Regionen“ umschalten.
Aber: Sie können immer nur einen Wert gleichzeitig anzeigen – entweder „Region Süd“ oder „Andere Regionen“.
Was aber, wenn Sie beide Werte nebeneinander darstellen wollen? Hier stoßen Sie an die Grenzen der automatischen Filter. Jetzt brauchen Sie die Möglichkeit, den Kontext direkt in der Formel zu steuern.
CALCULATE – der Filterkontext nach Maß
Die DAX-Funktion CALCULATE ist das Herzstück für viele Berechnungen in Power Pivot.
Funktionsweise:
- CALCULATE nimmt ein bestehendes Measure oder einen Ausdruck.
- Es ändert oder ergänzt den aktuellen Filterkontext.
- Danach wird die Berechnung im neuen Kontext ausgeführt.
Syntax von CALCULATE
CALCULATE(<Ausdruck>, <Filter1>, <Filter2> …)
- <Ausdruck>: Das Measure oder der Ausdruck, der berechnet werden soll (zum Beispiel [Umsatz]).
- <Filter1>, <Filter2> …: Einer oder mehrere Filter, die den bestehenden Filterkontext ändern oder ergänzen.
Ablauf:
- CALCULATE setzt die angegebenen Filter.
- Erst danach wird der Ausdruck im neuen Filterkontext berechnet.
Eine Beispielrechnung für CALCULATE
Sie wollen den Umsatz in der „Region Süd“ und den „anderen Regionen“ ermitteln. In diesem Beitrag erfahren Sie, wie Sie das Measure [Umsatz], das den Gesamtumsatz ermittelt, ohne Filtereinstellungen berechnen.
Mit einem Datenschnitt auf die Region könnten Sie den Umsatz in der „Region Süd“ anzeigen. Aber Sie wollen die „Region Süd“ und die „Anderen Regionen“ gleichzeitig sehen.
Sie erstellen hier in der Tabelle tbl_Betstellungen ein Measure mit der folgenden Formel:
Umsatz Region Süd:=CALCULATE([Umsatz];tbl_Kunden[Region]="Süd")
Die Parameter sind:
- Erster Parameter: das vorhandene Measure [Umsatz].
- Zweiter Parameter: der Filter, der die Tabelle Regionen auf „Süd“ einschränkt.
Dieses Measure zeigt immer den Umsatz, der in der „Region Süd“ erzielt wurde – unabhängig davon, welche anderen Filter in der PivotTable gesetzt sind.
Umsatz in den anderen Regionen
Analog erstellen Sie ein weiteres Measure mit der folgenden Formel:
Umsatz andere Regionen:=CALCULATE([Umsatz];tbl_Kunden[Region]<>"Süd")
Die Parameter sind hier:
- Auch hier nutzen Sie das Measure [Umsatz] im ersten Parameter.
- Der Filter schließt die Region „Süd“ aus und berücksichtigt damit alle anderen Regionen.
Darstellung des Measures CALCULATE in der Pivot-Tabelle
Wenn Sie jetzt beide Measures in die Werte der Pivot ziehen, dann sehen Sie:
- Umsatz in der Region Süd
- Umsatz in den anderen Regionen (Nord, West, Ost)
Damit können Sie direkt Vergleiche anstellen – ohne zusätzliche Datenschnitte oder manuelle Filter.
Einsatzmöglichkeiten von CALCULATE
Der Filterkontext wird standardmäßig durch Pivot-Elemente gesetzt. Mit CALCULATE können Sie diesen Kontext direkt in der Formel verändern oder überschreiben.
Das eröffnet neue Möglichkeiten:
- Sie können Teilmengen von Daten analysieren; zum Beispiel nur Region Süd.
- Sie können Vergleiche erstellen; zum Beispiel Region Süd vs. andere Regionen.
Best Practices für CALCULATE
- Nutzen Sie in CALCULATE bestehende Measures.
- Schreiben Sie keine komplexen Formeln neu. Nutzen Sie beispielsweise das bestehende Measure [Umsatz] als Basis und setzen Sie Filter mit CALCULATE.
- Verwenden Sie sprechende Namen, um den Überblick zu behalten.
Mit CALCULATE können Sie den bestehenden Kontext bewusst ergänzen und erweitern. Je mehr Filterbedingungen, desto aufwendiger die Berechnung. Testen Sie daher die Performance bei großen Modellen.
Fazit
Mit diesem Beitrag haben Sie einen der wichtigsten Grundpfeiler von DAX kennengelernt:
- Filterkontext: Er bestimmt, welche Daten in einer Zelle sichtbar sind.
- CALCULATE: Damit können Sie diesen Kontext gezielt steuern – Filter hinzufügen, ändern oder überschreiben.
- Sie können mit CALCULATE und den vielfältigen Filterkontexten Analysen erstellen, die mit einer reinen Pivot-Tabelle unmöglich wären.