Als Antwort auf diesen Beitrag
Sorry,
da war noch ein Fehler drin;
Die Zeile Werte = .... liest ab B3 ein.
Richtig ist diese Zeile so:
Werte = List.FirstN(ColB_fixed, 52) in Werte),
kompletter korrigierter M-Code:
let
// Ordner einlesen
Quelle = Folder.Files("C:\DeinVerzeichnis"),
CSVs = Table.SelectRows(Quelle, each Text.Lower([Extension]) = ".csv"),
MitListe = Table.AddColumn(CSVs, "Liste", each let
Source = Csv.Document(File.Contents([Folder Path] & [Name]), [Delimiter = ";", Encoding = 65001, QuoteStyle = QuoteStyle.None]),
Promoted = Table.PromoteHeaders(Source, [PromoteAllScalars = true]),
ColNames = Table.ColumnNames(Promoted),
HasColB = List.Count(ColNames) >= 2,
ColB = if HasColB then Table.Column(Promoted, ColNames{1}) else List.Repeat({null}, 53),
ColB_fixed = if List.Count(ColB) < 53 then ColB & List.Repeat({null}, 53 - List.Count(ColB)) else ColB,
Werte = List.FirstN(ColB_fixed, 52) in Werte),
AlsTabelle = Table.TransformColumns(MitListe,{"Liste", each let SpaltenNamen = List.Transform({2..53}, each "B" & Text.From(_)) in Table.FromRows({ _ }, SpaltenNamen)}),
Expandiert = Table.ExpandTableColumn(AlsTabelle,"Liste", List.Transform({2..53}, each "B" & Text.From(_)),List.Transform({2..53}, each "B" & Text.From(_))),
MitDatei = Table.RenameColumns(Expandiert,{{"Name", "Name derDatei"}}),
Ergebnis =Table.SelectColumns(MitDatei,{"Name derDatei"} & List.Transform({2..53}, each "B" & Text.From(_)))
in
Ergebnis
Gruß Uwe