Office-Blog

Power Query: Blick hinter die Kulissen von List.Accumulate

05.04.2023   Hildegard Hügemann

In meinem Blogbeitrag vom 22. März 2023 habe ich List.Accumulate benutzt, um automatisiert die Ersetzungen vornehmen zu lassen, die für die einheitliche Schreibweise von Straßennamen erforderlich sind.
Genau das ist der Kern von List.Accumulate. Diese Power Query-Funktion erlaubt es, eine Aktion über eine Liste von Werten mehrfach auszuführen – wie eine Schleife in der Programmierung.
List.Accumulate gehört zu den komplexeren Funktionen von Power Query. Wie sie arbeitet, zeige ich an einem einfachen Beispiel: Ergebnisse beim Würfeln werden mit List.Accumulate summiert.

Foto eines Würfelbechers mit sechs Würfeln: List.Accumulate anhand eines Beispiels mit sechs Würfeln erklärt

List.Accumulate anhand eines Beispiels mit sechs Würfeln erklärt

Der Aufbau von List.Accumulate

List.Accumulate hat drei Argumente:

  1. eine Liste mit Werten,
  2. einen Startwert und
  3. eine Anweisung in Form einer Funktion.

Wozu wird hier eine Funktion benötigt und was ist eine Funktion?

  • Funktionen werden benötigt, um Schritte wiederzuverwenden.
  • Wie hier in List.Accumulate soll eine Anweisung mehrfach ausgeführt werden, aber mit jeweils anderen Parametern.
  • Die Parameter werden in Klammern der Anweisung vorangestellt und innerhalb der Anweisung verarbeitet.

Funktionsweise von List.Accumulate anhand eines einfachen Beispiels mit Würfeln

Im Beispiel der Würfelergebnisse sieht die Arbeit von List.Accumulate wie folgt aus:

Erster Durchlauf:
Die Funktion wird mit dem Startwert 0 als Gesamt und dem ersten Listeneintrag – hier 2 – als Aktuell aufgerufen.
Das Ergebnis ist 0 + 2 = 2.
Die 2 dient als Startwert für den zweiten Durchlauf.

Zweiter Durchlauf:
Gesamt: 2, Aktuell: 4; das Ergebnis ist 2 + 4 = 6.

Dritter Durchlauf:
Gesamt: 6, Aktuell: 1; das Ergebnis ist 6 + 1 = 7.

Das Ganze endet dann nach mehreren Durchläufen mit dem letzten Listenelement.
Gesamt: 20 ist dann das Ergebnis von List.Accumulate.

List.Accumulate durchläuft die angegebene Liste und addiert pro Durchlauf ein Listenelement

List.Accumulate beim Vereinheitlichen der Schreibweise von Straßennamen

Beim Bereinigen der Straßennamen habe ich List.Accumulate nicht zum Summieren, sondern zum Ersetzen verwendet. Dazu habe ich verschiedene Ersetzungstexte in einer Mapping-Tabelle hinterlegt. Diese Mapping-Tabelle durchläuft List.Accumulate zeilenweise für jeden Straßennamen und stößt einen möglichen Ersetzungsprozess an.
Wie die Mapping-Tabelle aufgebaut ist und welche Ergebnisse List.Accumulate liefert, ist in meinem Beitrag vom 22. März 2023 nachzulesen.

List.Accumulate durchläuft alle Zeilen einer Mapping-Tabelle für mögliche Ersetzungsprozesse

Wer sich in Power Query einarbeiten will, …

… hat dazu wieder am 6. September Gelegenheit, und zwar in meinem Online-Kurs Daten automatisiert importieren, bereinigen und transformieren

Hier geht’s zu den Kursdetails und zur Anmeldung.

TIPP: Wer hier im Blog ALLE Rezepte zu Power Query finden möchte, gibt einfach oben rechts in das Suchfeld Power-Query-Rezept ein.

Über den Autor

Hildegard Hügemann

- Dipl.-Informatikerin
- Zertifizierte Office-Trainerin mit den Schwerpunkten Excel, Access, Word
- Entwicklerin von Excel-Tools zur Projekt-, Produktions- und Verkaufssteuerung
- Coach bei der Datenaufbereitung mit Access, Power Query und Power Pivot
- Entwicklerin von Access-Datenbanken für Mittelständler und Behörden
- Bloggerin zu Excel und Access auf www.huegemann-informatik.de
- Autorin für Microsoft Press, dpunkt.verlag und das »Projekt Magazin«