DAX Funktion sumx

Welche Bedeutung hat die Funktion sumx?

SUMX in Power BI: Der Schlüssel zu dynamischen Berechnungen

Wenn du in Power BI mit DAX arbeitest, wirst du früher oder später über SUMX stolpern – und das ist auch gut so. Denn SUMX gehört zu den leistungsstärksten Funktionen im Power BI-Universum. In diesem Artikel erfährst du, was SUMX ist, wann du sie brauchst und wie du sie richtig einsetzt. Mit praktischen Beispielen und Profi-Tipps für deinen Power BI-Alltag.

Was ist SUMX?

Die DAX-Funktion SUMX gehört zu den sogenannten Iterator-Funktionen. Im Gegensatz zur einfachen SUM-Funktion, die lediglich eine Spalte summiert, geht SUMX einen Schritt weiter:

👉 SUMX durchläuft zeilenweise eine Tabelle, berechnet für jede Zeile einen Ausdruck und summiert das Ergebnis.

Das ermöglicht dir, Berechnungen in Abhängigkeit anderer Spaltenwerte vorzunehmen – und zwar dynamisch und kontextsensitiv.

Syntax von SUMX

dax

KopierenBearbeiten

SUMX(<Tabelle>, <Ausdruck>)

<Tabelle>: Eine DAX-Tabelle (z. B. eine physische Tabelle oder eine gefilterte virtuelle Tabelle).

<Ausdruck>: Ein Ausdruck, der für jede Zeile ausgewertet wird. Häufig eine Berechnung mit Spaltenwerten.

Einfaches Beispiel: Umsatz berechnen

Stell dir vor, du hast eine Tabelle Sales mit den Spalten Menge und Preis.

dax

KopierenBearbeiten

Gesamtumsatz = SUMX(Sales, Sales[Menge] * Sales[Preis])

✅ SUMX berechnet für jede Zeile den Umsatz (Menge * Preis) und summiert anschließend alle Zeilen auf.

Im Gegensatz dazu würde ein einfacher SUM(Sales[Menge] * Sales[Preis]) nicht funktionieren – weil SUM keine Ausdrücke über mehrere Spalten akzeptiert.

SUMX vs. SUM – Wo liegt der Unterschied?

Funktion

Was sie tut

Wann einsetzen

SUM

Summiert eine Spalte direkt.

Wenn du einfach Werte aufsummieren willst.

SUMX

Summiert das Ergebnis eines Ausdrucks pro Zeile.

Wenn du berechnete Werte pro Zeile brauchst.

 

Beispiel:

dax

KopierenBearbeiten

SUM(Sales[Umsatz])                 // OK, wenn Spalte vorhanden SUMX(Sales, Sales[Menge]*Sales[Preis])   // Wenn Umsatz nicht als Spalte existiert

Typische Anwendungsfälle für SUMX

💡 1. Dynamischer Umsatz mit Rabatten

dax

KopierenBearbeiten

UmsatzNachRabatt = SUMX(Sales, Sales[Menge] * Sales[Preis] * (1 - Sales[Rabatt]))

💡 2. Lagerwert pro Produkt

dax

KopierenBearbeiten

Lagerwert = SUMX(Products, Products[Lagerbestand] * Products[Einkaufspreis])

💡 3. Berechnung mit Filtern

dax

KopierenBearbeiten

VerkaufPremium = SUMX(    FILTER(Sales, Sales[Produktgruppe] = "Premium"),    Sales[Menge] * Sales[Preis] )

Hier wird zunächst mit FILTER eine virtuelle Tabelle erstellt – SUMX iteriert dann nur über diese gefilterten Zeilen.

Performance-Hinweise zu SUMX

SUMX ist mächtig, aber auch performancekritisch – besonders bei großen Datenmodellen.

Tipps:

Vermeide unnötige Berechnungen in der Zeile – z. B. komplexe IF/LOOKUPs.

Reduziere Filterkomplexität, wenn möglich.

Nutze CALCULATE nur wenn nötig – oft kann man SUMX mit einfachen Ausdrücken effizienter halten.

Prüfe deine Measures mit dem Performance Analyzer in Power BI Desktop.

SUMX mit RELATED: Daten aus verknüpften Tabellen nutzen

dax

KopierenBearbeiten

UmsatzMitKundendaten = SUMX(    Sales,    Sales[Menge] * Sales[Preis] * RELATED(Customers[Rabattfaktor]) )

🔗 Mit RELATED greifst du auf Felder aus einer verknüpften Tabelle zu – perfekt bei normalisierten Datenmodellen.

Typische Fehler bei SUMX (und wie du sie vermeidest)

Fehler

Erklärung

Lösung

Ausdruck ergibt leere Werte

Nullwerte in Berechnung

IF(ISBLANK(), 0, ...) verwenden

Rechenfehler durch falschen Kontext

SUMX ignoriert Kontextfilter nicht automatisch

Kontext mit CALCULATE oder REMOVEFILTERS steuern

Schlechte Performance

SUMX auf großen Tabellen mit teuren Berechnungen

Vorab aggregieren, evtl. über Power Query

 

Fazit: Wann solltest du SUMX verwenden?

✅ Verwende SUMX, wenn du:

Berechnungen zeilenweise durchführen willst.

Spaltenwerte miteinander multiplizieren oder kombinieren willst.

Nur virtuell berechnete Werte summieren möchtest.

Komplexe Logik pro Zeile abbilden willst.

Vermeide SUMX, wenn eine einfache SUM ausreicht – du sparst Performance und Komplexität.

Bonus: SUMX kombiniert mit CALCULATE

Du kannst SUMX auch mit CALCULATE kombinieren, um den Kontext noch stärker zu steuern:

dax

KopierenBearbeiten

SUMX(    FILTER(Sales, Sales[Region] = "Süd"),    CALCULATE(Sales[Menge] * Sales[Preis]) )

Dies macht Sinn, wenn du innerhalb von SUMX auf einen modifizierten Filterkontext zugreifen möchtest.

 

© 2025 - software consult peter vittinghoff

Wir benötigen Ihre Zustimmung zum Laden der Übersetzungen

Wir nutzen einen Drittanbieter-Service, um den Inhalt der Website zu übersetzen, der möglicherweise Daten über Ihre Aktivitäten sammelt. Bitte überprüfen Sie die Details in der Datenschutzerklärung und akzeptieren Sie den Dienst, um die Übersetzungen zu sehen.