Wenn Sie ein Power Query verwenden und das Query bei Ihnen funktioniert, dann heisst dies noch lange nicht, dass es auch bei Ihrem Kollegen funktioniert. Typischerweise hat der Kollege einen anderen Netzwerkpfad oder er möchte die Datei in einem anderen Ordner speichern oder benennt die Datei um. Daher ist es sinnvoll, dass Sie den Pfad der Quelldateien dynamisch hinterlegen.
In diesem Beitrag zeige ich Ihnen, wie Sie in Power Query einen dynamischen Dateipfad erstellen können
Beispiel Dynamischer Dateipfad in Power Query
Diese Technik ist zum Sammeln von Daten aus Dateien auf Ihrem Computer gedacht. Es ist praktisch, wenn sich der Name Ihrer Rohdatei ändert oder sich der Rohpfad geändert hat. Sie können den Pfad oder den Dateinamen in der Zelle aktualisieren, ohne mit dem Power-Query-Code herumzuspielen, wenn Sie die Rohdatei aktualisieren.
Befolgen Sie diese Schritte, um einen dynamischen Dateipfad zu erstellen:
Namensbereich erstellen
1. Erstellen Sie einen Namensbereich in Excel. In diesem Beispiel verwende ich Zelle C2 als meinen Namensbereich. Wählen Sie Zelle C2 aus, klicken Sie dann auf die Registerkarte Formel und dann auf Name Manager.
3. Das Formular „Neuer Name“ wird angezeigt. Benennen Sie den Namensbereich als „DynamicPath“. Klicken Sie dann auf OK.
Power Query öffnen
Daten mit Power Query transformieren
8. Wählen Sie die richtige Tabelle aus, eine Vorschau wird angezeigt, und klicken Sie dann auf Daten transformieren.
M-Code in Power Query
10. Der M-Code wird angezeigt. Wir werden eine Variable mit dem Namen „DynamicPathfromExcel“ für den Dateipfad hinzufügen. Und entfernen Sie den vollständigen Pfad im ersten Code.Quelle = Excel.Workbook(File.Contents(), null, true),
Fügen Sie dann diesen Code unter dem „Let“-Code ein.
DynamicPathfromExcel = Excel.CurrentWorkbook(){[Name="DynamicPath"]}[Content]{0}[Column1],
Fügen Sie dann die Variable in „Quellabfragen“ ein, um es so zu machen:
Source = Excel.Workbook(File.Contents(DynamicPathfromExcel), null, true),
13. Die dynamische Abfrage wird nun über den Pfad in C2 geladen, nicht im statischen Code der Abfrage.
Wenn der Pfad oder der Dateiname geändert wird, dann passen Sie einfach C2 an und aktualisieren Sie die Tabelle, indem Sie mit der rechten Maustaste auf die Tabelle klicken und dann auf Aktualisieren klicken. Ihre Daten werden aktualisiert, ohne den Power-Query-M-Code zu bearbeiten.
Benötigen Sie Excel-Hilfe?
Brauchen Sie Unterstützung in Excel oder einen Programmierer für Makros. Kontaktieren Sie uns entweder via Kontaktformular https://www.exact-construct.ch oder 052 511 05 25.
Hallo zusammen,
ich habe ein kleines Problem für mich. Ich will mehrere Exportdateien zusammenführen, wobei bei einer Exportdatei die einzige Arbeitsmappe sich im Namen jedes mal ändert, weil der Mappenname das Exportdatum festlegt.
Der Code ist jedoch noch auf die erste Exportdatei der ursprünglichen Mappennamen gelegt.
Wie kann ich auf die einzige Mappe verweisen, dass es egal ist, die die Arbeitsmappe heißt?
Der Power Query Code lautet:
let
Quelle = Excel.Workbook(File.Contents(„J:\Eigene Dateien\1_Import\OSx.xlsx“), null, true),
#“20230703_120126_Sheet“ = Quelle{[Item=“20230703_120126″,Kind=“Sheet“]}[Data],
#“Höher gestufte Header“ = Table.PromoteHeaders(#“20230703_120126_Sheet“, [PromoteAllScalars=true]),
…
Leider habe ich den oberen Tipp nicht für meinen Fall erfolgreich umsetzen können. Für eine unterstützende Hilfe wäre ich sehr dankbar.
Besten Dank im Voraus
beste Grüße Olaf
Hallo Olaf
Vielen Dank für deine Frage. Wir haben eine Anleitung hier erstellt https://www.excel-hilfe.ch/blog/dynamischer-blattname-als-power-query-quelle/ wie du dein Problem lösen kannst.
Ich hoffe dies hilft dir.
Viele Grüsse
Adrian
Hallo guten Morgen Adrian,
Entschuldigung für meine schlechte Reaktionszeit. Vielen Dank Für deinen Lösungshinweis, den ich mir gleich zu Gemüte führe. Ich gebe Dir danach auch nochmal einen Feedback, um dich Wissen zu lassen, ob dieser Lösungsweg für meine Bedürfnisse effizient waren. :-)
Hallo,
danke für die Super Hilfestellungen!
Ich habe eine Frage: funktioniert die Abfrage auch für CSV Dateien und wenn ja, wie sieht der M-Code dafür aus?
VG
Lutz
Hallo Lutz
Der Ansatz funktioniert bei einer CSV-Datei genau gleich. Am Besten importierst du die csv-Datei mit PowerQuery, danach gehst du in den Erweiterten Editor und dann kannst du den Code wie oben beschrieben anpassen.
Viele Grüsse
Adrian
Man kann das ganze auch in einer Datei erledigen.
Ich habe eine Dateiliste mit allen Dateien, die sich im Ordner und allen Unterordnern befinden.
Wenn die Dateinamen einem Namensschlüssel folgen kann kann man entsprechende Spalten einfügen und dann die Liste filtern.
Bei Interesse gerne melden.