Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
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

Sortieren von Alphanumerischen Zellen

Sortieren von Alphanumerischen Zellen
14.07.2015 18:15:03
Alphanumerischen
Hallo liebe Forengemeinde,
ich möchte eine Tabelle die Zahlen/Buchstabenkombinationen enthält gerne aufsteigend sortieren.
Hier eine Beispieldatei:
https://www.herber.de/bbs/user/98820.xlsx
Die Zellen beginnen immer mit Zahlen, die idR auf einen Buchstaben folgen.
So wie ich es benötige sollte es nach der Sortierung wie folgt aussehen:
11+12ah
104a
104b
104i
106ap
106fj
106sg
107ap
107fj
107kk
107sg
108a
10001
10002
10001a
10003a
10003b
10007a
10013a
10014b
10101a
10101b
10102a
10102b
10104b
10105b
10106a
10106b
10108b
10109a
10110a
10111a
10113a
10114a
10115a
10116a
10119a
10120a
Hat jemand eine Lösung, ich habe schon viele Formeln getestet.
Danke,
Tobi

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: alphanumerisches Sortieren
14.07.2015 19:03:56
Tobi
Hallo WF, die zweite hatte ich vor dem post schon probiert. Ging nur bei 50% meiner Liste. Im bespiel zB nicht mit der 106ap. Ich teste es später oder morgen nochmal und melde mich.
Danke!
Tobi

es gibt da mE eine kleine Ungereimtheit ...
14.07.2015 21:23:48
der
Hallo Tobi,
... und zwar bzgl. Deiner Sortierungsvorgabe was die reinen Zahlenwerte angeht. Die Logik Deiner sonstigen Sortierung würde vor 10002 mE die 10001a erfordern und und nicht danach. Oder?
Dafür hätte ich eine (zugegeben momentan noch aufwendigen Weg) zu einer Formellösung zu kommen. Die zusätzlich noch einen händischen Zwischenschritt bedarf. Mit VBA lässt sich das sicherlich einfacher realisieren.
Hier mein momentaner Vorschlag mit zwei Hilfsspalten in C und D.
In C2: =WECHSELN(A2;VERWEIS(9^9;1*LINKS(A2;SPALTE(A2:AB2)));"")&" --" und dies nach unten kopieren und anschließend die komplette Liste nach Spalte C (aufwärts) sortieren (wichtig)
Anschließend in D2: =AGGREGAT(15;6;1*WECHSELN(A$2:A$39;LINKS(C$2:C$39;LÄNGE(C$2:C$39)-3);"");ZEILE(A1)) und ziehend nach unten kopieren.
Dann in E2: =D2&WECHSELN(INDEX(C:C;AGGREGAT(15;6;ZEILE(A$2:A$39)/((LINKS(A$2:A$39;LÄNGE(D2))=D2&""));ZÄHLENWENN(D$2:D2;D2)));" --";"") und dies ziehend nach unten kopieren.
Im Ergebnis erhalte ich mit der erwähnten Ausnahme die gewünschte Sortierreihenfolge,
Die händische Sortierung könnte ich in die Formel(n) noch einbauen. Aber für Heute mach ich Schluss und Morgen bin ich wahrscheinlich nicht online. Deshalb stelle ich dies jetzt erst einmal so ein wie es jetzt ist.
Gruß Werner
.. , - ...

Anzeige
VBA Lösung (Sortierung von Nepumuk)
15.07.2015 00:50:30
Nepumuk)
Hallo Tobi,
mit VBA könnte ein Lösung aussehen wie in der Datei die ich angehängt habe.
VBA-Code starten kannst du mit Alt+F8 und dann das Makro "Sortieren" ausführen.
Die Sortierlogik kommt von Nepumuk (Code ist irgendwo auf online-Excel).
Die Ausnahme die Werner erwähnt hat bleibt auch hier bestehen.
https://www.herber.de/bbs/user/98825.xlsm
Gruess
Raphael

AW: VBA Lösung (Sortierung von Nepumuk)
15.07.2015 11:40:30
Nepumuk)
Hallo Werner,
erstmal besten Dank für Deine Vorschläge. Leider funktionieren sie nicht mit meiner gesamten Liste.
Hier findest Du sie komplett. Wenn man darauf die Formeln anwendet kommt in vielen Fällen direkt im ersten Schritt #NV als Ergebnis, was die weitere Verwendung unmöglich macht.
https://www.herber.de/bbs/user/98836.xlsx
Du siehst dass die Nummern ziemlich blöd aufgebaut sind, teilweise werden mehrere Artikel mit + Zeichen versehen. Wichtig wäre es dass alles was vor dem ersten + Zeichen steht sich einfach in die Reihenfolge der Tabelle einfügt, dass was danach kommt ist nicht relevant und kann ignoriert werden. Bitte nicht die Logik dieser Zahlen hinterfragen, daran kann ich momentan nichts ändern ;-)
Vielen Grüße,
Tobi

Anzeige
nochmal nachgefragt ...
15.07.2015 17:37:30
der
Hallo Tobi,
... wenn es für Dich noch offen sein sollte, würde ich es mir Morgen noch einmal ansehen. Allerdings solltest Du dazu vorher eine Aussage dazu treffen, ob die von mir aufgezeigte Ausnahme zutreffend ist oder nicht.
Gruß Werner
.. , - ...

AW: nochmal nachgefragt ...
15.07.2015 18:51:32
Tobi
Hallo Werner,
ja das Thema ist noch offen.
Allerdings solltest Du dazu vorher eine Aussage dazu treffen, ob die von mir aufgezeigte Ausnahme zutreffend ist oder nicht.
Sorry, was genau meinst Du mit Ausnahme? Habe den Faden verloren.
Gruß,
Tobi

die Aussagen aus meinem ersten Beitrag ...
16.07.2015 10:32:52
der
Hallo Tobi,
... war diese: "... Die Logik Deiner sonstigen Sortierung würde vor 10002 mE die 10001a erfordern und und nicht danach. Oder?" Diese Aussage bezog sich natürlich auf Deine erste Beispieldatei, wo Du diesbzgl. ein anderes Ergebnislisting aufgezeigt hattest. Wie ist also dazu Deine Aussage jetzt?
Gruß Werner
.. , - ...

Anzeige
AW: die Aussagen aus meinem ersten Beitrag ...
16.07.2015 10:38:23
Tobi
Korrekt,
die 10001a muss vor der 10002 kommen. Im prinzip sollten die Zahlen aufsteigend sein ohne dass Buchstaben oder + zeichen beachtet werden. nur das was am Anfang vor diesen beiden Fällen steht.
Bei einer 47+405 ist zB nur die 47 relevant und sollte entsprechend einsortiert werden...

dann ist es jetzt eindeutig ...
16.07.2015 10:58:49
der
Hallo Tobi,
... ich schaue mir nun Deine neue Datei heute Nachmittag an.
Gruß Werner
.. , - ...

aus den neuen Daten ergeben sich neue Fragen ...
16.07.2015 13:29:06
der
Hallo Tobi,
... in A196 steht ein (Apostroph-)Zeichen vor der 4 der dann ein abschließenden Punkt folgt. Eine derartige Zeichenkette ergibt so natürlich mit meiner Formel im ersten Schritt ein #NV, weil es ja nicht mit einer Ziffer/zahl beginnt. Sollen derartige Texte überhaupt gewertet und gelistet werden und wenn ja als was und wie.
Meine weiteren Formel müsste ich anschließend insofern auch noch mal überarbeiten, da bis zu den neuen Daten noch nicht bekannt war, dass nach der ersten Ziffer/Zahl und einem dem folgenden alphanumerischen Zeichen nochmal eine gleiche Ziffer/Zahl vorhanden sein kann.
Doch zunächst wäre der erste Teil meiner hiesigen Fragestellung zu klären.
Gruß Werner
.. , - ...

Anzeige
AW: VBA Lösung (Sortierung von Nepumuk)
15.07.2015 11:49:34
Nepumuk)
Hallo Raphael,
danke Dir, das scheint zu funktionieren.
Die original Liste ist ca 1500 Zellen lang.
Wie kann ich die VBA Vorlage erweiter? F8, Bearbeiten der "Sortierung" und dann in welchem Modul den range anpassen und wie speichern ? :-)
VG
Tobi

AW: VBA Lösung (Sortierung von Nepumuk)
15.07.2015 23:04:25
Nepumuk)
Hallo Tobi,
du kannst den Range in der Sub "Sortieren" anpassen.

arr1 = Range("A2:B39")
Aber das Programm ist auf die Struktur ausgelegt die du in deiner BSP Datei hochgeladen hat. Wenn das anders ist, wird es so nicht funktionieren.
Gruess
Raphael

Anzeige
AW: VBA Lösung (Sortierung von Nepumuk)
15.07.2015 23:11:43
Nepumuk)
Hallo Raphael,
Dann geht es nicht.
Dort hatte ich den RAnge bereits angepasst. Ich habe die komplette Datei hochgeladen, könntest du sie dir ansehen?
Viele Grüße
Tobi

AW: VBA Lösung (Sortierung von Nepumuk)
16.07.2015 14:17:55
Nepumuk)
Hallo Tobi,
Bin gerade untwerwegs, werde mir das ganze mit deiner Datei nochmals ansehen. Eine Frage habe ich noch, soll er für die sortierte Liste ein neues Blatt erstellen, oder einfach die bestehende ersetzen?
Gruess Raphael

AW: VBA Lösung (Sortierung von Nepumuk)
16.07.2015 18:45:16
Nepumuk)
Hallo Raphael,
am besten ein neues Blatt erstellen...
Aber wenn es aufwendig ist geht es auch mit ersetzen...
Tx
Tobi

Anzeige
AW: VBA Lösung (Sortierung von Nepumuk)
16.07.2015 20:28:43
Nepumuk)
Hallo Tobi,
im Anhang eine Version die mit deiner Mappe funktioniert. Ich hoffe natürlich, dass dein Daten keine Abweichungen mehr haben, wie zum Beispiel zusätzliche Spalten die mit sortiert werden sollen...

Die Datei https://www.herber.de/bbs/user/98873.xlsm wurde aus Datenschutzgründen gelöscht


Gruess
Raphael

AW: VBA Lösung (Sortierung von Nepumuk)
17.07.2015 10:28:59
Nepumuk)
Hallo Raphael,
vielen Dank dass Du Dir die Zeit genommen hast ! (natürlich auch an Dich Werner)
Das ist genau was wir brauchen :-)
LG
Tobi

AW: VBA Lösung (Sortierung von Nepumuk)
17.07.2015 10:43:48
Nepumuk)
Last question :-)
wenn ich neben der Artikelnummernspalte noch eine spalte mit Menge habe, könnte man die problemlos mit sortieren und im neuen Blatt ausgeben?
siehe Bsp:
https://www.herber.de/bbs/user/98890.xlsm
Gruss
Tobi

Anzeige
AW: VBA Lösung aufgebohrt
17.07.2015 11:18:46
Rudi
Hallo,
beliebig iele Spalten daneben:
Sub Sortieren()
Dim vntSortArray As Variant
Dim vntArray As Variant
Dim arr1 As Variant
Dim ws As Worksheet
Set ws = ActiveSheet
With Cells(1, 1).CurrentRegion
arr1 = .Offset(1).Resize(.Rows.Count - 1)
End With
vntArray = InhaltSplitten(arr1, 1)
vntSortArray = Array(UBound(vntArray, 2) - 1, UBound(vntArray, 2))
Call prcSort(vntSortArray, vntArray)
Sheets.Add
ws.Cells(1, 1).Resize(, UBound(arr1, 2)).Copy Cells(1, 1)
Cells(2, 1).Resize(UBound(arr1, 1), UBound(arr1, 2)) = vntArray
End Sub

Function InhaltSplitten(arr As Variant, SplitSpalte As Long) As Variant
Dim arrSplit() As Variant
Dim i As Long
Dim j As Long
Dim k As Long
ReDim arrSplit(1 To UBound(arr, 1), 1 To UBound(arr, 2) + 2)
For i = LBound(arr) To UBound(arr)
For j = 1 To Len(arr(i, SplitSpalte))
If Not IsNumeric(Mid(arr(i, SplitSpalte), j, 1)) Then
For k = 1 To UBound(arr, 2)
arrSplit(i, k) = arr(i, k)
Next k
If j = 1 Then
arrSplit(i, k) = ""
Else
arrSplit(i, k) = CLng(Left(arr(i, 1), j - 1))
End If
arrSplit(i, k + 1) = Right(arr(i, 1), Len(arr(i, 1)) - j + 1)
Exit For
End If
If j = Len(arr(i, SplitSpalte)) Then
For k = 1 To UBound(arr, 2)
arrSplit(i, k) = arr(i, k)
Next
arrSplit(i, k) = CLng(arr(i, 1))
End If
Next j
Next i
InhaltSplitten = arrSplit
End Function

Gruß
Rudi

Anzeige
AW: VBA Lösung aufgebohrt
17.07.2015 12:08:26
Tobi
Schnell und super gut!
Danke Rudi :-)

AW: VBA Lösung (Sortierung von Nepumuk)
16.07.2015 14:17:56
Nepumuk)
Hallo Tobi,
Bin gerade untwerwegs, werde mir das ganze mit deiner Datei nochmals ansehen. Eine Frage habe ich noch, soll er für die sortierte Liste ein neues Blatt erstellen, oder einfach die bestehende ersetzen?
Gruess Raphael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige