Alphanumerische Sortierung in Excel

11

Ist es in Excel möglich, alphanumerische Zeichen von a-1, a-2, a-3 ... a-123 anstelle von a-1, a-10, a-100, a-11 zu sortieren?

Wenn ich nach dem ältesten zum neuesten oder nach AZ sortiere, bekomme ich definitiv nicht das gewünschte Ergebnis. Ich habe versucht, die Zellen als Nummer zu formatieren, aber es hat nicht geholfen.

Ich stecke fest.

beccabecca
quelle
Hallo @beccabecca, bitte akzeptiere eine Antwort, da dies nicht nur für Leute hilfreich ist, die eine ähnliche Frage wie du haben, sondern auch diejenigen belohnt, die daran gearbeitet haben, eine Lösung für dich zu finden. Prost!
David Michael Gregg

Antworten:

4

Das Ergebnis

User @ fixer1234 ist richtig, Sie möchten wahrscheinlich String-Funktionen verwenden. Hier ist eine Möglichkeit, dies zu tun.

Schritt 1

[Aktualisiert]

Markieren Sie in der Spalte "Zahlen" den Bereich und teilen Sie den Text am Bindestrich auf: do ...

Data> Text to Columns> Delimited> Next> Other: ->Finish

Beachten Sie, dass Sie im Textfeld einen Bindestrich ( - ) benötigen Other:. Stellen Sie sicher, dass die benachbarte Spalte (rechts) leer ist, bevor Sie dies tun, damit Sie wichtige Daten nicht überschreiben.

Mit dieser Funktion können Sie auch die Nummer aus Spalte A extrahieren:

=RIGHT(A2,LEN(A2)-SEARCH("-",A2))

Schritt 2

Wie Sie dem obigen Screenshot entnehmen können, werden wir im nächsten Schritt Nullen an den Anfang jeder der Zahlen anhängen, die weniger Ziffern als die größte Zahl haben. Auf diese Weise können Sie diese Zahlen nach Ihren Wünschen sortieren.

Aber zuerst müssen wir ein bisschen nach Fakten suchen. Wenn Sie leicht erkennen können, was die größte Zahl ist, zählen Sie einfach die Ziffern in dieser größten Zahl - dies ist die Anzahl der Nullen, die Sie in unserer nächsten Funktion verwenden möchten. Es gibt eine andere Möglichkeit, die längste Zahl zu bestimmen, ohne die Ziffern der größten Zahl manuell zählen zu müssen.

[UPDATE] Mit der folgenden Funktion (obwohl wir bisher nicht genau wissen, warum ) können Sie die längste Zahl ermitteln:

=MAX(INDEX(LEN(C2:C14),,1))

Alternativ können Sie einfach die folgende Formel in eine Zelle eingeben (Sie sehen dies im Bild oben als orange hervorgehobene Zelle), aber anstatt einfach Ihre ENTERTaste zu drücken, um die Zelle festzulegen, drücken Sie den Hotkey CTRL-SHIFT-ENTER. Dies ändert die Art der Funktion und verwandelt sie in eine Array-Formel , ohne mit Funktionen wie z INDEX().

=MAX(LEN(C2:C14))

(Stellen Sie sicher, dass der Bereich für die von Ihnen verwendete Tabelle korrekt ist.)

Nachdem Sie gedrückt haben CTRL-SHIFT-ENTER, ändert sich der Inhalt der Zelle in diesen, aber wenn Sie dies manuell eingeben, geschieht nichts:

{=MAX(LEN(C2:C14))}

Wie auch immer Sie es tun möchten, ist in Ordnung. Bestimmen Sie einfach, wie viele Ziffern die größte Zahl in Ihrer Liste ausmachen: "1" hat natürlich 1 Ziffer, "10" hat 2 Ziffern, "100" hat 3 Ziffern und so weiter.

Schritt 3

Schließlich konvertiert diese Funktion in der Spalte "Erweitern" die Zahlen aus der Spalte "Zahlen" in Text mit der Anzahl der vorhergehenden Nullen, die Sie in Schritt 2 festgelegt haben.

=TEXT(C2,"000")

Stellen Sie sicher, dass Sie die Nullen in Anführungszeichen setzen.

Wenn die größte Zahl 8 Stellen hat, sieht Ihre Funktion folgendermaßen aus:

=TEXT(C2,"00000000")
David Michael Gregg
quelle
2

Eine einfache Lösung besteht darin, Zeichenfolgenfunktionen zu verwenden, um die numerischen Werte als Zahl in eine neue Spalte einzufügen. Sortieren Sie dann nach dieser Spalte. Sie haben nicht angegeben, wie die Werte variieren oder wie sie angeordnet sind, sondern ein Beispiel:

Angenommen, das Präfix "a-" ändert sich nie, die Einträge befinden sich in Spalte A ab Zeile 2 und Spalte B ist verfügbar. In B2 würden Sie etwa Folgendes eingeben: = Wert (Mitte (a2,3, Länge (a2) -2)) und dann die Formel nach Bedarf kopieren. Markieren Sie zum Sortieren beide Spalten und sortieren Sie nach B.

Wenn andere Präfixe vorhanden sein können, z. B. b-, c- usw., teilen Sie den Textteil auf ähnliche Weise in eine andere Spalte auf. Sortieren Sie dann die Textspalte als erste Sortierspalte und die Zahlenspalte als zweite.

Alles, was Sie hervorheben, wird nach den Sortierspalten sortiert.

Beginnen Sie zur Erläuterung der Zeichenfolgenfunktionen mit der Mittelfunktion, mit der eine Zeichenfolge aus einer Zeichenfolge extrahiert wird. mid (a2,3, len (a2) -2) betrachtet den Text in a2, beginnt mit dem dritten Zeichen (die erste Ziffer unter der Annahme, dass alle Präfixe "a-" sind) und nimmt dann die Anzahl der Zeichen an zwei weniger als die Zahl im Originaltext (die Länge des Originaltextes abzüglich der "a-" Zeichen). Die Wertfunktion wandelt dieses Ergebnis dann in eine Zahl anstelle einer Folge von numerischen Zeichen um.

fixer1234
quelle
Entschuldigung, können Sie uns etwas mehr im Detail erklären? Was ist eine String-Funktion?
Beccabecca
Also wäre für B3 = Wert (Mitte (a3,3, len (a3) ​​-2))? Habe ich recht? Dann wird es so weiter und so fort sein? Entschuldigung, ich hoffe, ich stelle keine dummen Fragen ...
Beccabecca
Du hast es. Sobald Sie die Formel in B2 erstellt haben, können Sie sie einfach kopieren, die B-Zellen für so viele Zeilen markieren, wie Sie benötigen, und einfügen. Die Zellreferenzen werden automatisch so geändert, dass sie zeilenweise übereinstimmen.
Fixer1234
2

Ich habe folgende Daten:

[Student Name]  [Regn. No (AlphaNum)]    [Test Score]

Lisa            DD38                      90

Aletta          BC36                      85

Ava             AB40                      95

Sunny           BB34                      91

Sofia           CD36                      89

Johnny          CM07                      80

Anfangsdaten, die nach AlphaNumeric String sortiert werden sollen

Ich möchte, dass die Schüler und Noten nach ihren Registrierungsnummern angeordnet werden, bei denen es sich um alphanumerische Zeichenfolgen handelt. Die endgültige Ausgabe sollte folgendermaßen aussehen:

[Student Name]  [Regn. No (AlphaNum)]    [Test Score]

Ava             AB40                      95

Sunny           BB34                      91

Aletta          BC36                      85

Sofia           CD36                      89

Johnny          CM07                      80

Lisa            DD38                      90

Die endgültige Ausgabe sollte so aussehen

Wie man:

Schritte zum Konvertieren einer alphanumerischen Zeichenfolge in reine Zahlen

Obwohl der obige Schnappschuss selbstverständlich ist, sind die Schritte wie folgt:

  1. Extrahieren Sie den alphabetischen Teil in einer Spalte mit =LEFT(B4, 2)der Formel, wobei '2' die Anzahl der Alphabete in der Zeichenfolge anzeigt und meine Zeichenfolgen von beginnen B4.

  2. Weisen Sie diesem alphabetischen Teil mit eine Nummer zu =COLUMN(INDIRECT(E4&1))

  3. Extrahieren Sie den numerischen Teil der Registrierungsnummer =RIGHT(B4,2)als Formel. Hier ist '2' die Nr. von Zahlen in der Zeichenfolge.

  4. Verketten Sie die beiden Teile in 2 und 3

  5. Konvertieren Sie diese in 'reine' Zahlen mit =VALUE(H4)

  6. Kopieren Sie die letzte Spalte in die ursprüngliche Tabelle und verwenden Sie die Option Einfügen als 'Werte'.

    Anfangsdaten, an die alphanumerische Zeichenfolgen angehängt sind, die in Zahlen konvertiert wurden

  7. Sortieren Sie nun nach der letzten Spalte und wählen Sie "Auswahl erweitern".

    Sortieren 1

    Sortieren 2

  8. Erledigt!!!

    Endgültige Ausgabe

Wichtig: Pro-Tipp -> Kombinieren Sie die Schritte 1 bis 5 mit =VALUE(CONCATENATE(COLUMN(INDIRECT(LEFT(B4,2)&1)),RIGHT(B4,2)))

BK_
quelle
Nebenbei: Wie in diesem Beispiel haben alle Registrierungsnummern die gleiche Länge, wobei häufig führende Nullen für den numerischen Teil verwendet werden : Würde eine reguläre Sortierung nicht sofort funktionieren?
Arjan vor