Hallo liebe Alteryx-Community,
ich hoffe ihr könnt mir helfen! Ich bin noch neu hier, seid lieb! :-)
Ich habe folgendes Problem, dass ich durch Suchen in der Community oder in Tutorials bisher nicht adequat lösen konnte:
Meine Input-Datei gibt mir eine Menge Daten im Ausgabetyp V_WString aus. Da es sich um Geldbeträge handelt, quasi bsp. "20.000.000,01" im genannten Typ. Das Ändern des Ausgabetyps durch Tool "Formel mit mehreren Feldern" in den Typ Double klappt zwar. Nur leider erkennt er die von der Imput-Datei in punkten getrennte Tausender / Millionen als Dezimaltrenner an und macht aus 20.000.000,01 eben nur 20.
Mein Lösungsweg wäre es nun gewesen, per "Datenbereinigung" -> Interpunktion die punkte zu entfernen und dann den Ausgabetyp zu ändern, um die korrekten Zahlen zu erhalten. Leider unterscheidet die Interpunktion nicht zwischen Punkt und Komma, weshalb ich um im Beispiel zu bleiben am Ende 2000000001 als Zahl herausbekomme.
Wie kann ich die Art der Zeichen, die die Interpunktion während der Datenbereinigung entfernen soll definieren? Es kann ja nicht Sinn und Zweck sein, nur sämtliche Zeichen aufeinmal löschen zu können. Oder? ODER? :-) Alternativ-Tool-Lösungen nehme ich auch gerne.
Eine manuelle umformatierung der Input-Datei möchte ich vermeiden, da es eine aus einem System generierte Quelldatei handelt, welche für den Workflow immer wieder aktualisiert herausgezogen wird. Der Workflow soll ja die manuellen Arbeitsschritte wegfallen lassen.
Vielen Dank im Voraus!
Gelöst! Gehe zu Lösung.
Hallo @Marcel89GE,
willkommen in der Alteryx community! Selbstverständlich werden wir lieb sein, ich hoffe du hattest daran keine Zweifel :D
Ich würde das ganze wie folgt machen und zuerst einmal alle Punktzeichen loswerden, dies können wir zum Beispiel mit der Formel 'Replace' machen:
Replace([Number], '.', '')
Wichtig: Wir ersetzen den Punkt durch "nichts" - sprich zwischen den beiden Anführungszeichen ist auch kein Leerzeichen. Danach können wir die Zahl mit dem Select-Tool in Double umwandeln - wichtig ist dabei eine Einstellung die man gerne übersieht:
Setzt man diese, so nimmt Alteryx Kommas als Dezimaltrennzeichen und da wir die Punkte bereits entfernt haben, sollte danach alles funktionieren. Sollte es Probleme geben, so geb mir gerne Bescheid und ich hänge dir einen Beispiel-Workflow an.
Viele Grüße aus dem sonnigen Düsseldorf
Alex
Ahhhh Frischfleisch... Alle drauf... 😁
Probier mal den Replace Befehl im Formula Tool:
Und schön, dass du da bist. 😘
Grüße, MOM
Mist, da war der @grossal schneller :)
Vielen lieben Dank zusammen hat geklappt! Ihr seid Spitze!
Hallo @Marcel89GE ,
das Problem ist zwar schon gelöst, aber ich hätte da noch einen anderen Ansatz. Du könntest die Daten auch direkt mit der ToNumber Funktion umwandeln.
Das könnte zum Beispiel so aussehen:
Im Formula Tool:
ToNumber([Field1], 0, 0, ',')
oder im Multi-Field Formula Tool:
ToNumber([_CurrentField_], 0,0,',')
Der vierte Parameter gibt den Dezimaltrenner an - wenn Du da ein "," eingibt, wird automatisch der "." als Tausendertrenner behandelt und Du hast direkt einen numerischen Wert - im Formula Tool muss dann als Datentyp "Double" ausgewählt werden.
Etwas ausführlicher und auch für andere "Umwandlungsfälle" ist das hier Datentypen ändern | Tipps Tuesday #014 - Alteryx Community
beschrieben.
Viele Grüße
Roland