• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Opgelost Gegevens van meerdere Excel bestanden samenvoegen naar 1 tabblad

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.
oei, ik had je 2e reactie nog niet gelezen en dan was die vraag eigenlijk niet aan mij gericht, maar ik was toch bezig met de macro "beknopt"
 

Bijlagen

Het is goed te doen via power query. In de eerste Query heb ik de laatste stap omgezet naar een meta regel. Zo kan je in een andere query gemakkelijk verwijzen naar een bepaalde stap in de (ik noem het maar even) hoofdquery. Dus open een blank query en plak dit in de editor. Noem deze query "tbl_all"

PHP:
let
    Source = Folder.Files("C:\Users\xxx\Downloads\test"),
    fltr_files = Table.SelectRows(Source, each Text.Contains([Name], "Programma")),
    fltr_hidden_files = Table.SelectRows(fltr_files, each [Attributes]?[Hidden]? <> true),
    get_content = Table.Combine(List.Transform(fltr_hidden_files[Content], each Excel.Workbook(_))),
    expand = Table.ExpandTableColumn(get_content, "Data", Table.ColumnNames(get_content[Data]{0})),
    delCols = Table.RemoveColumns(expand,{"Column6", "Column9", "Item", "Kind", "Hidden"}),
    newCols = {"Date", "Time", "Step", "BadeprogramID", "Baseprogram", "ChamberTemp", "coreTemp", "chamberTempp", "coreTempp", "FValue"},
    Headers = Table.RenameColumns(delCols, List.Zip({List.Skip(Table.ColumnNames(delCols),1),newCols})),
    GetBatch = Table.AddColumn(Headers, "Batch", each if [Date] = "Batch:" then [Time] else null),
    GetProg = Table.AddColumn(GetBatch, "Programma", each try if Text.Contains([Date], "Programma") or Text.Contains([Date], "PROCES") then [Date] else null otherwise null),
    fill = Table.FillDown(GetProg,{"Batch", "Programma"}),
    keep_dates = Table.SelectRows(fill, each Value.Type([Date]) = type datetime),
    reorder = Table.ReorderColumns(keep_dates,{"Programma", "Name", "Batch", "Date", "Time", "Step", "BadeprogramID", "Baseprogram", "ChamberTemp", "coreTemp", "chamberTempp", "coreTempp", "FValue"}),
    result = Table.TransformColumnTypes(reorder,{{"Date", type date}, {"Time", type time}}),
    metaStep = result meta [ReferenceStepIntermediate = expand]
in
    metaStep

Open nogmaals een blank query en plak daarna onderstaande query in de editor. Als eerste stap zie je nu de meta stap, kijkend naar de hoofdquery (stap expand). Zo houd je het wat beknopter

PHP:
let
    Source =  Value.Metadata(tbl_all)[ReferenceStepIntermediate],
    fltr = Table.SelectRows(Source, each Value.Type([Column1]) <> type datetime and [Column1] <> null and [Column1] <> "Date" and [Column1] <> "Step Information" ),
    delCols = Table.SelectColumns(fltr,{"Column1", "Column2"}),
    nCol = Table.AddColumn(delCols, "Process", each if Text.Contains([Column1],"Programma") or Text.Contains([Column1],"PROCES") then [Column1] else null),
    fill = Table.FillDown(nCol,{"Process"}),
    summary = Table.Group(fill, {"Process"}, {{"batch", each List.Last(_[Column2])},{"Start", each _[Column2]{1}},{"End", each _[Column2]{2}}})
in
    summary
 
Laatst bewerkt:
Dankjewel voor deze leerrijke werkbare oplossingen,
ChatGpt heeft er niets aan 😁

Zoveel leermateriaal !

Dank om jullie kennis en tijd te delen 👍

Weet weeral niet hoe jullie allen te bedanken!

Groeten,
Georgyboy
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan