Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

PowerQuery mehrere Trennzeichen
#11
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
Antworten Top
#12
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste