Anzeige
Archiv - Navigation
1868to1872
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Power Query Spalten aus Quelle einfügen

Power Query Spalten aus Quelle einfügen
16.02.2022 20:23:00
Andreas
Hallo und guten Abend.
Ich arbeite mich gerade in Power Query rein und komme schon relativ gut damit klar.
Meine Vorgehensweise bzw. Arbeitsschritte:
Vorgang 1:
*Daten abrufen aus Ordner (dort sind *.pdf Dateien enthalten)
*Die Dateinamen bestehen aus einer Kombination aus Zahlen (Avis-Nr) und Datum (Avis-Datum).
*Die Dateinamen lasse ich mir nach Trennzeichen trennen und entsprechend umbenennen, sowie nach Datum sortieren.
Vorgang 2:
*Dann wird der Inhalt der einzelnen Dateien weiterverarbeitet; da klappt alles so wie es soll.
Mein Problem: Ich will die zuvor generierten Spalten "Avis-Nr." und "Avis-Datum" zum verarbeiteten Inhalt hinzufügen.
Wie komme ich an diese Spalten heran ?
Bei den benutzerdefinierten Spalten werden nur die aktuell verwendeten Spalten des Inhaltes (Vorgang 2) aufgeführt und nicht die Spalten aus Vorgang 1.
Ich hoffe, man kann die Arbeitsschritte halbwegs nachvollziehen und jemand könnte mir da helfen.
LG Andreas

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Power Query Spalten aus Quelle einfügen
16.02.2022 20:40:09
ralf_b
ich sehe nur eine Beschreibung von Vorgängen. aber keine Arbeitsschritte.
AW: Power Query Spalten aus Quelle einfügen
17.02.2022 08:07:35
Andreas
Wenn es hilft, poste ich mal die Schritte, die PQ in der Bearbeitungsleiste anzeigt:
= Folder.Files("C:\Users\konie\OneDrive\Desktop\Avise")
= Table.RemoveColumns(Quelle,{"Extension"})
= Table.SplitColumn(#"Entfernte Spalten", "Name", Splitter.SplitTextByDelimiter("_", QuoteStyle.Csv) , {"Name.1", "Name.2"})
= Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Name.1", Int64.Type}, {"Name.2", type text}})
= Table.RenameColumns(#"Geänderter Typ",{{"Name.1", "Avis-Nr"}})
= Table.ReplaceValue(#"Umbenannte Spalten",".pdf","",Replacer.ReplaceText,{"Name.2"})
= Table.TransformColumnTypes(#"Ersetzter Wert",{{"Name.2", type date}})
= Table.RenameColumns(#"Geänderter Typ1",{{"Name.2", "Avis-Datum"}})
= Table.Sort(#"Umbenannte Spalten1",{{"Avis-Datum", Order.Ascending}})
= Table.SelectRows(#"Sortierte Zeilen", each [Attributes]?[Hidden]? true)
= Table.AddColumn(#"Gefilterte ausgeblendete Dateien1", "Datei transformieren (6) ", each #"Datei transformieren (6)"([Content]))
= Table.SelectColumns(#"Benutzerdefinierte Funktion aufrufen1", {"Datei transformieren (6)"})
= Table.ExpandTableColumn(#"Andere entfernte Spalten1", "Datei transformieren (6) ", Table.ColumnNames(#"Datei transformieren (6)"(#"Beispieldatei (6)")))
[[Ab hier wird der Inhalt ausgewertet]]
Anzeige
AW sind nur Schritte in der Leere (ohne Datei) owT
17.02.2022 09:08:48
neopa
Gruß Werner
.. , - ...
AW: Power Query Spalten aus Quelle einfügen
17.02.2022 09:09:02
Andreas
Ich habe mich vielleicht etwas umständlich ausgedrückt:
Eigentlich will ich nur den Datei-Namen als Spalte einfügen.
AW: (D)eine (Beispiel)dateien könnte aufklären owT
17.02.2022 09:50:41
neopa
Gruß Werner
.. , - ...
AW: Power Query Spalten aus Quelle einfügen
18.02.2022 13:30:09
Andreas
Hallo Ralf.
Vielen Dank für den Link. Den Link habe ich tatsächlich bereits per Google gefunden, konnte aber so auf die Schnelle nix damit anfangen.
Heute habe ich mal frei ;-) und kann mich intensiver damit befassen und habe mich auch bereits etwas vorangearbeitet.
Also, der Blogbeitrag importiert ja csv Dateien, bei mir sind es pdf Dateien.
Ich habe also mal die PQ M Hilfe bemüht und den Code "Pdf.Tables...." gefunden und diesen als Benutzerdefinierte Spalte eingefügt.
Das funktioniert mit =Pdf.Tables(File.Contents("c:\hierstehtderpfadzumeinemordner\sample.pdf")) ganz gut und PQ zeigt mir in der hinzugefügten Spalte die Table's innerhalb des pdf an (so weit, so gut).
Allerdings kann ich im Pfad nur eine bestimmte Datei ansteuern (sample.pdf).
Ich möchte aber alle in dem Verzeichnis abgelegten pdf's ansteuern.
Mit * als Platzhalter bzw. "c:\hierstehtderpfadzumeinemordner\" wirft die Spalte einen Error aus.
Anzeige
AW: Power Query Spalten aus Quelle einfügen
18.02.2022 18:19:37
ralf_b
vielleicht versuchst du es mit folder.files() . Das sollte aber schon mit dem einlesen des Ordners passiert sein. Dann die unnötigen Dateien ausfiltern und die pdf's entpacken.
AW: Power Query Spalten aus Quelle einfügen
18.02.2022 19:38:04
Andreas
Danke.
Ich weiss zwar nicht wie, aber irgendwie habe ich mein gewünschtes Ergebnis zusammengewurschtelt.
Danke für die Tipps.
AW: Power Query Spalten aus Quelle einfügen
18.02.2022 19:41:54
Andreas
PQ hat die (manchmal unangenehme) Eigenschaft, eigenständig vermeindlich wichtige Zwischenschritte einzufügen, die das gewünschte Ergebnis verfälschen können.
AW: Power Query Spalten aus Quelle einfügen
18.02.2022 20:46:21
ralf_b
zeig doch mal deine Abfrage anonymisiert
AW: Power Query Spalten aus Quelle einfügen
19.02.2022 07:05:23
Andreas
Ich hoffe, es hilft:

let
Quelle = Folder.Files("c:\hier_steht_der_pfad_zum_ordner\"),
#"Entfernte Spalten" = Table.RemoveColumns(Quelle,{"Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Entfernte Spalten", "Benutzerdefiniert", each Folder.Files("c:\hier_steht_der_pfad_zum_ordner")),
#"Entfernte Spalten1" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte",{"Content"}),
#"Erweiterte Benutzerdefiniert" = Table.ExpandTableColumn(#"Entfernte Spalten1", "Benutzerdefiniert", {"Content"}, {"Benutzerdefiniert.Content"}),
#"Tiefer gestufte Header" = Table.DemoteHeaders(#"Erweiterte Benutzerdefiniert"),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Tiefer gestufte Header",{{"Column1", type text}, {"Column2", type any}}),
#"Höher gestufte Header" = Table.PromoteHeaders(#"Geänderter Typ", [PromoteAllScalars=true]),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Höher gestufte Header",{{"Name", type text}, {"Benutzerdefiniert.Content", type binary}}),
#"Gefilterte ausgeblendete Dateien1" = Table.SelectRows(#"Geänderter Typ1", each [Attributes]?[Hidden]?  true),
#"Benutzerdefinierte Funktion aufrufen1" = Table.AddColumn(#"Gefilterte ausgeblendete Dateien1", "Datei transformieren (9)", each #"Datei transformieren (9)"([Benutzerdefiniert.Content])),
#"Erweiterte Datei transformieren (9)" = Table.ExpandTableColumn(#"Benutzerdefinierte Funktion aufrufen1", "Datei transformieren (9)", {"Beleg", "Ihr Beleg", "Datum", "Betrag"}, {"Datei transformieren (9).Beleg", "Datei transformieren (9).Ihr Beleg", "Datei transformieren (9).Datum", "Datei transformieren (9).Betrag"}),
#"Entfernte Spalten2" = Table.RemoveColumns(#"Erweiterte Datei transformieren (9)",{"Benutzerdefiniert.Content"}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Entfernte Spalten2",{"Datei transformieren (9).Beleg", "Datei transformieren (9).Ihr Beleg", "Datei transformieren (9).Datum", "Datei transformieren (9).Betrag", "Name"}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Neu angeordnete Spalten", each [#"Datei transformieren (9).Beleg"]  "Gesamtsumme"),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Gefilterte Zeilen", "Name", Splitter.SplitTextByDelimiter("_", QuoteStyle.Csv), {"Name.1", "Name.2"}),
#"Geänderter Typ2" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Name.1", Int64.Type}, {"Name.2", type text}}),
#"Umbenannte Spalten" = Table.RenameColumns(#"Geänderter Typ2",{{"Datei transformieren (9).Beleg", "Beleg"}, {"Datei transformieren (9).Ihr Beleg", "Ihr Beleg"}, {"Datei transformieren (9).Datum", "Datum"}, {"Datei transformieren (9).Betrag", "Betrag"}}),
#"Geänderter Typ3" = Table.TransformColumnTypes(#"Umbenannte Spalten",{{"Datum", type date}, {"Betrag", Currency.Type}}),
#"Umbenannte Spalten1" = Table.RenameColumns(#"Geänderter Typ3",{{"Name.1", "Avis-Nr"}, {"Name.2", "Avis-Datum"}}),
#"Ersetzter Wert" = Table.ReplaceValue(#"Umbenannte Spalten1",".pdf","",Replacer.ReplaceText,{"Avis-Datum"}),
#"Geänderter Typ4" = Table.TransformColumnTypes(#"Ersetzter Wert",{{"Avis-Datum", type date}, {"Beleg", Int64.Type}}),
#"Hinzugefügter Index1" = Table.AddIndexColumn(#"Geänderter Typ4", "Index.1", 1, 1, Int64.Type),
#"Entfernte Duplikate" = Table.Distinct(#"Hinzugefügter Index1", {"Beleg"})
in
#"Entfernte Duplikate"

Anzeige

21 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige