Excel: sortieren alpahnumerischer Ausdrücke

OP #2917834
Lesenswert?

Ich möchte in Excel Texte sortieren, die etwa so aussehen:
A1, A2, ... A9, A10, A11, B1, ... B9, B10, B12, ...
derart sortieren, dass die Zahlen nach den Buchstaben in der numerisch 
richtigen Reihenfolge stehen.
Also etwa so:

A1
A2
...
A9
A10
A11
...
B1
B2
...
B9
B10
B12
...

Was Excel standardmäßig liefert, ist leider das hier:
A1
A10
A11
A2
...
(Halt eine reine Textsortierung ohne Berücksichtigung der Zahlenwerte.)
Weiß da jemand eine Möglichkeit?
Gast #2917889
Lesenswert?

Die nächste Lösung die mir in den Sinn käme wäre die Daten auf zwei 
Spalten aufzuteilen und multi-column sort zu machen

Spalte1 | Spalte 2
A         1
A         11
B         2
B         3

Und dann Sortieren nach Spalte1, bei Gleichheit nach Spalte2, wobei 
Spalte2 nicht als Text sondern numerisch behandelt werden soll.
Gast #2917903
Lesenswert?

Michael S. schrieb:
> Ich möchte in Excel Texte sortieren, die etwa so aussehen:A1, A2, ... A9, A10, 
A11, B1, ... B9, B10, B12, ...derart sortieren, dass die Zahlen nach den 
Buchstaben in der numerisch richtigen Reihenfolge stehen.Also etwa 
so:A1A2...A9A10A11...B1B2...B9B10B12...Was Excel standardmäßig liefert, ist leider 
das hier:A1A10A11A2...(Halt eine reine Textsortierung ohne Berücksichtigung der 
Zahlenwerte.)Weiß da jemand eine Möglichkeit?

Schmeiss den VB Editor an und schreibe dir eine eigene Sortierroutine.
Sollte nicht besonders schwer sein.
Du trennst zunächst Buchstaben- und Zahlenteil und sortierst 
anschließend den alphanumerischen Teil. Anschließend läuft eine zweite 
Sortierung über die numerischen Komponenten gleicher alphanumerischer 
Teile.
Gast #2917909
Lesenswert?

D. I. schrieb:
> Die "einfachste" Lösung wäre:A01A02B01B11......


Der Ansatz von D. I. (grotesque) ist natürlich auch nicht schlecht, d.h. 
du sorgst dafür, dass dein Input mit ausreichend führenden Nullen 
ausgestattet ist. Ist dies nicht möglich ist der Retter möglicherweise 
wieder eine kurze VB Routine, die den Input aufbereitet.
OP #2917930
Lesenswert?

Ich danke Euch allen für Eure schnellen Antworten!

@D.I. :
Die Daten fallen so ab, wie beschrieben. Eine führende Null ist nicht 
vorhanden und möchte ich auch nicht einfügen.
Die Idee aus Deinem zweiten Vorschlag hatte ich inzwischen selber und 
habe die Texte aufgeteilt (zum Glück ist der Alpha-Anteil links immer 
nur ein Zeichen lang, so dass dies besonders einfach war).

@VBA:
Das wollte ich vermeiden, VBA anzuwerfen. Ich bin im Umgang damit nicht 
firm und muss mich jedes Mal erst wieder einarbeiten, um damit etwas 
hinzukriegen.
In diesem Falle brauchte ich einfach eine schnelle Lösung.
Grundsätzlich führt daran aber evtl. kein Weg vorbei.
Ich habe nämlich öfter den Wunsch, Dinge anders zu sortieren, als Excel 
es von sich aus macht.
Beispiel: Stücklisten.
Bauteilbezeichner -> ähnliches Problem wie oben beschrieben.
Ganz übel: Bauteilwerte, am besten noch mit Einheiten, am besten noch 
mit verschiedenen Vorsilben vor den Einheiten (Mega, Kilo, Milli, Mikro, 
etc.)
#2917960
Lesenswert?

Das geht mit einer Extra-Sortierspalte, (einfach irgendwo einfügen), in 
der nur noch die aus A1, A2, A3, ..., TextIrgendwas952 extrahierten 
Zahlen stehen, also 1, 2 ,3, ..., 952.

Das geht mit folgender Formel:

{=1*TEIL(A1;VERGLEICH(WAHR;ISTZAHL(1*TEIL(A1;ZEILE($1:$9);1));0);ANZAHL( 
1*TEIL(A1;ZEILE($1:$9);1)))}

Die {} bedeuten "Matrixformel", d.h. man gibt den Formeltext normal ein 
also:

=1*TEIL(A1;VERGLEICH(WAHR;ISTZAHL(1*TEIL(A1;ZEILE($1:$9);1));0);ANZAHL(1 
*TEIL(A1;ZEILE($1:$9);1)))

und drückt zum Abschluss STRG+UMSCHALT+EINGABETASTE dadurch werden die 
{} geschweiften Klammern eingefügt.

Hier gibts noch einen Artikel von Microsoft dazu:
http://office.microsoft.com/de-de/excel-help/extrahieren-von-zahlen-aus-alphanumerischen-zeichenfolgen-HA001154901.aspx


Alternativ könnte man anstatt "*1" auch "WERT" verwenden:
{=WERT(TEIL(A1;VERGLEICH(WAHR;ISTZAHL(1*TEIL(A1;ZEILE($1:$9);1));0);ANZA 
HL(1*TEIL(A1;ZEILE($1:$9);1))))}

Nachtrag:
$1:$9 legt die maximale Stringlänge fest hier also 9 Zeichen, bei 
längeren Strings z.B. bis 20 Zeichen, schreibt man dann entsprechend 
$1:$20 etc.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren