Office-Blog

Power Query: Aus mehreren Ordnern nur ausgewählte Dateien zusammenführen

10.08.2023   Hildegard Hügemann

Dass sich mit Power Query alle Dateien aus einem Ordner zusammenfassen lassen, ist vielen bekannt. Was aber, wenn es mehrere Ordner sind? Und was, wenn nicht alle, sondern nur ausgewählte Dateien aus diesen Ordnern zusammengefasst werden sollen?

Wie das in drei Schritten geht, zeige ich, indem ich das Beispiel aus meinem Blogbeitrag vom 3. Juli 2023 erweitere.

Bild 1: Aus mehreren Ordnern nur ausgewählten Dateien zusammenführen

Bild 1: Aus den oben gezeigten drei Ordnern nur die markierten Dateien zusammenführen

1) Liste mit den betreffenden Ordnern und Dateien anlegen und in Power Query einlesen

Zuerst hinterlege ich in einer »intelligenten« Tabelle die Pfade und Namen der Dateien, die zusammengeführt werden sollen.

Das erledige ich wie folgt:

  • Ich erstelle zwei Spaltenüberschriften Ordner und Dateiname und belasse die Markierung in einer der zwei Zellen.
  • Mit Strg+T und anschließendem Setzen des Häkchens bei Tabelle hat Überschriften erzeuge ich eine leere »intelligente« Tabelle.
  • Über die Registerkarte Tabellenentwurf gebe ich ihr den Namen tbl_Lieferdateien.
  • Nun trage ich wie in Bild 2 gezeigt in die Tabelle die gewünschten Ordnerpfade und Dateinamen ein.
Bild 2: In einer »intelligenten« Tabelle alle einzulesenden Ordner und Dateien hinterlegen

Bild 2: In einer »intelligenten« Tabelle alle einzulesenden Dateipfade hinterlegen

Diese Tabelle lese ich nun in Power Query wie folgt ein.

  • Ich klicke in die Tabelle und wähle auf der Registerkarte Daten > Aus Tabelle/Bereich.
  • Die Abfrage benenne ich um in Lieferungen (Bild 3 rechts).
Bild 3: Die Liste der zusammenzuführenden Dateien in Power Query einlesen

Bild 3: Die Liste der zusammenzuführenden Dateien in Power Query einlesen

2) Prototyp anlegen: Eine einzelne Datei einlesen und die dabei erzeugte Abfrage als Funktion bereitstellen

Für Dateien, die in Power Query eingelesen werden, sind meist einige Bereinigungsschritte nötig, bevor sie weiterverarbeitet werden können. Das ist auch hier so. Wie im Blogbeitrag vom 3. Juli 2023 gezeigt, muss jede einzelne Lieferungsdatei zunächst um Spalten mit den Kopfdaten erweitert werden.

Damit ich das später automatisch für alle Dateien erledigen lassen kann, baue ich einen Prototyp. Dieser erhält die gleichen Transformationsschritte, wie die Musterdatei im oben genannten Blogbeitrag.

  • Im Power Query-Editor wähle ich über Start > Neue Quelle > Datei > Text/CSV eine der betreffenden Dateien aus. Die Abfrage benenne ich LieferungAuslesen.
  • Auf der Registerkarte Start klicke ich auf Zeilen entfernen > Erste Zeilen entfernen > 5.
  • Anschließend verschiebe ich mit Start > Erste Zeile als Überschriften verwenden die Überschriften nach oben.
  • Ich wähle Spalte hinzufügen > Benutzerdefinierte Spalte > Neuer Spaltenname: Lieferant. Als benutzerdefinierte Spaltenformel gebe ich ein: =Quelle[Column2]{0}.
  • Den letzten Schritt wiederhole ich noch zweimal,
    – einmal für die Warengruppe mit der Formel =Quelle[Column2]{1} und
    – einmal für das Lieferdatum mit der Formel =Quelle[Column2]{2}.
Bild 4: Eine Datei als Prototyp einlesen und transformieren

Bild 4: Eine Datei als Prototyp einlesen und transformieren

Den Code verwende ich nun, um daraus eine Funktion zu erstellen:

  • Zuerst lasse ich mir den in Bild 5 gezeigten kompletten Code der Abfrage LieferungAuslesen im Erweiterten Editor (Start > Erweiterter Editor) anzeigen.
  • Die variablen Werte – wie hier Pfad und Dateiname – schreibe ich wie folgt als Parameter vor den M-Code: (Ordner, Dateiname ) => (Bild 6 oben).
  • Im M-Code tausche ich dann den festen Wert für den Dateipfad gegen eine Kombination der beiden Parameter aus. Ich verkette diese mit einem Backslash (\) und dem &-Zeichen zu einem kompletten Dateipfad wie in Bild 6 gezeigt.
Bild 5: Code des Prototypen mit fixer Angabe zum Dateipfad

Bild 5: Der Code des Prototypen mit fester Angabe zu Dateipfad und -name

 

Bild 5: Code des Prototypen mit fixer Angabe zum Dateipfad

Bild 6: Der Code des Prototypen mit dynamischer Pfadangabe umgewandelt in eine Funktion

3) Alle Dateien der Liste entpacken mit Hilfe der eben erstellten benutzerdefinierten Funktion

Nun muss ich nur noch die ursprüngliche Abfrage Lieferungen mit Hilfe der selbst erstellten Funktion LieferungAuslesen erweitern.

Das erledige ich wie folgt:

  • Über Start > Benutzerdefinierte Funktion aufrufen gebe ich einen Spaltennamen ein, wähle als Funktionsabfrage: LieferungAuslesen, als Ordner den Spaltennamen Ordner und als Dateiname den Spaltennamen Dateiname.
  • Ein Klick auf den Doppelpfeil der neuen Spalte Lieferinhalt entpackt alle genannten Dateien nach demselben Muster und fügt sie auch gleich untereinander an.
Bild 7: Mit der neuen Funktion eine benutzerdefinierte Spalte erstellen

Bild 7: Mit der neuen Funktion eine benutzerdefinierte Spalte erstellen

  • Zum Schluss passe ich noch die Datentypen an und lade die Liste nach Excel.
Bild 8: Per Klick auf den Doppelpfeil alle Dateien nach dem gleichen Muster entpacken

Bild 8: Per Klick auf den Doppelpfeil alle Dateien nach dem gleichen Muster entpacken

Fazit

Mit Hilfe einer Funktion kann ich eine flexible Möglichkeit schaffen, um alle in einer Liste genannten Dateien aus mehreren Ordnern automatisch in gleicher Art aufbereiten und untereinander anfügen zu lassen.
Eine bewährte Vorgehensweise dafür ist:

  • Erstellen eines Single-Use-Szenarios.
  • Konvertieren des Single-Use-Szenarios in eine Funktion.
  • Nutzen dieser Funktion in einer anderen Abfrage.

Interessiert an mehr Techniken und Tipps zu Power Query?

Wer sein Wissen zu Power Query systematisch auf- und ausbauen will, kann dazu einen meiner Online-Kurse buchen.
Auf dieser Seite gibt es alle aktuellen Termine.

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«