PQQ: Alle *.csv eines Verzeichnisses einlesen

Quickie: Alle *.csv-Dateien eines Verzeichnisses / Ordners mit Power Query einlesen

Um alle csv-Dateien eines Verze­ich­niss­es ein­schließlich eventuell vorhan­den­er Unter­verze­ich­nisse einzule­sen, gehen Sie prinzip­iell genau­so vor, wie bei „nor­malen” Excel-Files. Dieses Vorge­hen ist hier im Blog aus­führlich beschrieben. Darum an dieser Stelle nur ein Kurz­durch­gang, weil sich nur sehr wenig ändert. Die hier beschriebene Übung basiert auf Dat­en des Deutschen Bun­destages. Eine Datei mit einem Verze­ich­nis ein­schließlich mehrerer *.csv-Dateien (und ander­er) kön­nen Sie hier herun­ter­laden.

Natür­lich wer­den Sie sich erst ein­mal merken müssen, in welchem Verze­ich­nis (Fold­er) die zu importieren Files enthal­ten sind. Eventuell vorhan­dene Sub Direc­to­ries (Unter­verze­ich­nisse) wer­den ohne Ihr Zutun automa­tisch mit ein­ge­le­sen; soll nur die ober­ste Ebene aus­gewählt wer­den, wer­den Sie diese im Abfrage-Edi­tor fil­tern. Weit­er get’s in jedem Fall so:

  • Menü Dat­en bzw. Menüpunkt Pow­er Query
  • Neue Abfrage | Aus Datei | Aus Ord­ner
  • Im Dialogfen­ster (Ord­ner) wählen Sie das entsprechende Verze­ich­nis über die Schalt­fläche Durch­suchen… oder tra­gen Sie den Ord­nerp­fad per Hand in das Textfeld ein. Bestäti­gen Sie mit OK.
  • Im fol­gen­den Dia­log wer­den alle oder zumin­d­est die ersten Files des Direc­to­ries zwecks Prüf-Möglichkeit angezeigt. Starten Sie den Import mit Klick auf Bear­beit­en.
  • Wenn in dem Verze­ich­nis nicht auss­chließlich csv-Dateien enthal­ten sind, dann wer­den Sie die Exten­sion entsprechend fil­tern.
  • Sind auch Unter­verze­ich­nisse ein­ge­le­sen wor­den und sie möcht­en nur die ober­ste Ebene auswerten, dann fil­tern sie auch die Spalte Fold­er Path.
  • In der Menüzeile wählen Sie das Reg­is­ter Spalte hinzufü­gen.
  • Wählen Sie im Menüband den­er­sten Punkt Benutzerdefinierte Spalte.

Im sich auf­bauen­den Dia­log tra­gen Sie nun in exakt der hier angezeigten Schreib­weise nach dem = diese Formel ein: csv.Document([Content]). Den Schlüs­sel­be­griff Con­tent, eingeschlossen in die eck­i­gen Klam­mern, kön­nen Sie auch durch Dop­pelk­lick auf den entsprechen­den Ein­trag im recht­en Bere­ich des Fen­sters über­tra­gen.

Um den Edi­tor etwas „schlanker” zu gestal­ten, ein Recht­sklick in die Über­schrift der neu erstell­ten Spalte und im Kon­textmenü dann Andere Spal­ten ent­fer­nen. Sie wer­den sehen, dass Sie keine der Spal­ten links der ger­ade erstell­ten brauchen. In der nun einzig verbliebe­nen Spalte ein Klick auf den „Dop­pelpfeil” ganz rechts und es zeigt sich solch ein Dia­log:

Auswahl: Welche Spalten sollen gezeigt werden?

Auswahl: Welche Spal­ten sollen gezeigt wer­den?

Da jet­zt nur noch eine Spalte existiert, kön­nen, nein müssen Sie (Alle Spal­ten auswählen) ange­hakt lassen. Wo Sie das Häkchen allerd­ings ent­fer­nen: Ursprünglichen Spal­tenna­men als Prä­fix ver­wen­den, das soll nicht sein. Das Ergeb­nis wird Sie wahrschein­lich genau so über­raschen wie mich beim ersten Mal. Und mir fiel nur ein Wort ein:

Frust!

Frust!

Nicht weil nur die Namen und Vor­na­men dort drin ste­hen und keine Möglichkeit beste­ht, die Frak­tion zuzuord­nen. Das liegt an der Date­bquelle als auch der Art des Imports und das ist OK und auch so gewollt. Nein, alle Umlaute und auch das „ß” wer­den als Frageze­ichen in ein­er Raute dargestellt. Und wenn Sie nun denken, das sei das falsche Dat­en-For­mat, dann öff­nen Sie doch probe­hal­ber ein­mal eine der csv-Files mit einem Dop­pelk­lick. Excel wird die Datei laden und alles wird kor­rekt dargestellt.

Na gut, beim ersten Ver­such habe ich eine Datei in einen „vernün­fti­gen” Edi­tor geladen (Notepad++) und mir dort ange­se­hen. Natür­lich wurde hier auch alles so dargestellt, wie es sein sollte. Alle Umlaute OK. Mit einiger Exper­i­men­tier­freude habe ich dann her­aus­bekom­men, dass ich die Daten­quelle in ein anderes Code­page-For­mat wan­deln kann. Gesagt, getan. Bei Kodierung ist ANSI angegeben; Kon­vertiere zu UTF‑8 angek­lickt, gespe­ichert, die anderen csv-Dateien gle­icher­maßen umcodiert und im PQ-Edi­tor die Aktu­al­isieren-Schalt­fläche gedrückt. Warum nicht gle­ich so…?

Nun ja, wenn ich im Vor­wege die Codierung ein­er csv-Datei kenne, dann ist das eine Möglichkeit. Das kostet „nur” etwas Zeit. Und da Notepad++ sog­ar die Möglichkeit bietet, solche Vorgänge per Makrorecorder aufzuze­ich­nen und dann vere­in­facht abzus­pie­len, ist das ein dur­chaus gang­bar­er Weg.

Bleibt dann nur noch als let­zter Schritt, die bei­den Namens-Bestandteile, die ja durch ein Semi­kolon getren­nt sind, zu tren­nen und in zwei Spal­ten anzuord­nen. Da gibt es im Reg­is­ter Start und Trans­formieren jew­eils eine Schalt­fläche Spalte teilen, wom­it Sie kom­fort­a­bel zum gewün­scht­en Ziel gelan­gen. Anschließend die Über­schriften anzu­passen, sollte Ihnen keine Schwierigkeit­en bere­it­en.

Es geht aber auch auf dem direk­ten Weg, direkt beim Import. Bei dem entsprechen­den Aufruf haben Sie gle­ich die kor­rekt dargestell­ten Umlaute auf dem Schirm und natür­lich auch in der erzeugten Tabelle. Aber dazu mehr an dieser Stelle …

Vielle­icht inter­essiert Sie das The­ma ver­stärkt … Dann schauen Sie doch ein­fach auch ein­mal hier im Blog zum The­ma „Und täglich eine neue Liste” vor­bei.

▲ nach oben …

Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?

Dann würde ich mich über einen Beitrag Ihrer­seits z.B. 2,50  freuen …

Dieser Beitrag wurde unter Daten zusammenführen, File-Handling, Filtern & Sortieren, Ohne Makro/VBA, Power Query, PQ-Basics abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.