Power Query: Blick hinter die Kulissen von List.Accumulate

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.

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 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 in Power Query Wissen aufbauen oder ausbauen möchte, findet hier passende Kurse:

Dieser Beitrag wurde unter Excel abgelegt und mit , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert