Power Pivot für die DatenanalyseUmsatz berechnen mit der DAX-Funktion SUMX in Power Pivot
In Ihren Daten mit den Tabellen für Bestellungen (Faktentabelle tbl_Bestellungen) und für die Produkte (Dimensionstabelle tbl_Produkte) steht, welche Mengen gekauft wurden und welchen Preis die einzelnen Produkte haben. Nun wollen Sie aus diesen Daten den Umsatz berechnen.
Oft wird er zunächst als berechnete Spalte (zum Beispiel Menge × Stückpreis) angelegt und anschließend summiert. Das funktioniert – ist aber weder speichereffizient noch besonders „Power-Pivot-like“.
Die bessere Lösung ist ein Measure mit der DAX-Funktion SUMX(). Dieser Beitrag erklärt, warum das so ist, wie Sie diese Funktion korrekt einsetzen und anschließend das Modell aufräumen.
Warum eine berechnete Spalte für Umsatz nicht optimal ist
Der einfache oder naheliegende Weg wäre:
- In der Tabelle tbl_Bestellungen eine berechnete Spalte Umsatz (BS) anlegen: Menge * Stückpreis.
- In der Pivot-Tabelle die Summe dieser Spalte anzeigen.
Probleme dabei sind:
- Die berechnete Spalte speichert einen Wert für jede Zeile → dauerhafter Speicherbedarf.
- Sie legen eine Zwischenrechnung ab, welche Sie später ohnehin nur aggregieren.
- Mehr Felder in der Feldliste → unnötige Komplexität.
Deshalb gilt folgende Faustregel: Wenn eine Spalte nur erzeugt wird, um sie danach zu aggregieren, ersetzt Sie sie besser durch ein Measure.
Warum SUM() allein oft nicht reicht
Ein naheliegender Versuch wäre nun dieses Measure zu nutzen:
Umsatz := SUM(tbl_Bestellungen[Menge] * tbl_Produkte[Einzelpreis])
Das schlägt fehl, denn SUM() akzeptiert nur eine einzelne Spalte – keinen Ausdruck wie die Multiplikation in diesem Beispiel. Es erscheint eine Fehlermeldung, wenn Sie die Formel überprüfen.
Sie brauchen also eine Funktion, die zeilenweise einen Ausdruck berechnet und danach summiert.
Die Lösung: SUMX – der Summenprodukt-Ansatz in DAX
In Excel gibt es für solche Fälle die Funktion SUMMENPRODUKT. In DAX ist das Pendant die Funktion SUMX().
SUMX ist ein sogenannter Iterator:
- Er läuft durch eine Tabelle,
- berechnet pro Zeile einen Ausdruck und
- addiert dann alle Ergebnisse.
SUMX besitzt die folgende Syntax:
=SUMX(Tabelle;Ausdruck)
- Tabelle: die Tabelle, die zeilenweise durchlaufen wird.
- Ausdruck: der Ausdruck, der in jeder Zeile berechnet werden soll.
Am Ende summiert SUMX die Ergebnisse aller Zeilen.
Standardfall: Menge und Preis stehen in derselben Tabelle
Befinden sich Menge und Preis in der gleichen Tabelle, dann können Sie mit der folgenden Formel den Umsatz in einem Measure berechnen:
Umsatz := SUMX(tbl_Bestellungen; tbl_Bestellungen[Menge] * tbl_Bestellungen[Einzelpreis])
Im ersten Argument legen Sie fest, welche Tabelle zeilenweise mit der Funktion SUMX durchgegangen werden soll:
:= SUMX(tbl_Bestellungen; tbl_Bestellungen[Menge] * tbl_Bestellungen[Einzelpreis])
Dies im Beispiel die Tabelle tbl_Bestellungen.
Anschließend legen Sie im zweiten Argument (Ausdruck) den Rechenvorgang pro Zeile fest.
:= SUMX(tbl_Bestellungen; tbl_Bestellungen[Menge] * tbl_Bestellungen[Einzelpreis])
Im letzten Schritt werden die Ergebnisse pro Zeile dann summiert.
Alternativer Fall: Menge und Preis stehen in unterschiedlichen Tabellen
In diesem Beispiel ist der Einzelpreis aber in der Tabelle tbl_Produkte hinterlegt. Sie müssen den Preis daher je Zeile mit der Funktion RELATED() in die entsprechende Zeile der Tabelle tbl_Bestellungen holen. Das Measure lautet deshalb:
Umsatz:=SUMX(tbl_Bestellungen;tbl_Bestellungen[Menge] * RELATED(tbl_Produkte[Einzelpreis]))
Und so definieren Sie nun das Measure in Power Pivot: Aktivieren Sie im Menüband die Befehlsfolge Registerkarte Power Pivot > Befehlsgruppe Berechnungen > Befehl Measures > Befehl Neues Measure.
Vorteile von SUMX gegenüber Hilfsspalten
- Speichereffizienz: Keine zusätzlichen Millionen Zellwerte im Modell.
- Schnelligkeit: Modelle laden und berechnen schneller.
- Flexibilität: Formeln sind zentral steuerbar und leicht anpassbar.
- Sauberkeit: Die Feldliste bleibt schlank – keine Hilfsspalten, die nur für Aggregationen gedacht sind.
- Wiederverwendbarkeit: Measures sind in allen Pivot-Tabellen nutzbar.
Fazit
Mit SUMX haben Sie eine der wichtigsten DAX-Funktionen kennengelernt. Sie ersetzt in vielen Fällen Hilfsspalten und macht Ihr Modell deutlich effizienter.
Wenn Sie eine berechnete Spalte nur deshalb hinzufügen, um ihre Werte später zu summieren, sollten Sie stattdessen ein Measure wie mit SUMX verwenden.
So bleibt Ihr Datenmodell schlank, schnell und professionell – und Sie behalten die volle Kontrolle über Ihre Kennzahlen.