Registriert seit: 07.10.2019
Version(en): 365
Wow, das hat tatsächlich funktioniert, vielen lieben Dank Dir. Könntest Du mir vielleicht noch sagen, wieso das ganze nicht funktioniert hat, wenn ich die "," mittels Suchen und Ersetzen in Semikolons ";" umgewandelt habe und diesen dann als Texttrenner angegeben habe (Bei Daten Abrufen aus Text/CSV)?
Registriert seit: 18.10.2020
Version(en): 365
(19.02.2025, 15:42)Juxhine schrieb: Wow, das hat tatsächlich funktioniert, vielen lieben Dank Dir. Könntest Du mir vielleicht noch sagen, wieso das ganze nicht funktioniert hat, wenn ich die "," mittels Suchen und Ersetzen in Semikolons ";" umgewandelt habe und diesen dann als Texttrenner angegeben habe (Bei Daten Abrufen aus Text/CSV)? Falls ich gemeint bin: Ich ersetze jedes Vorkommen von durch . Dadurch werden alle doppelten Anführungszeichen entfernt, bis auf das erste , welches ebenfalls durch ersetzt wird. Gleichzeitig dient das Semikolon als eindeutiges Trennzeichen für die Spalten, vorausgesetzt, es kommt nicht an anderer Stelle im Text vor. Abschließend entferne ich das verbleibende Anführungszeichen am rechten Ende. So erhalte ich Daten, die Power Query (PQ) korrekt in Spalten aufteilen kann.
Registriert seit: 29.09.2015
Version(en): 2030,5
In VBA Code: Sub M_snb() Workbooks.OpenText "J:\download\2020_2024 Learning Hours.csv", , , 1, 2, , , , 1 Sheets(1).Cells.Replace Chr(34), "" End Sub
Registriert seit: 30.06.2023
Version(en): 2019
Hallo PQ-Fan's, hier mal meine Variante, wobei das Festlegen der neue Spaltennamen zum Splitten per M-Code zuvor ermittelt wird. Code: let Source = Csv.Document(File.Contents(Param_01 & "2020_2024 Learning Hours.csv"),[Delimiter=",", Columns=1, Encoding=65001]), Split_1 = Table.SplitColumn(Source, "Column1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.None, false), {"Column1.1", "Column1.2"}), #"Anz neue Spalten" = //Spalte 'Column1.2' als Liste let a = Split_1[Column1.2], //alle Positionen der Kommata je Zeile ermitteln b = List.Transform(a, each Text.PositionOf(_, ",", Occurrence.All)), //Anzahl der Kommata je Zeile c = List.Transform(b, each List.Count(_) + 1 - 2) //größte Anzahl als Einzelwert bestimmen in List.Max(c), //neue Spaltennamen festlegen #"Liste neue SpaltenNamen" = List.Transform({1..#"Anz neue Spalten"}, each "Column1.2." & Text.From(_)), Split_2 = Table.SplitColumn(Split_1, "Column1.2", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), #"Liste neue SpaltenNamen"), Promote_Hdr = Table.PromoteHeaders(Split_2, [PromoteAllScalars=true]), Change_Type = Table.TransformColumnTypes(Promote_Hdr, {{"User ID", type text}, {"Active User", type text}, {"First Name", type text}, {"Last Name", type text}, {"Middle Name", type text}, {"Manager ID", Int64.Type}, {"Manager First Name", type text}, {"Manager Last Name", type text}, {"Manager Middle Name", type text}, {"Organization ID", type text}, {"Organization Description", type text}, {"Job Code ID", type text}, {"Job Code Description", type text}, {"Job Location ID", type text}, {"Job Location Description", type text}, {"Employee Type ID", type text}, {"Employee Type Description", type text}, {"Employee Status ID", type text}, {"Employee Status Description", type text}, {"Item Type", type text}, {"Item ID", type text}, {"Item Revision Date", type text}, {"Revision Number", type text}, {"Item Title", type text}, {"Completion Date", type text}, {"Primary Location", type text}, {"Total Hours", type text}, {"Credit Hours", type text}, {"CPE Hours", type text}, {"Contact Hours", type text}})
in
Change_Type
Hinweis: Param_01 ist ein definierter Parameter mit den aktuellen Dateipfad (bei mir: F:\Daten\Downloads\) Gruß von Luschi aus klein-Paris
|