Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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