Forum Discussion
Filter Old Draft Folders
- 4 months ago
The grouping is currently set at the Draft folder level, which is why you’re seeing one file per Draft instead of one per PR folder.
You should group at the PR-26*** level so all Draft folders are considered together. Then, use the maximum modified date within each group and filter to that row. This will give you only the most recent file across all Draft folders for each PR.
If you still get multiple rows, sort within each group and keep just the top row to ensure a single result.
Please try this approach and let us know how it works for you.
Hi,
da es sehr unwahrscheinlich ist, dass mehrere User mehrere Dateien sekundengenau gleichzeitig ändern, kommt eigentlich immer nur eine Datei in Frage. Ich hab Dir mal ein Beispiel für mehrere csv Dateien in einem Ordner inklusive Unterordner gemacht. Im ersten Beispiel wird nur die neueste Datei aller Ordner ausgegeben.
Um die neuesten Dateien aller Ordner und Unterorder zu bestimmen, müsste noch nach den Ordnern gruppiert werden (im Beispiel 2).
Für Exceldateien ist das Vorgehen ein wenig anders, da die Daten sowohl in normalen als auch in formatierten Tabellen oder Namensbereichen liegen können. Es müsste deshalb noch nach der Art der Datenquelle gefiltert werden. Aus Unkenntnis Deiner Struktur beschränke ich mich deshalb auf csv Dateien.
let
//Den Ordner auswählen, in welchem sich die Dateien befinden - Pfad anpassen
//evtl. vorhandene Unterordner werden berücksichtigt
Quelle = Folder.Files("C:\Users\User\OneDrive\Dokumente\All_PQ\Beispiele\Mehrere Daten aus einem Quellordner auslesen\CSV Files Mit Unterordner"),
LowExtension = Table.TransformColumns(Quelle,{{"Extension", Text.Lower, type text}}),
//Nur csv-Dateien anzeigen
NurCSV = Table.SelectRows(LowExtension, each ([Extension] = ".csv")),
//Nach Datei(en) mit neuestem Bearbeitungsdatum filtern
LastModified = Table.SelectRows(NurCSV, let latest = List.Max(NurCSV[Date modified]) in each [Date modified] = latest),
SpalteUmbenennen = Table.RenameColumns(LastModified, {{"Name", "Datei"}}),
DelColumns = Table.SelectColumns(SpalteUmbenennen, { "Content", "Datei"}),
#"Importierte CSV" = Csv.Document(DelColumns[Content]{0},[Delimiter=";", Columns=4, Encoding=1252, QuoteStyle=QuoteStyle.None]),
HeaderHoch = Table.PromoteHeaders(#"Importierte CSV", [PromoteAllScalars=true])
in
HeaderHochIm folgenden Beispiel wird die jeweils zuletzt geänderte Datei auch aller Unterordner angezeigt: Also für jeden Ordner die jeweils letzte....
Das Ergebnis sähe in etwa so aus:
let
Quelle = Folder.Files("C:\Users\User\OneDrive\Dokumente\All_PQ\Beispiele\Mehrere Daten aus einem Quellordner auslesen\CSV Files Mit Unterordner"),
Kleinbuchstaben = Table.TransformColumns(Quelle,{{"Extension", Text.Lower, type text}}),
NurCSV = Table.SelectRows(Kleinbuchstaben, each ([Extension] = ".csv")),
Pfadgruppen = Table.Group(NurCSV, {"Folder Path"}, {{"Ordnergruppe", each _, type table [Content=binary, Name=text, Extension=text, Date accessed=nullable datetime, Date modified=nullable datetime, Date created=nullable datetime, Attributes=nullable record, Folder Path=text]}}),
AddGruppenindex = Table.AddIndexColumn(Pfadgruppen, "Gruppenindex", 0, 1, Int64.Type),
ExpandGI = Table.ExpandTableColumn(AddGruppenindex, "Ordnergruppe", {"Content", "Date modified", "Name"}, {"Content", "Date modified", "Name"}),
#"Sortierte Zeilen" = Table.Sort(ExpandGI,{{"Gruppenindex", Order.Ascending}, {"Date modified", Order.Descending}}),
fkt = (DatListe as list, GrIndex as number) =>
let
letzte = Table.SelectRows(#"Sortierte Zeilen",each [Gruppenindex] = GrIndex)[Date modified]{0}
in letzte,
Liste = Table.AddColumn(#"Sortierte Zeilen", "Liste", each fkt(#"Sortierte Zeilen"[Date modified],[Gruppenindex])),
Checken = Table.AddColumn(Liste, "Behalten", each [Date modified] = [Liste]),
JustFirstFile = Table.SelectRows(Checken, each ([Behalten] = true)),
#"Andere entfernte Spalten" = Table.SelectColumns(JustFirstFile,{"Content","Folder Path", "Name", "Date modified"})
in
#"Andere entfernte Spalten"
Da ich die Ordnerstruktur jetzt nicht nachstellen will, musst Du aus der Quelle in der Spalte Folder Path noch alle unerwünschten Ordner herausfiltern.
In der Abfrage befindet sich noch die Spalte Content, die Du brauchst, wenn Du die Dateien weiter bearbeiten willst. Aber das war ja hier nicht gefragt.
- JPorterValmetal4 months agoFrequent Visitor
I'm trying to follow your second example code, but it's a little difficult with the language barrier. I've used Google Translate to change the code into English. The copy pasted it.
I'm getting an error in the code on the "let last = table.selectrows" section. It says "Token ',' expected". I don't know how to fix this.
- JPorterValmetal4 months agoFrequent Visitor
Alright. I was able to get the syntax errors fixed. Now I am running into a different error.