Free Trial

Forum - Deutsch

Suchen Sie nach Antworten, stellen Sie Fragen und teilen Sie Ihr Alteryx-Wissen.

Umwandeln einer Text Datei in eine Tabelle mit mehreren Spalten

SK490
Atom

Hallo zusammen,

 

ich habe eine Frage zur Umwandlung einer Text-Datei, die ich als Output aus einer Datenbank bekomme.

Ich habe in dieser Datei zahlreiche Personen mit jeweils Informationen zu der Person. Doch leider habe ich dabei nicht eine Person pro Spalte und die Informationen jeweils in Spalten oder pro Person eine Spalte und die Information in Zeilen. Vielmehr sind alle Personen / Informationen in einer Spalte untereinander. Ein bestimmtes Zeichen trennt dabei die Personen voneinander ab.

 

Ich habe dazu einmal einen kurzen Beispielfile gebaut:

¿
Info1:  15623122
Info2:  
Info3:  54645221
Info4:  kalfaklf
Info5:   
Info6:  fafkapfk
Info7:  645cghmcgmc1

¿
Info1:  64564651
Info2:  cghmgm4651
Info3:  48456132
Info4:  
Info5:  6456aeraergaeg1 
Info6:  6456ge51
Info7:  642cmhmcmcmcmcmcmcmcmcmcmcmcmcmcmcmcmcmcmcmcmcm51

¿
Info1:  64564hgcm651
Info2:  6ydhfbcvbbbbbbbbbbb4651
Info3:  
Info4:  64564651
Info5:  femcghm651 
Info6:  64564651
Info7:  64564ge

¿
Info1:  6af51
Info2:  645faf1
Info3:  64564651
Info4:  645afa651
Info5:  64wdacm cbvmbnmm mzgtddf1 
Info6:  64564:/nfmsadnj651
Info7:  645mh651

 

 Nun stehe ich leider auf dem Schlauch und bekomme den Text nicht in eine verarbeitbare Tabelle umgewandelt. Die einfachste Lösung sollte wohl eine Tabelle mit jeweils 1 Spalte pro Person sein? Also müsste Alteryx immer nach dem "¿" eine neue Spalte beginnen. Ist sowas möglich?

 

Vielen lieben Dank und beste Grüße!

5 ANTWORTEN 5
RolandSchubert
16 - Nebula
16 - Nebula

Hallo @SK490 ,

 

das könnte ein Fall für das Make Columns Tool sein:

RolandSchubert_0-1670342525581.png

Bei diesem Tool kannst Du angeben, wieviel Spalten gebildet werden sollen (im Beispiel sind es 4 - das muss also vorher bekannt sein)

 

RolandSchubert_1-1670342615190.png

 

 

Bei der Beispieldatei werden dann die Zeilen so in Spalten umgewandelt, dass 4 Spalten herauskommen,
hier beginnt also nach jeweils 9 Zeilen eine neue Spalte.

 

Das Ergebnis sieht dann so aus:

 

RolandSchubert_2-1670342729157.png

 

Geht das in die richtige Richtung?

 

Viele Grüße

 

Roland

SK490
Atom

Hi Roland,

 

vielen lieben Dank für deine Antwort. Das Tool geht definitiv schon in eine gute Richtung.

 

Die Anzahl der Einträge (und somit Spalten) müsste ich herausfinden können (ideal wäre aber, wenn das nicht bekannt sein müsste).

 

Vielmehr sehe ich aber ein Problem darin, dass wohl nicht für alle Personen immer die gleiche Anzahl an Informationen und somit Zeilen enthalten sind. Dieses Sonderzeichen "¿"  kann ich nicht als Startpunkt für eine neue Spalte verwenden?

 

UPDATE: Ich habe es nun mal geprüft. Leider ist die Anzahl der Einträge / Zeilen pro Person nicht gleich. Daher fällt diese Lösung leider flach. Ich brauche tatsächlich eine Trennung nach dem Sonderzeichen "¿". Das ist die einzige Konstante in meinem Datensatz...

Zudem habe ich nun gesehen, dass die Reihenfolge der Informationen auch für jede Person etwas springt. Also "Info1" wie in meinem Beispiel ist nicht immer der erste Eintrag, sonder kann auch mal an 2. oder 3. Stelle kommen... Es ist aber Konstant, dass es die selbe Beschreibung / Benennung hat.

 

Vielen lieben Dank!

RolandSchubert
16 - Nebula
16 - Nebula

Hallo @SK490 ,

 

dann geht es leider nicht mit einem Tool, sondern wir brauchen ein paar zusätzliche Schritte.

 

Mit dem Multi-Row Formula Tool kann man zunächst einmal eine Art Zählen erzeugen, der bei jeden neuen Gruppe von Daten (= neue Person) um 1 erhöht wird.

 

Dann können wir NULL-Zeien und die Zeilen mit dem Trenner entfernen.

 

Jetzt gibt es zwei Wege - entweder Label (also Info1, Info2, etc.) und den Inhalt trennen (Text To Columns) und dann die einzelnen Infos in Spalten, die Personen in Zeilen übertragen, oder aber über eine Art "Übersetzungstabelle" (Liste der Infos zu entsprechender Zeile) die Info-Nummer ergänzen und die Personen dann in Spalten ablegen.

 

 

RolandSchubert_0-1670498443974.png

 

Den Workflow habe ich mal angehängt.

 

Ich hoffe, das hilft weiter.

 

Viele Grüße

 

Roland

Biggi
Asteroid

Hallo @SK490 ,

 

bin mit meiner Lösungsidee zu spät... @RolandSchubert war natürlich schneller ;-)

Dennoch hier mein Weg, sieht etwas anders aus, geht aber prinzipiell ähnlich vor:

Ich nutze die RecordID in Verbindung mit der Startzeile "¿". Ich fülle die Zeilen mit Inhalt mit der RecordID der Startzeile und drehe letztendlich die Spalten um:

Biggi_0-1671024838117.png

Sieht dann so aus:

Biggi_1-1671025118629.png

 

Den Workflow findest du unten.

 

weiterhin viel Spaß mit Alteryx!

 

viele Grüße

Birgit

 

SK490
Atom

Hey @Biggi & @RolandSchubert,

 

vielen lieben Dank für eure Lösungen / Vorschläge. Was eine starke Community :).

 

Leider konnte ich mich dem Thema bisher noch nicht wieder richtig widmen. Aber habe es mir heute mal angeschaut und insb. die Lösung von @RolandSchubert funktioniert scheinbar richtig gut für meinen Fall!

 

Ich teste gerade noch etwas und melde mich dann auf jeden Fall nochmal bei euch!

 

Vielen lieben Dank und falls wir uns vorher nicht mehr hören, wünsche ich euch schon mal ein schönes Weihnachtsfest!

 

LG Sebastian

Beschriftungen