Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sortieren von Alphanumerischen Zellen

Forumthread: 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

Anzeige

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

Anzeige
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

Anzeige
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

Anzeige
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...

Anzeige
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

Anzeige
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

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

Anzeige
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
;
Anzeige
Anzeige

Infobox / Tutorial

Alphanumerisch sortieren in Excel


Schritt-für-Schritt-Anleitung

Um eine Liste mit alphanumerischen Zellen in Excel korrekt zu sortieren, befolge diese Schritte:

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in einer Spalte angeordnet sind. Beispielsweise in Spalte A.

  2. Hilfsspalten erstellen: Füge zwei Hilfsspalten hinzu:

    • In Spalte B (C2) nutze die Formel:
      =WECHSELN(A2;VERWEIS(9^9;1*LINKS(A2;SPALTE(A2:AB2)));"")&" --"
    • Ziehe die Formel nach unten, um sie auf die gesamte Liste anzuwenden.
  3. Zweite Hilfsspalte: In Spalte C (D2) nutze die Formel:

    =AGGREGAT(15;6;1*WECHSELN(A$2:A$39;LINKS(C$2:C$39;LÄNGE(C$2:C$39)-3);"");ZEILE(A1))
    • Ziehe auch diese Formel nach unten.
  4. Dritte Hilfsspalte: In Spalte D (E2) nutze die Formel:

    =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)));" --";"")
    • Auch hier die Formel nach unten ziehen.
  5. Sortierung: Markiere alle drei Spalten (A, B, C) und sortiere die Daten nach der Hilfsspalte C aufsteigend.


Häufige Fehler und Lösungen

  • #NV Fehler: Wenn du #NV erhältst, überprüfe die Daten in den Zellen. Stelle sicher, dass alle Zellen mit Zahlen oder alphanumerischen Werten beginnen.

  • Falsche Sortierreihenfolge: Achte darauf, dass die Formeln korrekt eingegeben sind. Eine falsche Formel kann zu unerwarteten Ergebnissen führen.

  • Datenformatierung: Vergewissere dich, dass die Zellen im richtigen Format (Text oder Zahl) formatiert sind, um die alphanumerische Sortierung zu erleichtern.


Alternative Methoden

  1. VBA-Lösung: Wenn du mit VBA vertraut bist, kannst du eine benutzerdefinierte Sortierfunktion erstellen. Hier ist ein einfaches Beispiel:

    Sub Sortieren()
       Dim arr1 As Variant
       arr1 = Range("A2:A100") ' Passe den Bereich an
       ' Füge hier deine Sortierlogik ein
    End Sub
  2. Daten filtern: Du kannst auch die Filterfunktion in Excel nutzen, um nur bestimmte alphanumerische Werte anzuzeigen und dann diese gefilterten Daten zu sortieren.


Praktische Beispiele

Angenommen, du hast folgende Liste in Spalte A:

11+12ah
104a
10001
10001a
10002

Nach Anwendung der oben genannten Schritte sollte die sortierte Liste so aussehen:

10001
10001a
10002
104a
11+12ah

Dies zeigt, wie die alphanumerische Reihenfolge korrekt umgesetzt werden kann.


Tipps für Profis

  • Datenvalidierung: Setze eine Datenvalidierung ein, um sicherzustellen, dass nur alphanumerische Werte eingegeben werden.

  • Makros verwenden: Wenn du regelmäßig mit alphanumerischen Daten arbeitest, erstelle ein Makro, das die Sortierung automatisiert.

  • Regelmäßige Backups: Bevor du mit der Sortierung beginnst, erstelle ein Backup deiner Daten, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Wie sortiere ich alphanumerische Werte in Excel?
Verwende Hilfsspalten mit Formeln, um die Sortierung zu erleichtern, und sortiere dann nach dieser Hilfsspalte.

2. Warum funktioniert die Sortierung nicht für alle Werte?
Überprüfe die Daten auf Konsistenz. Werte, die nicht mit Zahlen oder Buchstaben beginnen, können zu Problemen führen.

3. Kann ich VBA verwenden, um alphanumerisch zu sortieren?
Ja, VBA kann eine effektive Methode sein, um komplexe Sortierungen durchzuführen, vor allem bei großen Datenmengen.

4. Wie gehe ich mit Werten um, die Sonderzeichen enthalten?
Sonderzeichen können die Sortierung beeinflussen. Stelle sicher, dass du diese vor der Sortierung ignorierst oder richtig behandelst.

5. Welche Excel-Version benötige ich?
Die beschriebenen Methoden funktionieren in Excel 2016 und neueren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige