Hallo Zusammen,
in Excel kann ich anhand der alphanumerischen Lagerorte eine "Einteilung" vornehmen (Beispiel Datei anbei).
In alteryx bekommen die Original eingelesenen Daten die angehängten Datentypen.
Hat jemand von euch eine Idee, wie ich die Einteilung mit alphanumerischen Lagerorten hinbekomme?
Wenn ich die Datentypen von Lagerort über "Datenfelder auswählen" ändere, auf z.B. Int32, dann werden mir die Lagerorte mit Buchstaben rausgeschmissen.
Ich hab es über "Zeilen generieren" probiert, aber auch hier kein Ergebnis.
LG Raphael
Gelöst! Gehe zu Lösung.
Moin Raphael,
auch für dieses Problem gibt es (mindestens) eine Lösung.
Zuerst zerpflücke ich deine Datei, um die beiden Spaltenbereiche aufzutrennen.
Für die Zuordnungstabelle der Lagerorte stammen die Überschriften aus der ersten Zeile, anschließend schmeiße ich noch die Nullzeilen raus.
Danach separiere ich die führenden Buchstaben aus den Feldern "Von" und "Bis" mit dem RegEx-Tool:
Damit kann ich nun den numerischen Teil der beiden Spalten ermitteln:
Mit den beiden neuen Spalten ZählerVon und ZählerBis kannst du nun alle möglichen Lagerorte ermitteln, indem du die Zeilen ergänzt:
Jetzt kannst du den Lagerort wieder zusammenbauen.
Dann noch schnell beide Spaltenbereiche wieder miteinanderverknüpfen
fertsch. Die bisherige Einteilung aus Excel habe ich drin gelassen, damit du siehst, dass es funktioniert 😉
Den Workflow füge ich wieder an.
viele Grüße
Birgit
Hallo Zusammen,
zunächst einmal möchte ich ein Lob an euch beide aussprechen: @RHeid für das vorbildliche Fragestellen hier - inklusive Beispiel-Datei so das wir als Community es leicht haben dir zu helfen und @Biggi für das sehr ausführliche Erklären - großartig!
Zugegebenermaßen hatte ich mir deine Lösung @Biggi angeschaut und mir gedacht "Hätte ich nicht besser machen können", habe den Workflow angeworfen und saß dann erstmal fast 2 Minuten da und habe das Ergebnis abgewartet. Bei so einer Wartezeit kommt bei mir natürlich die Frage auf: "Das muss doch auch schneller gehen oder nicht?" Und tatsächlich geht es das auch mit ein bisschen schummeln/tricksen.
Vorher
Nachher
Aber wie geht das?
Ich sage es fast bei jedem Training das ich halte "Ihr seid die Experten über eure Daten und kennt diese am besten". Was will ich damit sagen? Man muss nicht immer alles prüfen, sondern manchmal kann man auch das gewonnene Wissen über die Daten mit dazu ziehen.
Was bedeutet das konkret?
Ich habe mir sehr genau die Ranges angeschaut und Muster bemerkt. Die meisten Ranges sind innerhalb eines "simplen" Bereichs, sprich, eigentlich müsste man nur gegen die ersten 1-2 Zeichen prüfen um diese zu testen. Wenn es mit 42 anfängt, wird es immer ein Schrank sein. Es gibt lediglich die Bereiche mit 8110-8959 und A20-A22 die aus diesem Muster ausbrechen. Damit stand die Idee. Zunächst handle ich dabei erstmal die einfachen Matches alle ab:
Wichtig ist dabei vor allem das Setting im Find-Replace Tool "Beginning of Field" um sicherzustellen, dass wir nur am Anfang schauen.
Für den Rest mache ich es dann sehr ähnlich zur bereits gezeigten Lösung und erstelle für alles eine Zeile, aber auch hier nur für die minimal notwendige Menge um sicherzustellen, dass wir die Abfrage so klein wie möglich halten.
In seiner Gesamtheit sieht es dann wie folgt aus:
Je nach Komplexität der vollständigen Lookup-Tabelle muss man ggf. noch 1-2 Kleinigkeiten anpassen, aber das Konzept ist vermutlich klar geworden.
Das Beispiel habe ich natürlich ebenfalls angehängt, dann könnt ihr euch die Details nochmal anschauen. Bei Fragen stehe ich auch gerne Rede und Antwort :-)
VG Alex
PS: Ich habe beim ersten Input auch bereits auf das richtige Fenster (A1:D83) vorgefiltert im Input, damit ich mir etwas Arbeit spare. Ich gehe davon aus, dass das in Wirklichkeit sowieso zwei Dateien oder DBs sind und nicht gemeinsam in einem einzelnen Excel-Blatt zur Verfügung stehen.
Hallo Zusammen,
nachdem ich das Beispiel heute spontan in einem Training gezeigt habe, habe ich nochmal minimale Anpassungen vorgenommen und es auf nur ein Find-Replace Tool reduziert. Ich finde zwar nach wie vor gedanklich die Lösung schöner "erst die einfachen Fälle" abzuhandeln und dann die schwierigen, aber irgendwie wollte ich es dann trotzdem mal probieren.
Das Ergebnis sah dann so aus:
Läuft auch nochmal 0.1 Sekunden schneller und damit im Beispiel in 0.2 Sekunden durch. Angepasste Variante habe ich ebenfalls angehängt.
VG Alex