PowerQuery mehrere Trennzeichen
#1
Hallo ich bins wieder!

Bei der selben Datei wie beim letzten mal bräuchte ich jetzt den richtigen Code um bei verschiedenen Trennzeichen zu trennen. Und zwar einmal bei Strichpunkt, und einmal bei einem Tabstopp. Jegliche Klammerausdrücke die ich probierte funktionierten nicht. Auch in anderen Foren habe ich nach Lösungen gesucht, diese haben in meinem Anwendungsfall nicht funktioniert.
Ich denke den Code muss ich in der Funktion Datei transformieren ändern, hier der M-Code:

Code:
let
    Quelle = (Parameter1) => let
        Quelle = Csv.Document(Parameter1,[Delimiter=";", Columns=14, Encoding=1252, QuoteStyle=QuoteStyle.None]),
        #"Typ ändern" = Table.TransformColumnTypes(Quelle,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"Column6", type text}, {"Column7", type text}, {"Column8", type text}, {"Column9", type text}, {"Column10", type text}, {"Column11", type text}, {"Column12", type text}, {"Column13", type text}, {"Column14", type text}})
    in
        #"Typ ändern"
in
    Quelle

Danke im Voraus!
Antworten Top
#2
Hallo,

was spriicht dagebn, beim einlesen z. B. den Tabulator zu nehmen und danach die Spalten mit dem Semikolon aufzuteilen (Transformieren -> Textspalte -> Spalte teilen)?
Gruß
Michael
Antworten Top
#3
(20.08.2021, 08:54)Der Steuerfuzzi schrieb: was spriicht dagebn, beim einlesen z. B. den Tabulator zu nehmen und danach die Spalten mit dem Semikolon aufzuteilen (Transformieren -> Textspalte -> Spalte teilen)?

Hab ich auch schon probiert, nur sind dann die Infos in einer neuen Spalte am Ende der Tabelle und nicht in den bereits erstellten Spalten, in denen auch die Infos der anderen Zeilen stehen.
Siehe Bild:     
Antworten Top
#4
Alternative:
Du liest die Datei ohne Trennzeichen ein. Danach ersetzt Du eines der Trennzeichen durch das andere und Teilst dann die eine Spalte auf (wie oben beschrieben). Das zu ersetzende Trennzeichen darf aber dann nicht in den Daten vorkommen.
Gruß
Michael
Antworten Top
#5
Geht leider auch nicht, da nach dem Einlesen die Tabs mit Leerzeichen ersetzt werden.
Antworten Top
#6
Huh
Dann ersetze die Tabs halt nicht durch Leerzeichen, sondern durch das Semikolon. Ich dachte, Du willst Tab und Semikolon als Trennzeichen verwenden!?
Gruß
Michael
Antworten Top
#7
Die Tabs werden automatisch mit Leerzeichen ersetzt, egal in welcher Form ich die Daten einlese
Antworten Top
#8
Das musst Du mal erklären. Wo soll den das ersetzen automatisch passieren?
Vor Power Query (also in der Anwendung, aus der die Daten stammen)? Dann wäre Deine Frage überflüssig.
Durch Power Query? Dann passiert es normalerweise nicht automatisch.

Aus Deinen Ausführungen werde ich nicht schlau!

Du kannst ja mal eine Beispieldatei mit Beispieldaten hier hochladen. Vielleicht wird es dann etwas klarer ...
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • Fischi_VIECH
Antworten Top
#9
Sorry führ die lange Wartezeit. Habe übers WE den PC nicht eingeschaltet.

Habe eine Datei erstellt die aus dem Verzeichnis C:\00_PQ_Test\00_Files die Dateien liest. Einfach denzip Ordner entpacken und in C: schmeißen!

Lg


Angehängte Dateien
.zip   00_PQ_Test.zip (Größe: 34,59 KB / Downloads: 7)
Antworten Top
#10
Ganz grob müsste es doch so funktionieren:
Code:
let
    Quelle = Folder.Files("C:\00_PQ_Test\00_Files"),
    #"Gefilterte ausgeblendete Dateien1" = Table.SelectRows(Quelle, each [Attributes]?[Hidden]? <> true),
    #"Benutzerdefinierte Funktion aufrufen1" = Table.AddColumn(#"Gefilterte ausgeblendete Dateien1", "Datei transformieren", each #"Datei transformieren"([Content])),
    #"Umbenannte Spalten1" = Table.RenameColumns(#"Benutzerdefinierte Funktion aufrufen1", {"Name", "Source.Name"}),
    #"Andere entfernte Spalten1" = Table.SelectColumns(#"Umbenannte Spalten1", {"Source.Name", "Datei transformieren"}),
    #"Erweiterte Tabellenspalte1" = Table.ExpandTableColumn(#"Andere entfernte Spalten1", "Datei transformieren", Table.ColumnNames(#"Datei transformieren"(Beispieldatei))),
    #"Geänderter Typ" = Table.TransformColumnTypes(#"Erweiterte Tabellenspalte1",{{"Source.Name", type text}, {"Column1", type text}}),
    #"Ersetzter Wert" = Table.ReplaceValue(#"Geänderter Typ","#(tab)",";",Replacer.ReplaceText,{"Column1"}),
    #"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Ersetzter Wert", "Column1", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5"}),
    #"Geänderter Typ1" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Column1.1", type text}, {"Column1.2", type datetime}, {"Column1.3", type text}, {"Column1.4", type text}, {"Column1.5", type text}})
in
    #"Geänderter Typ1"

Du musst dann halt noch Deine zusätzlichen Änderungen und Ergänzungen einbauen.

Falls es nicht das ist, was Du suchst, erklär doch bitte mal genau, wie das Ergebnis aussehen soll und wo es nicht so wird, wie Du Dir es vorstellst.
Gruß
Michael
Antworten Top


Gehe zu:


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