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.
JPorterValmetal wrote:Wie erwähnt, brauche ich nur die neueste Datei aus dem neuesten "Draft"-Ordner jedes "PR-26***"-Ordners. Deshalb probiere ich den zweiten Codesatz aus. Ich habe die Fehler behoben, aber ich habe etwa 20 Minuten gewartet und es lädt immer noch alle Schritte.
*****************************************************************************************************************
In diesem Fall brauchst Du tatsächlich den unteren Code. Aber wenn Du 20 Minuten brauchst, dann stimmt da was nicht. Da hat sich sicher ein Kopier- oder Übersetzungsfehler eingeschlichen.
Hab Dir mal einen Code gemacht, bei dem zumindest Übersetzungsfehler ausgeschlossen sein dürften. Probier mal den:
let
Quelle = Folder.Files("C:\Users\User\OneDrive\Dokumente\All_PQ\Beispiele\Mehrere Daten aus einem Quellordner auslesen\CSV Files Mit Unterordner"),
LowerKeys = Table.TransformColumns(Quelle,{{"Extension", Text.Lower, type text}}),
NurCSV = Table.SelectRows(LowerKeys, each ([Extension] = ".csv")),
FolderGroups = Table.Group(NurCSV, {"Folder Path"}, {{"Foldergroup", 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]}}),
AddGroupIndex = Table.AddIndexColumn(FolderGroups, "GroupIndex", 0, 1, Int64.Type),
ExpandGI = Table.ExpandTableColumn(AddGroupIndex, "Foldergroup", {"Content", "Date modified", "Name"}, {"Content", "Date modified", "Name"}),
SortRows = Table.Sort(ExpandGI,{{"GroupIndex", Order.Ascending}, {"Date modified", Order.Descending}}),
Filter = Table.AddColumn(SortRows, "LastDat",
each
let
GrInd = [GroupIndex]
in
List.Max(Table.Column(Table.SelectRows(SortRows,
each [GroupIndex] = GrInd ),"Date modified"))),
AddCheckCol = Table.AddColumn(Filter, "Check", each [Date modified] = [LastDat]),
LatestFiles = Table.SelectRows(AddCheckCol, each ([Check] = true)),
RemoveOtherCols = Table.SelectColumns(LatestFiles,{"Folder Path", "Name", "Date modified", "Content"})
in
RemoveOtherCols
Was mir noch einfällt:
Wenn die Quelldaten in Excelfiles stehen, muss der Code natürlich auf Excelfiles angepasst werden!
Im Schritt:
NurCSV = Table.SelectRows(LowerKeys, each ([Extension] = ".csv")),
muss der Filter von .csv auf .xlsx geändert werden.
Falls aber auch Makro- oder Vorlagendateien in den Ordnern stehen und ausgewertet werden sollen, kannst Du den Schritt aber auch so abändern:
NurCSV = Table.SelectRows(LowerKeys, each Text.Contains([Extension],".xl")),...oder nach welchen Dateityp (doc, txt, jpg, mpeg,....) Du auch immer suchst...