Alle *.xls* eines Ordners importieren

Alle Excel-Dateien eines Ordners mit gleichem Aufbau in ein Blatt einer neuen Mappe einlesen

  Wis­sens­stand: Lev­el 1 ⇒ Ein­steiger in PQ, keine/kaum Erfahrung   

Wie solch eine Auf­gabe per VBA zu lösen ist, kön­nen Sie beispiel­sweise hier in unserem Blog nach­le­sen. „Zu Fuß” ist gewiss auch keine Option für Sie, son­st wür­den Sie hier nicht nach­schauen. Es geht mit Pow­er Query vol­lkom­men ohne eine Zeile VBA-Code. Und Sie haben nach wie vor eine *.xlsx-Datei, was bei manchen restrik­tiv­en Ein­stel­lun­gen in Fir­men­net­zw­erken nicht zu unter­schätzen ist. Dazu kommt, dass bei Änderun­gen keine Pro­gram­mierken­nt­nisse erforder­lich sind. – Um dieses Train­ing nachvol­lziehen zu kön­nen, laden Sie bitte diese als *.zip gepack­te Datei (enthält das kom­plette Verze­ich­nis mit diversen Files) herunter und ent­pack­en sie in ein Laufw­erk bzw. Verze­ich­nis Ihrer Wahl oder auf dem Desk­top. Merken Sie sich diese Posi­tion.

▲ nach oben …

Vorbereitung

Ide­al­er­weise öff­nen oder erstellen Sie nun eine neue, leere Mappe. Hier hinein sollen die eben ent­pack­ten Dateien importiert wer­den. Bevor das geschieht, sehen Sie sich aber ein­mal das eben ent­pack­te Verze­ich­nis an. Ihnen wird gewiss auf­fall­en, dass da schon durch den Namen auf­fal­l­end ein „Aus­reißer” drin ist. Die Monate Jan­u­ar bis Dezem­ber sind die Umsätze der Bäck­erei Klein­brot und jew­eils exakt gle­ich aufge­baut. Die Excel-Datei Bun­destagsmit­glieder hat sich irgend­wie dor­thin „verir­rt” 😉 und passt in kein­er Weise zu den Umsätzen. – Prinzip­iell soll­ten Sie nun auch ein, zwei Files öff­nen, um den Auf­bau ken­nen zu ler­nen. Selb­st wenn Sie diese eigen­händig erstellt haben, kann es in Fir­men-Net­zw­erken schon ein­mal passieren, dass ein Kol­lege diese oder jene „Verbesserung” vorgenom­men hat. Und zugegeben, wenn ich län­gere Zeit mit ein­er Excel-Mappe nicht gear­beit­et habe, dann trügt die Erin­nerung mitunter.

▲ nach oben …

Der Import

Hin­weis: Die Bilder und Einzelschritte dieses Train­ings beziehen sich auf die Ver­sion Excel 2016. Der Haupt-Unter­schied zu den früheren Ver­sio­nen beste­ht darin, dass jet­zt die einzel­nen Punk­te im Menü Dat­en (2016) zu find­en sind, früherdi­rekt im Menüpunkt Pow­er Query (2010/13).

Wählen Sie Neue Abfrage | Aus Datei | Aus Ord­ner:

Auswahl des zu importierenden Ordners

Auswahl des zu importieren­den Ord­ners

Sofort öffnet sich ein Dia­log, wo Sie den Pfad des zu öff­nen­den Ord­ners per Hand eingeben oder per Schalt­fläche auf Ihrem Rech­n­er oder im Net­zw­erk aus­suchen kön­nen:

Über die Schaltfläche ist der sicherere Weg …

Über die Schalt­fläche ist der sicherere Weg …

Wenn Sie den Ord­ner bzw. das Verze­ich­nis nicht umbe­nan­nt haben, dann hat er den von mir vergebe­nen Namen Klein­brot 12_Monate. Sie kön­nen übri­gens auss­chließlich den Ord­ner auswählen und sehen, nicht die darin enthal­te­nen Files. Bestäti­gen Sie mit OK:

Die Windows-typische Auswahl eines Verzeichnisses

Die Win­dows-typ­is­che Auswahl eines Verze­ich­niss­es

Nach einem OK sind alle Excel-Dateien, die vom Auf­bau her iden­tisch sind, also nur die 12 Monate mit den Umsätzen der Bäck­erei Klein­brot in ein­er Tabelle erfasst. Kor­rek­tur: Es sind die Dateina­men und weit­ere Infor­ma­tio­nen. Sie wer­den aber die Datei mit den Bun­destags-Abge­ord­neten in dieser Auf­stel­lung verge­blich suchen. Die Liste eine Rei­he von File­na­men mit den unter­schiedlich­sten Argu­menten. Hin­nehmen und abnick­en, Sie brauchen für diese Auf­gabe nicht das Wis­sen um die Details.  😎 

Alle importierten Files in einer Tabelle

Alle importierten Files in ein­er Tabelle

Klick­en Sie auf Bear­beit­en (ältere Ver­sio­nen) oder auf Dat­en trans­formieren in neueren Ver­sio­nen (hier liegt noch keine Abbil­dung vor) und alle hier angezeigten Dateien wer­den so importiert, dass Sie diese später bear­beit­en oder ergänzen kön­nen. Und das geschieht in einem speziellen Edi­tor, dem Abfrage- oder Query-Edi­tor. Hin­weis: Wenn Sie etwas geübter sind wer­den Sie ver­mut­lich (wie auch ich) die Schalt­fläche Laden erweit­ern und dann Laden in wählen, um dann die Option Nur Verbindung anzuk­lick­en. Das ist flex­i­bler.

Wenn Sie bere­its ein­mal mit Pow­er Query gear­beit­et haben, kommt Ihnen das alles weit­ge­hend bekan­nt vor. Nur dass Sie hier nicht so viel entschei­den kon­nten. Es kann aber auch nicht schaden, wenn Sie sich für andere Zwecke merken, welche Infor­ma­tio­nen in dieser Liste preis­gegeben wer­den:

Diese Aufstellung umfasst alle zu importierenden Dateien

Diese Auf­stel­lung umfasst alle zu importieren­den Dateien

▲ nach oben …

Im näch­sten Schritt wer­den Sie in die Abfrage eine neue Spalte ein­fü­gen. Dazu wählen Sie den Menüpunkt Spalte hinzufü­gen und im Menüband gle­ich den ersten Menüpunkt Benutzerdefinierte Spalte hinzufü­gen. Wenn Sie dieses Ele­ment der Menüleiste anklick­en, erscheint ein Dia­log. Dort geben Sie im Feld Neuer Spal­tenname beispiel­sweise Datei-Inhalt ein, es kann aber auch ein beliebiger ander­er Wert sein. In das Feld Benutzerdefinierte Spal­tenformel geben Sie eine Formel ein:

Ganz ohne Formeln geht es auch bei Power Query nicht immer

Ganz ohne Formeln geht es auch bei Pow­er Query nicht immer

Das Gle­ich­heit­sze­ichen wird bere­its vorgegeben, danach tra­gen Sie ein:
Excel.Workbook(
dann im Bere­ich Ver­füg­bare Spal­ten entwed­er auf Con­tent einen Dop­pelk­lick oder markieren und « Ein­fü­gen. Anschließend die schließende Klam­mer set­zen und mit OK bestäti­gen. Hin­weis: Die Groß- Klein­schrei­bung der Formel ist wichtig! Acht­en Sie im Dialogfen­ster unten links auf den Hin­weis bezüglich eventueller Syn­taxfehler. Augen­blick­lich wird die neue Spalte einge­fügt und markiert:

Eine neue Spalte wurde zugefügt

Eine neue Spalte wurde zuge­fügt

Nun ja, so wirk­lich aus­sagekräftig ist der Inhalt der Spalte nun wirk­lich nicht. Table, Table, Table … Die Spal­tenüber­schrift ist aber jene, die Sie vorher so eingegeben haben. Rechts im Über­schrift-Bere­ich ist das Sym­bol für ein Erweit­ern ErweiternSymbol zu sehen. Klick­en Sie ein Mal darauf. Es öffnet sich ein neues Dialogfen­ster:

Die Default-Auswahl ist genau richtig

Die Default-Auswahl ist genau richtig

Ide­al­er­weise belassen Sie es bei den gegebe­nen Ein­stel­lun­gen und Sie Klick­en auf OK. Umge­hend wird für jeden der ange­hak­ten Möglichkeit­en in der Abfrage eine neue Spalte erzeugt, jede der neuen Spal­ten ist auch automa­tisch markiert:

Diverse neue Spalten sind nach dem Einfügen noch markiert

Diverse neue Spal­ten sind nach dem Ein­fü­gen noch markiert

Auch hier ist es für den zu erzie­len­den Erfolg nicht rel­e­vant, die Bedeu­tung der einzel­nen neuen Spal­tenüber­schriften zu ken­nen. Vielle­icht ist es merkenswert, dass das Prä­fix (Datei-Inhalt) genau dem Namen der Ursprungs-Spalte entspricht. Das ver­hin­dert auch Ver­wech­selun­gen, wenn beispiel­sweise eine Spalte der Import­dat­en auch Data als Über­schrift hat. Diese Werte sind aber für den fol­gen­den, mitentschei­den­den Schritt wichtig.

▲ nach oben …

Ich möchte mit Ihnen ein kleines Gedanken­ex­per­i­ment machen. Angenom­men, Sie wür­den jet­zt jede der in der Tabelle aufge­lis­teten Dateien direkt von Ihrer Fest­plat­te oder aus dem Net­zw­erk nacheinan­der in eine Liste importieren. Was würde da unge­mein stören, was würde nicht in die Auf­stel­lung gehören? Wenn Sie sich die Ursprungs­dat­en noch ein­mal ins Gedächt­nis rufen oder direkt nach­se­hen, dann gibt es eine einzige Zeile, die in jed­er Tabelle nach dem Import über­flüs­sig ist: Die Summe-Zeile.

Und die Über­schrift, wie sieht es damit aus? Die ist nur in elf von zwölf Fällen über­flüs­sig, denn ein Mal, in der ersten importierten Tabelle brauchen wir sie ja. Um die Über­schrift nur ein einziges Mal zu importieren erstellen Sie wiederum eine neue Spalte. Den Weg ken­nen Sie: Menü Spalte hinzufü­gen | Benutzerdefinierte Spalte hinzufü­gen. Und auch das Dialogfen­ster ken­nen Sie schon. Geben Sie dort als Spal­tenname Über­schrift und bei Benutzerdefinierte Spal­tenformel: erst ein­mal diese Anweisung ein:
Table.PromoteHeaders(
Wählen Sie im recht­en Fen­ster­bere­ich bei Ver­füg­bare Spal­ten per Dop­pelk­lick oder über die Schalt­fläche den Ein­trag Datei-Inhalt.Data und der oblig­a­torisch Kon­troll­blick nach unten …

In der Formel fehlt noch etwas …

In der Formel fehlt noch etwas …

… zeigt Ihnen, dass die Formel noch nicht voll­ständig ist. Ergänzen Sie die schließende runde Klam­mer, noch ein­mal nach­schauen, ob nun alles in Ord­nung ist und dann OK. Die benutzerdefinierte Spalte wird erstellt und das sieht nun so aus:

Die neue Spalte mit der gewünschten Überschrift

Die neue Spalte mit der gewün­scht­en Über­schrift

Dass der Inhalt der Zeilen solch ein­er Spalte nicht beson­ders aus­sagekräftig ist, das ken­nen Sie schon. Und Sie wer­den sich denken kön­nen, dass Sie als näch­sten Schritt wiederum auf das Erweit­ern-Sym­bol ErweiternSymbol in der Über­schrift Klick­en wer­den. Und natür­lich auch ein Dia­log, der sich nun aber sit­u­a­tions­be­d­ingt etwas anders darstellt:

Welche Spalten sollen aus den Quelldaten übernommen werden?

Welche Spal­ten sollen über­nom­men wer­den?

Sie erken­nen die einzel­nen Spal­tenna­men, wie sie in den Monats­bericht­en vorhan­den sind. Die let­zte Spalte Summe brauchen Sie nicht in der Auswer­tung, also löschen Sie die Markierung. Und falls das Häkchen bei Ursprünglichen Spal­tenna­men als Prä­fix ver­wen­den geset­zt ist, ent­fer­nen Sie auch dieses, denn die Spal­tenna­men sollen unverän­dert über­nom­men wer­den. Das war’s, also OK.

Sofort wer­den alle gewählten Spal­ten und nun (endlich) die richti­gen Dat­en in die Abfrage einge­fügt. Die Spal­tenüber­schriften sind auch kor­rekt, also kön­nte der Import damit been­det sein:

Diese (markierten) Spalten werden für die Auswertung gebraucht

Diese (markierten) Spal­ten wer­den für die Auswer­tung gebraucht

Ja, die Dat­en sind kor­rekt vorhan­den. Aber da ist ja immer noch ein Wust von Spal­ten, die in der endgülti­gen Zusam­men­fas­sung nichts zu suchen haben. Sie brauchen ja nur die eben erstell­ten Spal­ten, mehr nicht. Wenn die Markierung (wie im Screen­shot hierüber sicht­bar) noch existiert belassen Sie es dabei, son­st Klick­en Sie in die Über­schrift Datum, Shift und ein Klick in die Über­schrift Son­stiges; Die Über­schrift Datum muss danach markiert sein, son­st kann die Rei­hen­folge der Spal­ten ein­fach ver­tauscht wer­den. Jet­zt wie hier gezeigt vorge­hen:

So löschen Sie die nicht markierten Spalten aus der Abfrage

So löschen Sie die nicht markierten Spal­ten aus der Abfrage

Im Menü Start | Spal­ten ent­fer­nen | Andere Spal­ten ent­fer­nen anklick­en, und es bleiben nur noch die gewün­scht­en Spal­ten in der Abfrage. Natür­lich kön­nen Sie auch die ersten Spal­ten bis vor Datum markieren und diese dann löschen, das bleibt Ihnen über­lassen. Das Ergeb­nis ist iden­tisch.

▲ nach oben …

Wenn Sie nun in dem Fen­ster etwas nach unten scrollen wer­den Sie daran erin­nert, dass Sie zwar die Spalte mit den Sum­men aber nicht die entsprechen­den Zeilen ent­fer­nt haben. Zeile 31 ist solch ein Beispiel. Und sehen Sie sich doch ein­mal die Zeile 32 an. Kom­plett leer, nur null.

Leere Zeilen gehören ja nun ein­mal nicht in eine ordentliche Tabelle/Liste. Punkt (oder wie der Ex-Bun­deskan­zler Schröder wahrschein­lich von sich geben würde: „bas­ta”). Darum wer­den Sie erst ein­mal über das Menü Start alle Leerzeilen löschen:

Alle komplett leeren Zeilen einfach gelöscht

Alle kom­plett leeren Zeilen ein­fach gelöscht

Das klappt schon ein­mal her­vor­ra­gend. Und selb­stre­dend bleiben alle Son­ntage erhal­ten, auch wenn in allen Pro­duk­ten null ver­merkt ist. Die Zeile ist nicht leer, da ein Datum in der ersten Spalte ste­ht. – Bleibt noch, die Summe-Zeilen nach dem jew­eili­gen Ulti­mo zu ent­fer­nen. Und das geht ähn­lich unprob­lema­tisch wie eben, aber über einen anderen Weg:

Das Häkchen bei "Summe" entfernen und OK

Das Häkchen bei „Summe” ent­fer­nen und OK

Fol­gen­des Vorge­hen ist eine gute Möglichkeit (von mehreren):

  • Markieren Sie die Über­schrift Datum oder Klick­en Sie gle­ich auf das Drop­Down-Sym­bol DropDownPfeil in der Über­schrift.
  • Ziehen Sie in der Auswahl den Roll­balken (Scroll­bar) ganz nach unten, damit der Ein­trag Summe zu sehen ist.
  • Ent­fer­nen Sie das Häkchen beim let­zten Ein­trag Summe
  • Bestäti­gen Sie mit OK.

Jet­zt bietet es sich natür­lich von alleine an, in dieser Spalte im gle­ichen Drop­Down das Datum auf­steigend zu sortieren. Dieser Vor­gang bedarf gewiss kein­er Erk­lärung, Sie ken­nen das wahrschein­lich aus den Intel­li­gen­ten Tabellen / Lis­ten in Excel.

▲ nach oben …

Fer­tig. (Endlich? 😎 ) Zum Abschluss also zur Über­nahme der Dat­en aus der Abfrage Klick­en Sie nun entwed­er auf den Text im Sym­bol Schliessen & laden (nicht auf das Bild) und dann Schliessen & laden in…:

Möglichkeit 1 zum Schließen und laden in…

Möglichkeit 1 zum Schließen und laden in…

Oder Sie Klick­en auf den Menüpunkt Datei und wählen dann den zweit­en Punkt in der Auswahl:

Der Weg zum gleichen Ziel über das Menü Datei

Der Weg zum gle­ichen Ziel über das Menü Datei

Da Sie ja im let­zten Schritt Schliessen & laden in… gewählt haben, wird nicht automa­tisch ein neues Tabel­len­blatt erstellt son­dern Ihnen wird ange­boten, wo Sie denn die Dat­en spe­ich­ern wollen:

Wo soll das Ergebnis der Abfrage gespeichert werden?

Wo soll das Ergeb­nis der Abfrage gespe­ichert wer­den?

Im aktuellen Tabel­len­blatt gle­ich in A1, das passt schon. Laden und die Ergeb­nisse ste­hen an der definierten Stelle. Was allerd­ings vielle­icht etwas irri­tiert: In Spalte A ste­ht zwar der kor­rek­te Wert des Datums, die For­matierung ist aber als serielle Zahl:

Die Erwartung war gewiss anders …

Die Erwartung war gewiss anders …

Natür­lich wäre es „ein Klacks”, die Darstel­lung hier in der endgülti­gen Tabelle anzu­passen. Aber das hätte einen entschei­den­den Nachteil: Wenn Sie in der Abfrage im Nach­hinein etwas ändern, dann wer­den Sie das Zahlen­for­mat erneut anpassen müssen. Ein klein­er Trost: Bei ein­er Aktu­al­isierung bleibt das aktuelle For­mat erhal­ten.

▲ nach oben …

Sie soll­ten aber auch den „vernün­fti­gen” Weg ken­nen ler­nen. Neben dem „gle­ich richtig machen” 😳  bleibt ja nur noch der Weg der Änderung in der Abfrage. Entwed­er ein Dop­pelk­lick auf den grün hin­ter­legten Bere­ich im recht­en Seit­en­fen­ster:

Ein Doppelklick hier öffnet wieder die Abfrage

Ein Dop­pelk­lick hier öffnet wieder die Abfrage

Oder Menü Abfrage­tools | Abfrage | Bear­beit­en auswählen. So oder so öffnet sich wieder der Abfrage-Edi­tor und Sie kön­nen dort weit­er arbeit­en, wo Sie ‑wann auch immer- aufge­hört hat­ten. Das klappt auch dann, wenn Sie vor einem Jahr zulet­zt mir der Datei gear­beit­et haben. Den­noch stellt sich die Frage, warum in der eben erzeugten Tabelle die kalen­darischen Dat­en nicht in der gewün­scht­en Form dargestellt wur­den. Hier in der Abfrage ist es doch klar ersichtlich ein Datum. Die rechts­bündi­ge Aus­rich­tung spricht auch dafür. Und über­haupt, beim Sortieren hat Pow­er Query (PQ) ja auch erkan­nt, dass es sich um kalen­darische Dat­en han­delt!

Ach ja, wenn doch immer alles so ein­fach wäre, wie es zu sein scheint. Die Wege des Bill Gates sind manch­mal uner­gründlich. 🙄 Ich räume ein, dass ich beim ersten Ver­such auch leicht irri­tiert war. Die Lösung ist auf den ersten Blick nicht unbe­d­ingt logisch, aber sie ist zielführend. Markieren Sie erst ein­mal die Spalte Datum. Im Menü Start, Gruppe Trans­formieren erken­nen Sie, dass als Daten­typ Beliebig ver­merkt ist. Das trifft übri­gens auch auf die restlichen Spal­ten zu. Und da habe ich mich auch gefragt, warum PQ bei anderen Importen den Daten­typ meist kor­rekt erken­nt. Gut, bei kalen­darischen Dat­en wird fast immer Datum/Zeit erkan­nt, aber der Grund­typ ist ja gle­ich. Als Aus­gle­ich für die Irri­ta­tion biete ich Ihnen eine logis­che Erk­lärung: Beim erst­ma­li­gen Ein­le­sen der Dat­en waren ja gemis­chte Daten­typen in den Zeilen. Die Leerzeilen zählen dabei nicht, aber die „Summe” ist ja ein­deutig Text. Darum der Daten­typ Beliebig, der dann nicht mehr angepasst wurde.

Okay, ändern Sie den Daten­typ der ersten Spalte auf Datum. Und wenn Sie genau hinge­se­hen haben wer­den Sie eine ganz kleine Änderung gese­hen haben: In der Über­schrift links ist nicht mehr das Sym­bol für Beliebig son­dern ein klein­er sym­bol­is­ch­er Kalen­der, also Datum. Und wenn Sie schon ein­mal dabei sind, markieren Sie doch die Über­schriften Brot, Shift (bis) Son­stiges und kor­rigieren Sie auch diesen Daten­typ, allerd­ings auf Währung. Dann hat alles seine Ord­nung. 😉

Die durch den Query-Edi­tor erzeugte Tabelle existiert ja schon an der gewün­scht­en Stelle, Sie haben die zuge­hörige Abfrage ja nur verän­dert. Darum reicht ein ein­fach­er Klick auf Schliessen & laden um die Auswer­tungsta­belle zu aktu­al­isieren. Jet­zt ste­ht dort das Datum auch im kor­rek­ten For­mat.

Last but not least eine Anmerkung: Dass am 3. Okto­ber, einem Feiertag in Deutsch­land für jedes Pro­dukt genau 100,00 € Umsatz gemacht wor­den sind, ist natür­lich mehr als unwahrschein­lich. Diese Zahlen sind für eine andere Schu­lung „eingeschleust” wor­den, wo nach der­ar­ti­gen Unregelmäßigkeit­en gesucht wer­den soll.  💡 

▲ nach oben …

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

Dann würde ich mich über einen Beitrag (1,00€ bis 2,50€) Ihrer­seits freuen …


Bun­desweite  ✉ Schu­lun­gen ✉  durch unseren Spon­sor GMG Com­put­er-Con­sult­ing

Dieser Beitrag wurde unter Daten zusammenführen, Daten-Import / -Export, Datum und Zeit, File-Handling, Musterlösungen, Ohne Makro/VBA, Power Query, Tabelle und Zelle abgelegt und mit , , , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.