DAX - LÖSUNGEN

Grundsätzliches

Admin für PowerBI einrichten: Administratorzugriff erhalten

Es gibt mehrere Arten von Berechnungen: 

  1. Zeilenkontext: Hier wird Zeile für Zeile berechnet.
  2. Filterkontext: Innerhalb eines Messures findet eine gefilterte Aggregation statt. Zum Beispiel kann dies eine SUMME sein.
  3. Evaluation Context: Kontext-Übergangs-Funktionen - Iterative Funktionen
  4. Calculate-Funktion

Zeilenkontext

Wie erzeuge ich eine Berechnung aus 2 Tabellen?

z. B.: DELTA-WERTE = B_PORTFOLIO[B_Wert]-RELATED(A_PORTFOLIO[A_Wert])

Erläuterung im Video: POWER BI - SO GEHT DAX

Filterkontext

z.B.: SUM DELTA-WERTE = Sum(B_PORTFOLIO[DELTA-WERTE])

Evaluation Context

Kennzeichnet sich aus einer kombinierten Spaltenkontext und einem Filterkontext. Er tritt häufig in iterativen Funktionen wie SUMX() auf.

z.B.: Berechnet zuerst Menge * Preis für jede Zeile und summiert dann die Werte.

MINDEST-GEWINNSPANNE = Sumx(A_PORTFOLIO, A_PORTFOLIO[Kaufwert in EUR]* 10 /100)
 
z.B.: B_KURSWERT = sumX(B_PORTFOLIO, B_PORTFOLIO[B_Stück]*RELATED(A_PORTFOLIO[A_Kaufkurs]))
 

Calculate-Funktion

Sie ist extrem wichtig und erstellt einen eigenen Filterkontext. Sie ist ein "Game-Changer". 

Wenn man viele Berechnungen anstellt, dann kann die Calculate-Funktion zu Performance-Herausforderungen führen.

z.B.: AKTIENGEWINNE = CALCULATE([BA_KURSWERT],A_PORTFOLIO[A_Typ]="AKTIE")

Performance-TUNING in DAX

Schlechte Performance entsteht oft durch ineffiziente Berechnungen. Hier sind einige Best Practices.

Optimierungstipps
  1. Übermäßige Nutzung von CALCULATE () vermeinden
  2. Iterationen reduzieren: Falls möglich eher Aggregationen statt SUMX () verwenden
  3. Star Schema nutzen: Flache Tabellen mit vielen Spalten verlangsamen DAX-Berechnungen