In Power BI (bzw. DAX) bezieht sich „Zeilenkontext“ auf den Kontext, in dem eine Formel für jede einzelne Zeile einer Tabelle berechnet wird. Das bedeutet, dass die Berechnung für jede Zeile individuell erfolgt, basierend auf den Werten dieser Zeile. Dies ist besonders wichtig bei der Arbeit mit „berechneten Spalten“ oder bei Funktionen, die auf Zeilenebene arbeiten.
Beispiele für Zeilenkontext:
1. „Berechnete Spalten“:
Wenn du eine berechnete Spalte erstellst, arbeitet Power BI automatisch im Zeilenkontext. Jede Zeile der Tabelle hat ihren eigenen Kontext, und die Berechnung wird für jede Zeile individuell ausgeführt.
Beispiel:
NeueSpalte = Tabelle[Preis] * Tabelle[Menge]
Hier wird für jede Zeile die Berechnung `Preis * Menge` durchgeführt, basierend auf den Werten in den jeweiligen Zeilen.
2. Funktionen wie `SUMX` oder `FILTER:
Diese Funktionen erzeugen ebenfalls einen Zeilenkontext, wenn sie eine Tabelle durchlaufen und Berechnungen für jede Zeile durchführen.
Beispiel:
Gesamtertrag = SUMX(Tabelle, Tabelle[Preis] * Tabelle[Menge])
In diesem Fall durchläuft die Funktion „SUMX“ jede Zeile der Tabelle, multipliziert den Preis mit der Menge und summiert die Ergebnisse.
Unterschied zwischen „Zeilenkontext“ und “Filterkontext“:
- „Zeilenkontext“ bedeutet, dass die Berechnung für jede Zeile einzeln erfolgt.
- „Filterkontext“ hingegen entsteht durch Filter, die auf eine Berechnung angewendet werden, z.B. durch die Auswahl von Daten in Visualisierungen oder durch Datenschnitte.
Übergang von Zeilenkontext zu Filterkontext:
Um den Zeilenkontext auf eine Tabelle zu erweitern oder ihn in einem Measure zu verwenden, kannst du Funktionen wie „CALCULATE“ verwenden, die Filterkontext hinzufügen oder modifizieren können.
Beispiel für den Zeilenkontext mit „RELATED“:
Wenn du auf eine Spalte aus einer verknüpften Tabelle zugreifst und eine Zeilenweise Berechnung machst:
Gesamtwert = Tabelle1[Menge] * RELATED(Tabelle2[Preis])
Hier wird für jede Zeile von „Tabelle1“ der „Preis“ aus „Tabelle2“ über die bestehende Beziehung geholt und mit „Menge“ multipliziert.
Beispiel für den Filterkontext mit „CALCULATE“:
Abschließend eine Funktion, wie eine Berechnung mit dem Filterkontext aussehen könnte:
SalesVJ = CALCULATE([SumSales],SAMEPERIODLASTYEAR(Zeitdimension[Datum]))
Hier wird mittels „CALCULATE“ zwar die Summe gerechnet, jedoch findet hier gleichzeitig eine entsprechende Filterung statt, indem die Filterung durch die Funktion „SAMEPERIODLASTYEAR“ im zeitlichen verwendeten Kontext stattfindet.
In DAX ist es wichtig zu verstehen, wann du im „Zeilenkontext“ und wann im „Filterkontext“ arbeitest, da dies das Verhalten deiner Berechnungen beeinflusst.