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!
Hallo @SK490 ,
das könnte ein Fall für das Make Columns Tool sein:
Bei diesem Tool kannst Du angeben, wieviel Spalten gebildet werden sollen (im Beispiel sind es 4 - das muss also vorher bekannt sein)
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:
Geht das in die richtige Richtung?
Viele Grüße
Roland
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!
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.
Den Workflow habe ich mal angehängt.
Ich hoffe, das hilft weiter.
Viele Grüße
Roland
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:
Sieht dann so aus:
Den Workflow findest du unten.
weiterhin viel Spaß mit Alteryx!
viele Grüße
Birgit
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