Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahlen sortieren, mittendrin ein Buchstabe

Zahlen sortieren, mittendrin ein Buchstabe
05.04.2019 22:34:49
Thomas
Guten Abend,
trotz intensiver Suche komme ich leider auf kein sinnvolles Ergebnis.
Beispiele, wo Anfang oder am ein Buchstabe steht ist kein Problem, aber bei mir ist es so, dass der Buchstabe von Zahlen eingeschlossen ist.
Ausgangssituation ist, dass ich eine Datei mit ca 30.000 Datensätze habe und mir hier gerne immer einen Bereich rauspicken würde.
Allerdings sind die Lagerorte nicht sortiert, teilweise zwischendrin ein Buchstabe oder die letzten 4 Zeichen sind Buchstaben....
Was wäre den hier eventuell eine sinnvolle Lösung? Schlecht ist eben auch das die Daten in einer anderen Tabelle stehen.
hier mal eine Beispiel datei..
https://www.herber.de/bbs/user/128963.xlsm
Vielen Dank
Thomas

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
05.04.2019 23:32:05
Rainer
Hallo Thomas,
kopiere die Daten in eine neue Tabelle. Dann ermittelst du für jedes Zeichen den ASCII-Wert.

C2=CODE(TEIL($A2,SPALTE(A2)*1,1))
D2=CODE(TEIL($A2,SPALTE(B2)*1,1))
J2=CODE(TEIL($A2,SPALTE(J2)*1,1))
Am ende fügst du diese Werte zusammen:

K2=C2&D2&E2&F2&G2&H2&I2&J2
Das ergibt eine lange Zahl, die du nun problemlos sortieren kannst.
Gruß,
Rainer
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 11:43:51
Thomas
Hallo Rainer,
Danke für den Hinweis, damit konnte ich schon ein bisschen weiter tüffteln
ich habe mir jetzt folgende Funktion gebastelt.
Function CodeASCII(Wert As String) As String
Dim i As Byte
Dim xOut As String
CodeASCII = ""
For i = 1 To Len(pInput)
xOut = xOut & Asc(Mid(pInput, i, 1))
Next
CodeASCII = xOut
End Function
Wenn ich jetzt aber einen Autofilter mit dem entsprechenden Wert in der Tabelle setze, wird alles ausgeblendet.
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 11:45:13
Thomas
so is natürlich richtig:
Function CodeASCII(Wert As String) As String
Dim i As Byte
Dim xOut As String
CodeASCII = ""
For i = 1 To Len(Wert)
xOut = xOut & Asc(Mid(Wert , i, 1))
Next
CodeASCII = xOut
End Function

AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 15:01:38
Thomas
Hallo,
folgendes Problem habe ich jetzt noch...
Wenn ich den Lagerort mit der Funktion umrechnen lasse kommt eine "zahl" mit 16 Stellen raus.
Z.b. 11111111 wird zu 4949494949494949 (allerdings als Text, ich bräuchte es als Zahl)
Jetzt möchte ich mit WERT dieses feld als Zahl setzen ,
nun macht excel aber aus 4949494949494949 dann 4949494949494940
kann ich das irgendwie verhintern , oder gibt es evtl noch eine andere lösung für das Problem?
Danke und euch ein schönes Wochenende
Gruß Thomas
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 15:22:53
Günther
Moin Thomas,
ich könnte mir u.U. eine andere Lösung vorstellen ...
Aber dazu bräuchte ich eine Muster-xlsx, wo alle denkbaren (un) Möglichkeiten aufgeführt sind und dann mit Wunschergebnis. Hinweis: VBA-behaftete Files lade ich aus dem Netz nicht herunter. Ich würde einen Weg mit Power Query suchen, wenn die Beschreibung vielleicht noch etwas eindeutiger ist ...
Gruß
Günther
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 15:35:29
Thomas
Hallo Günther,
mit PowerQuery habe ich leider noch gar keine Berührungspunkte, bin aber immer offen für neue Erfahrungen.
hier die datei ohne Makro..
https://www.herber.de/bbs/user/128978.xlsx
Gruß Thomas
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 16:22:27
Günther
Moin Thomas,
danke für die *.xlsx-Lösung; erst einmal die Nachfrage: Sind immer die ersten 4 Zeichen entscheidend?
Und was wäre bei 0900* .. 1050* die Regel, alles von 900* bis 1050*?
Und wie gestaltet sich das, wenn da beispielsweise A12345G7 steht, in welches Sortiermuster soll das eingepflegt werden? Statt "GANGGANG" wäre eine realistische Lagerbezeichnung hilfreicher und auch vielleicht mehrere dieser Art, damit auch hier ein sinnvolles Filtern nach Von..Bis möglich wäre.
Wenn die ersten 4 Zeichen Ziffern sind, ist das gewiss mit Power Query kein Problem. Sprich: deine Musterlösung ist mit weniger oder mehr Komfort durchaus erreichbar ... ;-)
Gruß
Günther
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 16:41:04
Curly
Hallo Günther,
Die Erste Ziffer gibt die Lagereben an Z.b 0 = Keller , 1= Grundebene , 2 = 1.stock
Die zweite Ziffer gibt die regalblock (linksMitte/rechts)
Die dritte/vierte Ziffer die regalreihe
Die restlichen 4 Zeichen sind dann die einzelnen Fächer
Richtig von 0900 - 1050 würde dann so passen .
Es gibt vereinzelt Lagerorte die benannt sind wie , „Vitrine“ „Hof“ „Treppe“ Oder „Gang“
Aber hier wäre es nicht schlimm diese nicht zu beachten oder eben Alphabetisch, wenn sie nicht mit zahlen anfangen wie z.b 1215GANG
Das sollte dann am Ende nach z.b 12159999 und vor 1216 aufgelistet werden
Ich hoffe ich konnte es einigermaßen erklären ..
Danke Thomas
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 17:05:19
Günther
OK Thomas, dann sollte das Schema der ersten 4 Ziffern ja "stabil" sein. Dann frage ich mich aber noch, ob der BIS.. -Bereich einschließlich ist oder nicht. Ich habe in meinem Muster erst einmal BIS 1217* (also einschließlich) definiert. Erst einmal schauen ... ;-)
Muster-Lösung auf Nachfrage -> per PM/E-Mail oder in meiner Cloud, da ich meine Ordner-Struktur nicht wegen eines Forums umstelle ...
Cloud (30 Tage): -> https://my.hidrive.com/lnk/uHgmDzYG
Gruß
Günther
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 17:24:16
Thomas
Hallo Günther.
wenn der Bis Lagerort nicht exakt mit 8 Stellen definiert ist sollte es einschließlich sein.
Also z.b. 1217* = 1217ZZZZ (das auch die Buchstaben dabei sein)
oder 121715* = 121715ZZ , wo kann ich das im PowerQuery einstellen?
Vielen Dank für deine Hilfe.
Allerdings weiß ich nicht, ob und wie ich das anwenden kann, da (glaube ich) wir auf der Arbeit kein PowerQuery(Excel 2013) haben.
Gruß Curly
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 18:12:52
Günther
Also, Power Query ist in Excel 2013 ein (kostenloses) Add-In von Microsoft, also eine Original-Erweiterung, welche installiert werden muss. Allerdings "kennt" PQ keinen * als Platzhalter; da müsste in dem Fall ab 5. Stelle mit 0 oder 9 / "Z" aufgefüllt werden und die Länge der zu filternden Zeichenfolge bei beiden Eckwerten gleich sein.
Ich befürchte, dass bei dieser ausgesprochen individuellen/unorthodoxen Platzbezeichnung PQ nicht das passende Handwerkzeug ist, weil der Aufwand für die ganzen Ausnahmen gewiss zu groß wäre.
Gruß
Günther
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 16:16:00
Rainer
Hallo Thomas,
warum muss es eine Zahl sein?
Excel kann nur 15 Stellen "benutzen", alles darüber wird Brühe. Das ist dann der sagenhafte "Rundungsfehler".
https://support.microsoft.com/de-lu/help/269370/last-digits-are-changed-to-zeroes-when-you-type-long-numbers-in-cells
Gruß, Rainer
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 16:22:14
Curly
Hallo Rainer ,
Ich möchte prüfen ob der jeweilige Lagerort im zu prüfenden Bereich liegt.
Und unsere Lagerorte sind 8 stellig. Und beinhalten eben auch Buchstaben.
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 18:15:17
Rainer
Hallo Thomas,
das sortieren und filtern geht aber auch mit dem Text? Wo denke ich falsch?
Du kannst nur keine 16-stelligen Zahlen in Excel zum rechnen benutzen, aber als Text ist es kein Problem.
Gruß, Rainer
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 18:46:04
Thomas
Mein Gedankengang war das ich alle Lagerorte in Zahlen konvertiere und dann schaue , ob der Lagerort zwischen meinen Start-Lagerort und End-Lagerort liegt.
Das wäre für mich der einfachste Weg gewesen, (einfaches Beipiel:
Startlagerort: 1111 (gekürzt dargestellt, eigentlich eben 16Stellen)
Endlagerort: 2222
und hier jetzt dann die Lagerorte zum prüfen
LO1 : 1155
Lo2 : 1166
und das würde über einen Zahlenfilter einfach gehen. ist größer 1111 (Startlagerort) und ist kleiner 2222 (Endlagerort)
Ist soetwas über einen Textfilter machbar? wenn man die 16Stellige zahl als Text konvertiert?
Gruß Curly
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 19:01:40
Günther
Thomas, irgendwie erinnert mich dein Argumentations-Strang an deinen NickName. Vom Anfang bis zum Ende der Locken, also immer schön Achterbahn statt straight on. Sorry ...
Was du weiter oben beschrieben hast, dass also die ersten 4 Ziffern schon weitgehend eine räumliche Zuordnung gewährleisten können. So weit waren wir uns gewiss auch einig. Dann wieder die andere Richtung und jetzt wieder die 4er-Regel. - Wenn die nun doch gilt/ausreicht, kannst du mit einer Hilfsspalte per LINKS(Spalte, 4) und meinethalben einer weiteren Hilfsspalte mit ISTZAHL(HilfsSpalte) eine Filterung und anschließende Sortierung vornehmen. Also im Prinzip das, was ich weiter oben per PQ abgearbeitet habe.
Gruß
Günther
Anzeige
AW: Zahlen sortieren, mittendrin ein Buchstabe
06.04.2019 23:47:17
Rainer
Hallo Thomas,
trotz Günthers Einwänden hier noch meine Gedanken.
Ich habe ein wenig probiert, es geht mit Textfiltern, aber man müsste natürlich die ASCII-Codes filtern und das ist ein wenig umständlich. Auch sind Filter mit 2 Kriterien zwar möglich, aber nicht sehr schick zu bedienen.
Aber wenn wir nun festlegen, dass wir ausschließlich den Fall suchen wollen, wo gilt:
H1 
Dann geht es einfach. Neben H1 und H2 berechnen wir wieder die ASCII-Codes. Dazu muss man natürlich den Suchraum mit allen 8 Stellen angeben, nicht mit Sternchen. Nun wird es witzig. Trotz Excel-Rundungsfehler klappt folgende Abfrage:
=UND(C2>$H$1,C2
das ergibt eine zusätzliche Hilfsspalte mit WAHR und FALSCH. Danach kannst du es ganz einfach filtern.
Oder man erweitert deine Function zu: (3 Parameter: Lagerort, unteres Limit, oberes Limit)
Function Lagerort(Wert, Von, Bis As String) As String
Dim i As Byte
Dim xOut As String
Dim xMin As String
Dim xMax As String
Lagerort = ""
For i = 1 To 4
xMin = xMin & Asc(Mid(Von, i, 1))
xMax = xMax & Asc(Mid(Bis, i, 1))
Next
xMin = xMin & "0000"
xMax = xMax & "0000"
For i = 1 To Len(Wert)
xOut = xOut & Asc(Mid(Wert, i, 1))
Next
If xOut > xMin And xOut 
Gruß, Rainer

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige