Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Blog - Deutsch

Erkenntnisse und Ideen von den besten Analytics-Experten.
RolandSchubert
16 - Nebula
16 - Nebula

ToString, ToNumber oder Substring benutzen vermutlich viele Alteryx-Anwender regelmäßig. Auch bei DateTimeParse oder Replace fällt den meisten wohl sofort ein, wann man die Funktion einsetzen kann. Aber STRCSPN oder STRSPN? Da wird wahrscheinlich schon mal die Frage gestellt, wer denn sowas braucht und vor allem - wozu? Das schauen wir uns heute mal näher an.

 

Oft stehen wir bei der Aufbereitung von Daten für die weitere Analyse ja vor der Herausforderung, ein Textfeld in seine Bestandteile zu zerlegen. Das "Original" kann ungefähr so aussehen:

 

P01.jpg

 

Das Feld beginnt mit einer Reihe von Ziffern (z.B. Kontonummer, Produktnummer etc.), dann folgen einige Buchstaben, dann ein Datum, wieder ein Buchstabe und schließlich eine Zahl. Trennzeichen gibt es keine; leider haben zudem die einzelnen Teile in den Datensätzen eine unterschiedliche Anzahl  von Zeichen, sogar das Datum ist nicht einheitlich aufgebaut. Für Funktionen wir Left, Right oder SubString brauchen wir aber die Zeichenanzahl (bei Substring zusätzlich noch die Startposition). Was tun?

 

Für das erste Feld, das wir isolieren wollen, brauchen wir die Anzahl Zeichen am Anfang des Feldes, die nur Ziffern enthalten. Da kann uns die Funktion STRSPN helfen. Wir geben ein Feld an (hier [F1]), außerdem eine Liste der "zulässigen" Zeichen (hier die Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) und bekommen als Ergebnis die Länge des Teilstrings am Feldanfang, der nur aus diesen Zeichen besteht. In unserem Beispiel sind das 8, 5 bzw. 17, danach folgt jeweils das erste Zeichen, das nicht in der Liste enthalten ist. 

 

P02.jpg

 

Damit können wir jetzt natürlich den entsprechenden Teil des Feld "abschneiden" - der erste Bereich ist damit erledigt.

 

P03.jpg

 

Um für die folgenden Teilbereiche die gleiche Methode verwenden zu können, entfernen wir den isolierten Teil jetzt auch aus dem Ausgangsfeld:

 

P04.jpg

 

Der nächste Teilbereich besteht jetzt nur aus Buchstaben, danach geht es dann mit wieder mit Ziffern weiter. Diesmal brauchen wir nicht den Teil, der nur aus Ziffern besteht, sondern das genaue Gegenteil - und das liefert STRCSPN.

 

P05.jpg

 

Hier finden wir im ersten Datensatz das erste Zeichen, das in der Liste auftaucht, bei Position 9 - also endet der Bereich der "nicht in der Liste enthaltenen Zeichen" bei Position 8. Nun geht es wie zuvor gezeigt weiter:

 

P06.jpg

 

Das lässt sich in gleicher Weise fortsetzen, um die verbleibenden Felder zu erstellen - dabei ist die Logik immer die gleiche - wir suchen die Länge des Teilstrings, dessen Zeichen in einer Liste vorkommen (STRSPN) oder nicht vorkommen (STRCSPN), schneiden den entsprechenden Teilstring ab, bereinigen den verbleibenden Rest und gehen zum nächsten Feld über.

 

P07.jpg

 

 Hier sind alle Felder fertig extrahiert. Bei derartigen "Zerlegeaktionen" können die Funktionen also sehr hilfreich sein. Aber auch um bei Hierarchien, die als Liste mit immer weiter eingerückten Unterelementen bereitgestellt werden, die Ebene der einzelnen Elemente zu ermitteln, können wir die Funktionen nutzen. 

 

Ganz generell gilt - neben den Funktionen, die man täglich braucht und die immer im Vordergrund stehen, gibt es noch viele weitere, die in bestimmten Fällen sinnvoll und nützlich sind und helfen können,  einfachere Lösungen zu finden.

 

 

 

Weitere Tipps Tuesday Beiträge

Dieser Eintrag ist Teil der Tipps Tuesday-Serie, alle Einträge dieser Serie findest du in unserem Index aufgelistet.

Beschriftungen