Excel-TippLaufende Summen in Power Query berechnen

Erfahren Sie, wie Sie in Power Query einen fortlaufenden Saldo (laufende Summe) mit der Funktion List.Range und List.Sum berechnen können.

Oft benötigt man in Berichten oder Analysen eine kumulierte Summe, zum Beispiel bei Lagerbewegungen, Finanzdaten oder anderen Transaktionslisten. Power Query bringt keine eingebaute „Running Total“-Funktion mit, doch mit List.Range und List.Sum lässt sich der fortlaufende Saldo elegant berechnen.

Folgende Voraussetzungen müssen erfüllt sein, damit Sie in Power Query eine laufende Summe berechnen können:

  • Datum (oder eine andere Spalte, nach der sortiert werden kann)
  • Eine Spalte mit Werten, die kumuliert werden sollen (zum Beispiel „Anzahl“ oder „Betrag“)

In der folgenden Abbildung sehen Sie die Abfrage „Lagerbewegungen“ mit Zu- und Abgängen je Datum, die als Beispiel dienen soll.

Liste mit Werten in einer Power-Query-Tabelle

Power-Query-Tabelle für die Berechnung der laufenden Summe vorbereiten

Damit Sie die laufende Summe berechnen können, müssen Sie als Erstes sicherstellen, dass die Datensätze in sortierter Form vorliegen. Sie müssen die Daten nach der Datumsspalte aufsteigend sortieren.

Klicken Sie hierzu in der Spalte Datum auf den Filterpfeil, der am rechten Rand der Spaltenbeschriftung angezeigt wird.

Daten in der Power-Query-Tabelle sortieren

Daraufhin öffnet sich das Filter- und Sortiermenü. Klicken Sie hier auf den Eintrag Aufsteigend sortieren.

Einstellungen für das Sortieren über den Spaltenfilter in Power Query

Die Daten werden daraufhin in aufsteigender Form sortiert im Power-Query-Editor dargestellt.

Nach Datum sortierte Liste

Als Nächstes benötigen wir eine Indexspalte als Hilfsspalte. Diese Indexspalte gibt jeder Zeile eine Position (1, 2, 3 …). Diese Position nutzen Sie später, um per List.Range die Liste der ersten n Werte (inklusive der aktuellen Zeile) zu extrahieren.

Klicken Sie im Menüband auf die Befehlsfolge Spalte hinzufügen > Indexspalte > Von 1.

Indexspalte in Power Query hinzufügen

Daraufhin wird automatisch eine neue Indexspalte in der Abfrage – beginnend mit 1 – eingefügt.

Tabelle mit fortlaufender Indexspalte

Fortlaufende Summe in neuer Power-Query-Spalte berechnen

Fügen Sie nun eine benutzerdefinierte Spalte ein, um die laufende Summe je Zeile zu berechnen.

Klicken Sie hierzu im Menüband auf die Befehlsfolge Spalte hinzufügen > Benutzerdefinierte Spalte.

Benutzerdefinierte Spalte hinzufügen

Es öffnet sich das Dialogfeld Benutzerdefinierte Spalte. Erfassen Sie hier die folgende Formel

=List.Sum(List.Range(Index_neu[Anzahl], 0, [Index]))

Der Ausdruck Index_neu entspricht hier dem Namen des Schrittes, in welchem die Indexspalte erstellt worden ist (siehe folgende Abbildung).

Formel zur Berechnung der laufenden Summe

Mit List.Range(#"SchrittName"[WertSpalte], 0, [Index]) erzeugen Sie eine Liste, die bei Position 0 beginnt und eine Länge bis zum aktuellen Index hat:

  • #"SchrittName" – Name des Schrittes, in dem die Indexspalte erstellt wurde. Im Beispiel ist dies Index_neu.
  • [WertSpalte] – Die Spalte, welche die zu summierenden Werte beinhaltet und die in der erzeugten Liste aufgeführt sein sollen. Im Beispiel ist dies die Spalte [Anzahl].
  • 0 – bezeichnet die Position, bei der die Liste beginnen soll.
  • [Index] = Name der erstellten Indexspalte. Hier wird der Wert für das Ende der Liste entnommen.

Anschließend wird diese Liste in jeder Zeile mit der Funktion List.Sum zum fortlaufenden Saldo summiert.

Ergebnis: Neue Power-Query-Spalte mit der laufenden Summe

Sie können nun die Hilfsspalte (Index) entfernen und der benutzerdefinierten Spalte noch einen aussagekräftigen Namen und entsprechenden Datentyp zuweisen.

Performance-Hinweis

Bei sehr vielen Zeilen kann die kumulative List.Range-Berechnung relativ langsam sein. Für moderate Datenmengen (einige zehntausend Zeilen) ist es aber meist akzeptabel.

Bei großen Datenmengen prüfen Sie, ob Sie auf Datenbankebene (SQL-Windows-Funktion) oder in Power BI/DAX ausweichen können, wo laufende Summen oft effizienter berechnet werden.

Fehlerquellen & Tipps

  • Schrittname exakt: Achten Sie darauf, dass im Ausdruck List.Range(MitIndex[Anzahl], 0, [Index]) die Schrittreferenz (MitIndex) genau so existiert. Andernfalls gibt es einen Fehler in Power Query.
  • Indexbeginn: Im Beispiel wurde der Index-Start mit 1 festgelegt. Wenn Sie bei 0 anfangen, müssen Sie bei Länge [Index]+1 am Ende berücksichtigen.
  • Datumstyp: Sortieren funktioniert nur korrekt, wenn die Datumsspalte als Datum formatiert ist.

Zusammenfassung

Mit List.Range und List.Sum lässt sich in Power Query eine laufende Summe (fortlaufender Saldo) zuverlässig berechnen. Die Kernschritte sind:

  • Tabelle sortieren (zum Beispiel nach Datum).
  • Indexspalte hinzufügen (Start bei 1).
  • In einer benutzerdefinierten Spalte mit List.Sum(List.Range(<SchrittName>[WertSpalte], 0, [Index])) den kumulierten Wert berechnen.

Dieses Muster lässt sich für Lagerbestände, Finanztransaktionen oder andere kumulative Analysen nutzen. Passen Sie die jeweiligen Namen nach Bedarf an und validieren Sie das Ergebnis in Power Query, bevor Sie es weiterverwenden.

Vorlagen nutzen

Excel-Tipps