DAX-Formeln in Power BI: der Praxisleitfaden

DAX übernimmt die Berechnungen im Power-BI-Modell. Wir zeigen die wichtigsten Funktionen, die Zeitintelligenz, typische Fehler und fertige Formeln für Businessberichte.
Wer nach Jahren mit Automatikgetriebe zum ersten Mal wieder ein Schaltgetriebe fährt, merkt schnell: Die vertrauten Handgriffe funktionieren plötzlich nicht mehr. Mit Excel und Power BI ist es ähnlich — SUM, IF oder FILTER sind bekannt, die Berechnungslogik ist aber eine andere. DAX-Formeln in Power BI arbeiten mit Zeilen- und Filterkontext, und genau das verlangt ein Umdenken.
In diesem Leitfaden klären wir, was DAX ist, worin es sich von Power Query unterscheidet, welche Funktionen man zuerst braucht und wo die typischen Fehler entstehen. Das Material eignet sich für DAX für Einsteiger ebenso wie für erfahrene Analysten.
Was DAX ist und wofür man es braucht
DAX ist die Formel- und Ausdruckssprache von Microsoft für Power BI, Analysis Services und Power Pivot in Excel. Mit DAX erstellt man Kennzahlen, berechnete Spalten und Tabellen. Das Ergebnis einer Berechnung hängt von der Struktur des Modells und vom Kontext ab, in dem die Formel ausgeführt wird.
Excel-Formeln beziehen sich in der Regel auf Zellen und Bereiche, DAX-Formeln dagegen auf Tabellen und Spalten des Modells. Eine Kennzahl mit SUM wird zum Beispiel entsprechend den aktuellen Filtern des Berichts neu berechnet.
Wofür ein Analyst DAX braucht:
- Berechnung von Business-Kennzahlen: Marge, Conversion, LTV — Werte, die sich nicht durch einfaches Summieren einer Spalte ermitteln lassen.
- Zeitintelligenz: Vorjahresvergleiche, kumulierte Summen, Werte zu Periodenbeginn und -ende.
- Dynamische Berechnungen: Kennzahlen werden entsprechend den vom Nutzer gewählten Filtern neu berechnet und speichern kein eigenes Ergebnis je Zeile.
Wenn ein Unternehmen Power BI für das Business einsetzt, braucht es DAX für eigene Kennzahlen und Berechnungen, die sich mit den Filtern des Berichts verändern.
DAX vs. Power Query: worin liegt der Unterschied
Power Query bereitet die Daten auf und transformiert sie, bevor sie ins Modell geladen werden; DAX führt die Berechnungen bereits innerhalb des Modells aus.
| Kriterium | Power Query | DAX |
|---|---|---|
| Wann es greift | Beim Laden und Aufbereiten der Daten | Im Datenmodell: berechnete Spalten und Tabellen werden bei der Datenaktualisierung berechnet, Kennzahlen während der Arbeit mit dem Bericht. |
| Was es tut | Bereinigt, filtert und verbindet Tabellen aus verschiedenen Quellen | Führt Berechnungen im Datenmodell aus: erstellt Kennzahlen, berechnete Spalten und Tabellen. |
| Sprache | M (Power Query M) | DAX (Data Analysis Expressions). |
| Ergebnis | Eine neue Tabelle oder Spalte im Modell | Hängt von der Art der Berechnung ab: eine Kennzahl ändert ihr Ergebnis entsprechend den aktuellen Filtern, berechnete Spalten und Tabellen speichern die berechneten Werte im Modell. |
| Beispielaufgabe | Daten aus CRM und Excel-Datei in einer Tabelle zusammenführen | Den Anteil der Bestandskunden an der Gesamtzahl berechnen |
Power Query ist für die Datenaufbereitung zuständig, DAX-Funktionen für die Berechnungen im Modell. Eine syntaktisch korrekte DAX-Formel kann trotzdem ein falsches Ergebnis liefern — wegen eines Fehlers in der Logik, in den Beziehungen oder im Kontext.
Grundlegende DAX-Funktionen
Man muss nicht alle DAX-Funktionen auf einmal lernen. Wichtiger ist es, zuerst die Basisfunktionen zu beherrschen und zu verstehen, wie der Kontext die Berechnung beeinflusst.
CALCULATE
CALCULATE ist eine der zentralen DAX-Funktionen: Sie berechnet einen Ausdruck in einem veränderten Filterkontext.
Grundsyntax:
CALCULATE(<Ausdruck>, <Filter1>, <Filter2>, …)
Beispiel: Die Umsätze der Kategorie „Elektronik“ sollen berechnet werden, auch wenn im Bericht über das Feld Product[Category] eine andere Kategorie ausgewählt ist:
Umsatz Elektronik = CALCULATE(SUM(Sales[Amount]), Product[Category] = „Elektronik“)
CALCULATE ersetzt den aktuellen Filter auf Product[Category], die Filter nach Zeitraum, Region und so weiter bleiben jedoch aktiv. Das ist eines der Grundprinzipien beim Schreiben komplexerer DAX-Formeln.
SUM, SUMX und iterative Funktionen
SUM ist die einfachste Aggregationsfunktion, sie summiert die Werte einer Spalte:
Gesamtsumme = SUM(Sales[Amount])
Für Berechnungen, bei denen der Ausdruck für jede Zeile ausgeführt werden muss, nutzt man die iterativen Funktionen SUMX, AVERAGEX und COUNTX. Sie berechnen den Ausdruck Zeile für Zeile und aggregieren anschließend das Ergebnis.
Ein klassisches Beispiel ist der Umsatz, wenn Preis und Menge in unterschiedlichen Spalten stehen:
Umsatz = SUMX(Sales, Sales[Menge] * Sales[Preis])
In diesem Beispiel passt SUM nicht, weil die Werte in jeder Zeile zuerst multipliziert werden müssen.
Time Intelligence — Formeln für Zeiträume
DAX-Datumsfunktionen werden für Periodenvergleiche verwendet, etwa Monat zu Monat, Jahr zu Jahr, oder für kumulierte Summen.
- SAMEPERIODLASTYEAR liefert die Datumswerte des entsprechenden Zeitraums im Vorjahr.
- DATESYTD liefert die Datumswerte vom Jahresbeginn bis zum aktuellen Datum in der Berechnung.
- PREVIOUSMONTH und PREVIOUSQUARTER liefern die Datumswerte des Vormonats bzw. des Vorquartals.
- DATEADD verschiebt eine Datumsmenge um einen festgelegten Zeitraum.
Diese Funktionen werden meist innerhalb von CALCULATE verwendet, um auf Basis der erhaltenen Datumsmenge die gewünschte Kennzahl zu berechnen.
Beispielformel für den Umsatzvergleich Jahr zu Jahr:
Umsatz Vorjahr = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date]))
Solche Formeln in Power BI kommen in KPI-Dashboards zum Einsatz, um Kennzahlen zwischen Zeiträumen automatisch zu vergleichen.
Für die klassische Zeitintelligenz wird eine separate Datumstabelle benötigt: mit eindeutigen Werten, ohne Lücken und leere Einträge, über vollständige Jahre und in Power BI als Datumstabelle gekennzeichnet.
Typische Fehler beim Schreiben von DAX
Wer gerade erst lernt, wie man DAX-Formeln schreibt, sollte sich zuerst mit den Fehlern befassen, die das Rechenergebnis unmittelbar beeinflussen. Hier die häufigsten DAX-Fehler und wie man sie vermeidet.
- Verwechslung von Zeilen- und Filterkontext. Der erste bestimmt die aktuelle Zeile, unter anderem in SUMX, der zweite die Datenmenge, die unter dem Einfluss von Filtern, Beziehungen und der Formel selbst in die Berechnung eingeht.
- Berechnete Spalte statt Kennzahl. Eine Spalte wird bei der Aktualisierung berechnet und im Modell gespeichert, eine Kennzahl dagegen während der Arbeit mit dem Bericht, und sie reagiert auf Filter. Für einen dynamischen Wert braucht man in der Regel eine Kennzahl.
- Division ohne Prüfung des Nenners. Wenn dieser null oder leer sein kann, verwenden Sie DIVIDE: Marge % = DIVIDE([Gewinn], [Umsatz]). Standardmäßig gibt die Funktion BLANK zurück; mit dem dritten Argument lässt sich ein anderer Wert festlegen.
- Ungünstige Filter in CALCULATE. Für einfache Bedingungen filtert man besser direkt über die Spalte und setzt FILTER für komplexere Logik ein.
- Unverständliche Namen von Kennzahlen. "Measure1" erschwert die Pflege des Modells, während "Marge % laufender Monat" den Zweck der Berechnung sofort deutlich macht.
Beispiele für DAX-Formeln in Businessberichten
Nachfolgend einige DAX-Formeln für typische Businessberichte:
Anteil der Bestandskunden:
% Bestandskunden = VAR Bestandskunden = FILTER( VALUES(Sales[ClientID]), CALCULATE(DISTINCTCOUNT(Sales[OrderNumber])) > 1 ) RETURN DIVIDE( COUNTROWS(Bestandskunden), DISTINCTCOUNT(Sales[ClientID]) )
Als Bestandskunde gilt hier ein Kunde mit mehr als einer eindeutigen Bestellung im aktuellen Berichtskontext.
Kumulierter Umsatz seit Jahresbeginn:
Umsatz YTD = TOTALYTD(SUM(Sales[Amount]), Calendar[Date])
Entwicklung gegenüber dem Vormonat (in %):
Umsatz Vormonat = CALCULATE( [Gesamtsumme], PREVIOUSMONTH(Calendar[Date]) )
Entwicklung MoM % = DIVIDE( [Gesamtsumme] – [Umsatz Vormonat], [Umsatz Vormonat] )
TOP-N Produkte nach Umsatz (für Ranking-Visuals):
Produktrang = RANKX(ALL(Product[Name]), [Umsatz], , DESC)
Um tatsächlich die TOP-N Produkte zu erhalten, muss nach der Rangberechnung ein entsprechender Filter auf das Visual angewendet werden, zum Beispiel Produktrang <= 10.
Aktive Kunden der letzten 90 Tage:
Aktive Kunden 90T = CALCULATE( DISTINCTCOUNT(Sales[ClientID]), DATESINPERIOD(Calendar[Date], MAX(Calendar[Date]), -90, DAY) )
Wie IWIS komplexe DAX-Modelle für Kunden aufbaut
Zu den Business-Intelligence-Projekten von IWIS zählen Lösungen für Planeta Kino, Helen Marlen, BAT, Swiss Krono und weitere Unternehmen. In komplexen Power-BI-Modellen geht die Geschäftslogik oft weit über einfaches SUM und CALCULATE hinaus.
Der typische Ablauf der Teamarbeit an einem DAX-Modell:
- Audit der Geschäftslogik. Das Team klärt, wie das Unternehmen jede Kennzahl berechnet, und stimmt einheitliche Regeln ab.
- Entwurf des Datenmodells. Die Struktur der Tabellen, die Datumstabelle und die Beziehungen zwischen ihnen bestimmen die spätere Komplexität der DAX-Formeln.
- Schreiben und Optimieren der Kennzahlen. Die Performance wird an Daten geprüft, die in Volumen und Struktur den Echtdaten nahekommen.
- Dokumentation der Logik. Für komplexe Kennzahlen werden Datenquellen und Berechnungsregeln festgehalten.
Kostenlose Beratung von IWIS
Wenn DAX-Formeln falsche Ergebnisse liefern, das Dashboard langsam läuft oder die Kennzahlen nicht zusammenpassen, müssen das Modell, die Beziehungen, die Filter, die Geschäftslogik und die Formeln selbst geprüft werden.
In einer kostenlosen Beratung wird das IWIS-Team:
- Ihre Datenstruktur und Ihr DAX-Modell analysieren;
- die Ursachen für Abweichungen in den Berechnungen finden;
- aufzeigen, welche Kennzahlen überarbeitet oder optimiert werden sollten;
- ein Format für die Einführung von Business Intelligence auf Basis von Power BI empfehlen, das zu Ihren Prozessen passt.
Bringen wir Ihr DAX-Modell in Ordnung
Fordern Sie eine kostenlose Beratung an — wir sehen uns Ihr Datenmodell und Ihre Berechnungen gemeinsam an.
Kontakt aufnehmenHäufig gestellte Fragen
Was ist DAX in Power BI?
DAX (Data Analysis Expressions) ist die Formelsprache für Berechnungen in Power BI. DAX arbeitet mit den Tabellen, Spalten und Beziehungen des Datenmodells, und das Ergebnis einer Kennzahl ändert sich je nach den aktuellen Filtern im Bericht.
Wofür wird DAX benötigt?
Mit DAX lassen sich eigene Business-Kennzahlen erstellen: zum Beispiel die Marge berechnen, Werte zwischen Zeiträumen vergleichen oder eine kumulierte Summe bilden. Power BI funktioniert auch ohne eigene DAX-Formeln, aber DAX in Power BI wird für Berechnungen gebraucht, die in den Quelldaten nicht vorhanden sind und sich je nach Berichtsfiltern ändern müssen.
Worin unterscheidet sich eine Measure von einer berechneten Spalte?
Eine berechnete Spalte wird bei der Datenaktualisierung berechnet, ihre Werte werden im Modell gespeichert. Eine Kennzahl (Measure) wird während der Arbeit mit dem Bericht berechnet und reagiert auf die aktuellen Filter, etwa auf die gewählte Region oder den Zeitraum. Für dynamische Werte nutzt man in der Regel Kennzahlen, berechnete Spalten braucht man für Berechnungen auf Zeilenebene.
Welche DAX-Funktionen sollte ein Analyst kennen?
Es genügt, den Grundstock sicher zu beherrschen: CALCULATE (Änderung des Filterkontexts), SUM und SUMX (Aggregation), DIVIDE (sichere Division) sowie die Zeitintelligenz-Funktionen — SAMEPERIODLASTYEAR, DATESYTD, TOTALYTD.
Wie funktioniert die Funktion CALCULATE in DAX?
CALCULATE berechnet einen Ausdruck, nachdem die Filterbedingungen geändert wurden. So lassen sich zum Beispiel die Umsätze einer bestimmten Kategorie ermitteln, indem der aktuelle Filter durch die Produktkategorie ersetzt wird, während die übrigen Berichtsfilter erhalten bleiben. Deshalb ist das Verständnis von CALCULATE die Grundlage für viele komplexere DAX-Formeln.
Mit welchen DAX-Formeln sollte man anfangen?
DAX für Einsteiger beginnt am besten mit den einfachen Aggregationsfunktionen SUM, AVERAGE und COUNT, danach folgen DIVIDE und CALCULATE und anschließend die Funktionen der Zeitintelligenz. Für klassische Zeitraumberechnungen muss außerdem eine separate Datumstabelle angelegt und korrekt konfiguriert werden.
Interessante Materialien für Sie