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

Forum - Deutsch

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

Datenbereinigung: Interpunktion von genau definierten Zeichen

Marcel89GE
Meteor

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!

5 ANTWORTEN 5
grossal
15 - Aurora
15 - Aurora

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:

 

grossal_0-1651673106784.png

 

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

 

momaeder
Alteryx Alumni (Retired)

Ahhhh Frischfleisch... Alle drauf... 😁

 

Probier mal den Replace Befehl im Formula Tool:

momaeder_0-1651673817394.png

Und schön, dass du da bist. 😘

Grüße, MOM

momaeder
Alteryx Alumni (Retired)

Mist, da war der @grossal schneller :)

Marcel89GE
Meteor

Vielen lieben Dank zusammen hat geklappt! Ihr seid Spitze!

RolandSchubert
16 - Nebula
16 - Nebula

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

Beschriftungen