Registriert seit: 12.07.2021
Version(en): 365
Das geht auch mit mehreren Trennzeichen in einem:
Code: let
// Source = Csv.Document(File.Contents("D:\Downloads\Eins.txt"),[Delimiter=" ", Columns=2, Encoding=1252, QuoteStyle=QuoteStyle.None]),
Source = Csv.Document(File.Contents("D:\Downloads\Eins.txt"),null,"@Hier keine Trennung@",ExtraValues.Ignore,1252),
Split_Col_by_Delimiter = Table.SplitColumn(Source, "Column1", Splitter.SplitTextByAnyDelimiter({";", " "}, QuoteStyle.Csv), {"C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10"})
in
Split_Col_by_Delimiter
Referenz: https://community.powerbi.com/t5/Desktop...992#M99100
Registriert seit: 02.08.2014
Version(en): 2016
Hallo,
ich bin noch nicht so bewandert in M-Code und kannte die Splitter.SplitTextByAnyDelimiter - Funktion noch nicht. Hat mich interessiert und nebenbei habe ich deinen Code ein wenig umgestellt, sodass keine Hilfs-Abfragen mehr benötigt werden und alles in einem Code geschehen kann:
Code: let
CSV_FILE_COLUMN_NAME = "csv File",
fct_csvInput_NoSep = (Parameter1, csv_column_name) =>
let
source = Csv.Document(Parameter1, null, "@Hier keine Trennung@", ExtraValues.Ignore, 65001), // utf-8 encoding
renameColumn = Table.RenameColumns(source, {Table.ColumnNames(source){0}, csv_column_name})
in
renameColumn,
Quelle = Folder.Files("c:\00_PQ_Test\00_Files\"),
#"Gefilterte ausgeblendete Dateien1" = Table.SelectRows(Quelle, each [Attributes]?[Hidden]? <> true),
lese_CSV_Dateien = Table.AddColumn(#"Gefilterte ausgeblendete Dateien1", "Datei transformieren", each fct_csvInput_NoSep([Content], CSV_FILE_COLUMN_NAME)),
#"Umbenannte Spalten1" = Table.RenameColumns(lese_CSV_Dateien, {"Name", "Source.Name"}),
relevante_Spalten = Table.SelectColumns(#"Umbenannte Spalten1", {"Source.Name", "Datei transformieren"}),
CSV_Inhalt_in_Spalten = Table.ExpandTableColumn(relevante_Spalten, "Datei transformieren", {CSV_FILE_COLUMN_NAME}),
getrennte_Spalten = Table.SplitColumn(CSV_Inhalt_in_Spalten, CSV_FILE_COLUMN_NAME, Splitter.SplitTextByAnyDelimiter({";", "#(tab)"}, QuoteStyle.Csv), {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14"}),
#"Umbenannte Spalten" = Table.RenameColumns(getrennte_Spalten,{{"Column2", "Zeitstempel"}}),
#"Tagesbeginn eingefügt" = Table.AddColumn(#"Umbenannte Spalten", "Tagesbeginn", each Date.StartOfDay(DateTime.From([Zeitstempel])), type datetime),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Tagesbeginn eingefügt",{{"Tagesbeginn", type date}}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Geänderter Typ",{"Source.Name", "Column1", "Tagesbeginn", "Zeitstempel", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14"}),
#"Beginn der Stunde eingefügt" = Table.AddColumn(#"Neu angeordnete Spalten", "Beginn der Stunde", each Time.StartOfHour(DateTime.From([Zeitstempel])), type datetime),
#"Neu angeordnete Spalten1" = Table.ReorderColumns(#"Beginn der Stunde eingefügt",{"Source.Name", "Column1", "Tagesbeginn", "Beginn der Stunde", "Zeitstempel", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14"}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Neu angeordnete Spalten1", each ([Column1] <> "" and [Column1] <> " "))
in
#"Gefilterte Zeilen"
Also im Prinzip überhaupt nichts neues, vielleicht interessiert es dich ja trotzdem.
Grüße, Ulrich
|