Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Textfunktionen - BEITRAG: Zahlen mit alphanumerischer Untergliederung richtig sortieren


Aufgabe
Wenn Du eine Gliederung hast, die sich aus Zahlen und einer alphanumersichen Untergliederung zusammensetzt,
wird diese im Normalfall falsch sortiert:

       A               B               C               D               E       
1 2k  2107  3  1a  1097  
2 10c  10099  10c  2a  2097  
3 1a  1097  1a  2k  2107  
4 3000  2a  3  3000  
5 2a  2097  2k  10c  10099  
6     falsch  richtig   

Lösung
Die unsortierten Zahlen stehen in Spalte A

Schreibe in B1

=WENN(CODE(RECHTS(A1;1))>64;LINKS(A1;LÄNGE(A1)-1)*1000+CODE(RECHTS(KLEIN(A1);1))+WENN(CODE(RECHTS(A1;1))<97;0,5;0);A1*1000)

oder (ohne Unterscheidung zwischen a und A)
=WENN(CODE(RECHTS(A1;1))>64;LINKS(A1;LÄNGE(A1)-1)*1000+CODE(RECHTS(KLEIN(A1);1));A1*1000)

kopier die Formel nach unten und sortiere dann nach dieser Spalte.
Die Gliederung darf pro Zahl nur 26 Unterpunkte also von a-z haben.

Ergänzung vom 24.06.2003
Es werden noch Buchstaben-Zahlenkombinationen (nur ein Buchstabe) hinter die Zahlen-Buchstabenkombinationen einsortiert also: f - G12 - a3 - F usw.
Mit Unterscheidung nach klein- und Großbuchstaben dominiert der Kleinbuchstabe; - also: a8 vor A2

=WENN(CODE(LINKS(A1))>57;CODE(KLEIN(LINKS(A1)))+1000000+(CODE(A1)<97)/2+WENN(LÄNGE(A1)=1;0;TEIL(A1;2;5)/1000);WENN(CODE(RECHTS(A1;1))>64;LINKS(A1;LÄNGE(A1)-1)*1000+CODE(RECHTS(KLEIN(A1);1))+WENN(CODE(RECHTS(A1;1))<97;0,5;0);A1*1000))

oder (ohne Unterscheidung zwischen a und A)
=WENN(CODE(LINKS(A1))>57;CODE(KLEIN(LINKS(A1)))+1000000+WENN(LÄNGE(A1)=1;0;TEIL(A1;2;5)/1000);WENN(CODE(RECHTS(A1;1))>64;LINKS(A1;LÄNGE(A1)-1)*1000+CODE(RECHTS(KLEIN(A1);1));A1*1000))