Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PQ letzte Datei

Forumthread: PQ letzte Datei

PQ letzte Datei
24.05.2022 12:00:08
Ulf
Hallo Ihr lieben Helfer,
ich bin auf der Suche nach einer Lösung für den Datenimport eines ganzen Ordners nebst Unterordner mittels Power Query.
Die Ordnerstruktur ist so aufgebaut:
/2022/Januar
/2022/Februar
usw.
Ich greife auf den Hauptordner zu (202), um nicht jeden Monat einzeln auszuwerten. In den jeweiligen Ordnern des Monats werden täglich neue Dateien abgelegt, wovon ich aber immer nur die jeweils montatsletzte Datei haben möchte, auch wenn es vom Datum her vielleicht der 25. des Monats ist. Kann man das irgendwie erreichen?
Gruß Ulf
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: folgendes könnte/sollte möglich sein ...
24.05.2022 12:43:53
neopa
Hallo Ulf,
... erstelle mit PQ eine komplette Dateiliste für Deinen Ordner ...\2022\ mit allen Monatsunterverzeichnissen inklusiveden Datumsangaben dieser Dateien. Die Liste gruppierst Du nach den Monatsnamen und den max. Datumswert. So würde ich meinen, kannst Du eine Liste der letzten Dateien der jeweiligen Monate erstellen.
Gruß Werner
.. , - ...
Anzeige
AW: folgendes könnte/sollte möglich sein ...
24.05.2022 12:45:34
Ulf
Hallo Werner,
danke für den Hinweis, dass werde ich einmal testen.
Gruß Ulf
AW: das Ergebnis dessen ...
24.05.2022 12:59:03
neopa
Hallo Ulf,
... als M-Code hier von Dir dann eingestellt, könnte auch für andere von Interesse sein.
Gruß Werner
.. , - ...
AW: das Ergebnis dessen ...
24.05.2022 13:38:34
Ulf
Hallo Werner,
also es hat geklappt mit Deinem Hinweis, vielen Dank noch einmal. Es hat zwar etwas gedauert und ich habe mir mit den ganzen Namen keine Mühe gegeben, aber es kommt mir im Endeffekt ja auf das Ergebnis an. Den ganzen Code werde ich von den Spalten her etwas einkürzen, weil das bei jedem sowieso anders aussieht.
Gruß Ulf


let
Quelle = Folder.Files("\\MeinPfad"),
#"Name des Monats eingefügt" = Table.AddColumn(#"Gefilterte Zeilen", "Monatsname", each Date.MonthName([Date created]), type text),
#"Gruppierte Zeilen" = Table.Group(#"Name des Monats eingefügt", {"Monatsname"}, {{"Anzahl", each List.Max([Date created]), type nullable datetime}, {"Cont", each List.Max([Content]), type binary}}),
#"Gefilterte ausgeblendete Dateien1" = Table.SelectRows(#"Gruppierte Zeilen", each [Attributes]?[Hidden]?  true)
in
#"Gefilterte ausgeblendete Dateien1"

Anzeige
AW: na prima und ...
24.05.2022 13:59:28
neopa
Hallo Ulf,
... Du hast dazu keine Stunde gebraucht. Das zeigt anderen Usern, die noch nicht mit PQ "am Hut" haben (wollen), dass man mit PQ sich schneller anfreunden kann, als mit spezif. Formel- oder VBA-Lösungen.
Gruß Werner
.. , - ...
AW: na prima und ...
24.05.2022 14:16:11
Ulf
Hallo Werner,
auf jeden Fall ist PQ um Welten schneller in der Auswertung und Zusammenführung von Daten. Ich musste das aber auch erst lernen und mich damit anfreunden. Aber mittlerweile nutze ich PQ wo immer es geht und freue mich jedes mal aufs Neue über die Geschwindigkeit.
Was habe ich mir früher einen abgebrochen um die selben Ergebnisse zu erziehlen.
Gruß Ulf
Anzeige
AW: sehe ich ähnlich owT
24.05.2022 14:34:11
neopa
Gruß Werner
.. , - ...
AW: na prima und ...
24.05.2022 16:13:10
Luschi
Hallo Ulf,
schön, das es wieder einen Mitstreiter gibt, der PQ nutzt zur Datenauswertung; von mir 2 Anmerkungen zum M-Code:
- dieser Befehl kommt zu spät und greift ins Leere
#"Gefilterte ausgeblendete Dateien1" = Table.SelectRows(#"Gruppierte Zeilen", each [Attributes]?[Hidden]? true)
denn im Prozeßschritt #"Gruppierte Zeilen" gibt es keine Spalte {Attributes] mehr, trotzdem meckert PQ nicht - erstaunlich!
Mein Test ergab, das Dateien mit den Versteckt-Attribut in den Dateieigenschaften zu diesem Zeitpunkt nicht mehr herausgefiltert werden - stelle ihn also gleich nach den Schritt
Quelle = Folder.Files("\\MeinPfad"), - dann klappts auch.
- die Spaltenbeschriftung 'Anzahl' in
{"Anzahl", each List.Max([Date created]), type nullable datetime}
ist irreführend, denn es wird ja das größte Erstellungsdatum im Unterverzeichnis ausgegeben.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: na prima und ...
25.05.2022 13:25:41
Ulf
Hallo Luschi,
das werde ich gleich noch einmal überprüfen. Allerdings hatte ich meinen Code eingekürzt für das Forum, weil die anderen Schritte für die Lösung eigentlich nicht relevant waren. In den Ordnern werden nämlich 2 unterschiedliche Dateien abgelegt und die filtere ich vorher raus. Das mache ich indem ich den Dateinamen splitte und danach filtere.
Der ganze Code lautet so und funktioniert soweit:


let
Quelle = Folder.Files("\\meinPfad"),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(Quelle, "Name", Splitter.SplitTextByEachDelimiter({"_"}, QuoteStyle.Csv, false), {"Name.1", "Name.2"}),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Name.1", type text}, {"Name.2", type text}}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Geänderter Typ", each ([Name.1] = "Produktivstunden")),
#"Name des Monats eingefügt" = Table.AddColumn(#"Gefilterte Zeilen", "Monatsname", each Date.MonthName([Date created]), type text),
#"Gruppierte Zeilen" = Table.Group(#"Name des Monats eingefügt", {"Monatsname"}, {{"Anzahl", each List.Max([Date created]), type nullable datetime}, {"Cont", each List.Max([Content]), type binary}}),
#"Gefilterte ausgeblendete Dateien1" = Table.SelectRows(#"Gruppierte Zeilen", each [Attributes]?[Hidden]?  true),
#"Benutzerdefinierte Funktion aufrufen1" = Table.AddColumn(#"Gefilterte ausgeblendete Dateien1", "Datei transformieren (6)", each #"Datei transformieren (6)"([Cont])),
#"Andere entfernte Spalten1" = Table.SelectColumns(#"Benutzerdefinierte Funktion aufrufen1", {"Datei transformieren (6)"}),
#"Erweiterte Tabellenspalte1" = Table.ExpandTableColumn(#"Andere entfernte Spalten1", "Datei transformieren (6)", Table.ColumnNames(#"Datei transformieren (6)"(#"Beispieldatei (6)"))),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Erweiterte Tabellenspalte1",{{"Mandant", type number}, {"Profitcenter", type number}, {"FDL", type any}, {"Kostenstelle", type number}, {"Abteilung/ Bereich", type text}, {"Tarifgruppe", type text}, {"Funktionsbezeichnung", type any}, {"Vertragsbeginn", type date}, {"MA", type number}, {"LAN", type any}, {"PNR", type number}, {"Schichttag", type date}, {"WT", type text}, {"KW", type number}, {"Sollzeit", type number}, {"Frühschicht", type number}, {"Spätschicht", type number}, {"Nachtschicht", type number}, {"Normalschicht", type number}, {"Produktivstunden", type number}}),
#"Jahr eingefügt" = Table.AddColumn(#"Geänderter Typ1", "Jahr", each Date.Year([Schichttag]), Int64.Type),
#"Monat eingefügt" = Table.AddColumn(#"Jahr eingefügt", "Monat", each Date.Month([Schichttag]), Int64.Type),
#"Geänderter Typ2" = Table.TransformColumnTypes(#"Monat eingefügt",{{"Monat", type text}, {"Jahr", type text}, {"KW", type text}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Geänderter Typ2", "JahrKW", each [Jahr]&"-"&[Monat]&"-"&[KW]),
#"Geänderter Typ3" = Table.TransformColumnTypes(#"Hinzugefügte benutzerdefinierte Spalte",{{"KW", type number}, {"JahrKW", type text}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Geänderter Typ3",{"Jahr", "Monat"})
in
#"Entfernte Spalten"
Gruß Ulf
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige