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:
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.
Damit können wir jetzt natürlich den entsprechenden Teil des Feld "abschneiden" - der erste Bereich ist damit erledigt.
Um für die folgenden Teilbereiche die gleiche Methode verwenden zu können, entfernen wir den isolierten Teil jetzt auch aus dem Ausgangsfeld:
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.
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:
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.
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.
Sie müssen ein registrierter Benutzer sein, um hier einen Kommentar hinzuzufügen. Wenn Sie sich bereits registriert haben, melden Sie sich bitte an. Wenn Sie sich noch nicht registriert haben, führen Sie bitte eine Registrierung durch und melden Sie sich an.