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

Forumthread: zeichenkette einer Zelle sortieren

zeichenkette einer Zelle sortieren
02.09.2013 08:19:45
kurt
Hallo Leute,
wer kann mir bei meinem Problem helfen?
Ich möchte die Buchstaben eines Eintrages in der Nachbarzelle alphabetisch sortieren. Wenn möglich, mit einer Formel.
Beispiel:
in A1 steht "Excel", in B1 soll "ceelx" stehen.
Danke im Voraus
Kurt

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zeichenkette einer Zelle sortieren
02.09.2013 08:30:48
Hugo
Hallo,
per Formel nur über mehrere Spalten (und dann wieder verketten).
{=ZEICHEN(KKLEINSTE(CODE(TEIL(KLEIN($A1);ZEILE(INDIREKT("1:"&LÄNGE($A1)));1));SPALTEN($A:A)))}
Nach rechts kopieren. Ergebnisspalten dann verketten (=B1&C1&...)
Gruß
Hugo

AW: zeichenkette einer Zelle sortieren
02.09.2013 08:38:36
Matthias
Hallo
Tabelle1

 AB
1Excelceelx
2101c
3120e
499e
5101l
6108x

Formeln der Tabelle
ZelleFormel
B1=B2&B3&B4&B5&B6
A2=CODE(KLEIN(TEIL($A$1;ZEILE()-1;SPALTE())))
B2=ZEICHEN(KKLEINSTE($A$2:$A$6;ZEILE()-1))
A3=CODE(KLEIN(TEIL($A$1;ZEILE()-1;SPALTE())))
B3=ZEICHEN(KKLEINSTE($A$2:$A$6;ZEILE()-1))
A4=CODE(KLEIN(TEIL($A$1;ZEILE()-1;SPALTE())))
B4=ZEICHEN(KKLEINSTE($A$2:$A$6;ZEILE()-1))
A5=CODE(KLEIN(TEIL($A$1;ZEILE()-1;SPALTE())))
B5=ZEICHEN(KKLEINSTE($A$2:$A$6;ZEILE()-1))
A6=CODE(KLEIN(TEIL($A$1;ZEILE()-1;SPALTE())))
B6=ZEICHEN(KKLEINSTE($A$2:$A$6;ZEILE()-1))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
einfach weiter anpassen
Gruß Matthias

Anzeige
Außer Konkurrenz geht's auch mit ...
02.09.2013 14:40:07
Luc:-?
…einer einzelligen MxFml, Matti; ;-)
zB: {=VectAr(Sort4Match(T2CharVect("Excel"));;"&";;"")} → Ergebnis: ceElx
oder {=KLEIN(VectAr(Sort4Match(T2CharVect(A1));;"&";;""))} → Ergebnis: ceelx (falls in A1 Excel steht).
Natürlich nur, falls man über die beteiligten UDFs verfügt, Kurt;
Soll nur demonstrieren, was möglich wird, wenn man die XlFktionalität etwas (um sinnvolle Universal-UDFs) erweitert!

Gruß Luc :-?
Besser informiert mit …

Anzeige
OT ... an Luc
03.09.2013 01:14:49
Matthias
Hallo Luc
Mit UDF's bin ich noch nicht so weit.
Überschätze also bitte nicht meine Fähigkeiten.
Bin zwar täglich am lernen und lese alles mit,
allerdings habe ich nur Deine damals gepostete UDF: Splitt sofort umsetzen können.
Zu den Beiträgen mit den Hinweisen zu Deinen UDF's:
Es ist für HobbyProgrammierer sehr schwierig in den Beiträgen mit den vielen Verlinkungen noch durchzusteigen,
da man bei jeder Weiterleitung den Bezug ein bisschen mehr verliert
Tut mir also leid, wenn Du da evtl. ein falsches "Bild" von mir hast
Gruß Matthias

Anzeige
AW: Außer Konkurrenz geht's auch mit ...
03.09.2013 07:55:53
kurt
Hallo Luc;-?,
eine sehr interessante Variante. Hab in diese Richtung auch schon gedacht, habe aber bei der Umsetzung einen kleinen Denkfehker gehabt.
Auf deutsch: Ich verstehe nur Bahnhof. Zum Glück außer Konkurrenz.
Besonders die erste Umsetzung mit dem Grossbuchstaben in der Mitte gefällt mir. Hast du vielleicht mal ne Musterdatei, um eine Vorstellung von dem Ganzen zu bekommen?
Eiserne Grüße aus der Hauptstadt
Kurt

Anzeige
dann kannst Du aber auch Sortieren
03.09.2013 10:43:04
Matthias
Hallo Kurt
Das war aber so Deine Anforderung (alles klein geschrieben!)
Zitat:
in A1 steht "Excel", in B1 soll "ceelx" stehen.
Denn wenn Du es so willst wie angezeigt, kannst Du auch Sortieren.
Ersetze mal die Formeln durch ihre Werte und Sortiere dann.
Wichtig dabei ist nur das Du vorher die Sortieroption "Groß-/Kleinschreibung beachten" anwählst.
Tabelle1

 AB
1ExcelSortiert
2Ec
3xe
4cE
5el
6lx


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias

Anzeige
AW: dann kannst Du aber auch Sortieren
03.09.2013 12:00:39
kurt
Hallo Matthias,
ich bin mit den ersten Posts voll zufrieden. Klappt prima, kann ich nachvollziehen und für meine Tabelle anpassen. Das mit der Groß-/Kleinschreibung war und ist nicht notwendig. Aber nun sind durch Lucs Lösungsvorschlag neue Bedürfnisse entstanden. Ich habe aber keinen blassen Schimmer, wie das aussieht, geschweige denn funktioniert.
Deine Idee werde ich aber ausprobieren, wenn ich heute Abend nach Hause komme. Danke.
Eiserne Grüße aus der Hauptstadt
Kurt

Anzeige
Für die "neuen Bedürfnisse", ...
05.09.2013 02:00:32
Luc:-?
…Kurt: (wohl Union-Fan!)
Habe mal die für dich wesentlichen Teile aus 2 der 3 UDFs isoliert (VectAr liegt zwar im Archiv schon vor, aber nicht in der neuesten Version, an der ich gerade arbeite). Die MxFml sähe dann so aus:
{=VJoin(ZEICHEN(KKLEINSTE(CODE(KLEIN(VSplit(N73;"")));ZEILE(1:5)));"")}
Habe zwar auch eine abgespeckte Sortier-UDF zV, die aber analog Fml fktioniert (nur etwas komfortabler und dann ist auch keine MxFml erforderlich), probiere aber zZ auch noch mit einer etwas universelleren Dictionary-Lösung.
Hier die beiden neuen UDFs: Rem Verbinden aller Elemente eines belieb Vektors ' Vs1.0 -LSr -cd:20130904 -1pub:20130905herber -lupd:20130904t Function VJoin(Bezug, Optional ByVal BindeZ As String = " ") On Error Resume Next With WorksheetFunction If TypeName(Bezug) = "Range" Then Bezug = .Transpose(.Transpose(Bezug)) End If If IsError(LBound(Bezug, 2)) Then VJoin = Join(Bezug, BindeZ) Else: Bezug = .Transpose(Bezug) If IsError(LBound(Bezug, 2)) Then VJoin = Join(Bezug, BindeZ) Else: VJoin = CVErr(xlErrRef) End If End If End With End Function Rem MatrixFmlFähig Splitten (ggf in 1zelZchn - Arg2="") m.Umwandl v.TextZahlen in Zahlen; ' wenn nicht alle Werte in Arg1-DFeld gleichlg sind, wird ein Fehlerwert zurückgegeben! ' Vs1.1 -LSr -cd:20130904 -1pub:20130905herber -lupd:20130904n Function VSplit(Bezug, Optional ByVal TrennZ As String = " ", Optional Zahlen As Boolean) Dim ix As Long, p As Long, TrZ As String, bez, erg, vx, zwErg As Variant On Error Resume Next If IsArray(Bezug) Then bez = Bezug: TrZ = TrennZ: ReDim erg(UBound(bez) - LBound(bez)) For Each Bezug In bez GoSub eb: p = 0: TrennZ = TrZ: erg(ix) = VSplit: ix = ix + 1 Next Bezug VSplit = erg: Exit Function End If eb: If TrennZ = "" Then TrennZ = Chr(0): Bezug = CStr(Bezug) While p Gruß Luc :-?

Anzeige
AW: zeichenkette einer Zelle sortieren
02.09.2013 14:37:32
kurt
Hallo Hugo, hallo Matthias L,
beide Lösungen klappen prima. Vielen Dank für die schnelle Hilfe.
Eiserne Grüße aus der Hauptstadt
Kurt
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeichenkette einer Zelle sortieren in Excel


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Zelle alphabetisch zu sortieren, kannst Du die folgende Formel verwenden. Diese Anleitung geht davon aus, dass Du Excel 2010 oder eine neuere Version verwendest.

  1. Gib den Text in Zelle A1 ein. Zum Beispiel: "Excel".

  2. In Zelle B1 fügst Du die folgende Formel ein:

    =ZEICHEN(KKLEINSTE(CODE(TEIL(KLEIN($A1);ZEILE(INDIREKT("1:"&LÄNGE($A1)));1));SPALTEN($A:A)))
  3. Kopiere die Formel nach rechts, um die Buchstaben zu extrahieren. Je nachdem, wie viele Buchstaben in der Zelle A1 sind, solltest Du die Formel in die entsprechenden Zellen (B1 bis F1) kopieren.

  4. Verknüpfe die Buchstaben wieder in eine Zelle: In Zelle G1 fügst Du die folgende Formel ein:

    =B1&C1&D1&E1&F1

Jetzt hast Du in Zelle G1 die alphabetisch sortierte Zeichenkette!


Häufige Fehler und Lösungen

  • Fehler: Die Formel gibt #WERT! zurück.

    • Lösung: Stelle sicher, dass die Eingabe in A1 ein Textwert ist, und dass Du die Formel korrekt eingeben hast.
  • Fehler: Die Buchstaben erscheinen nicht in der richtigen Reihenfolge.

    • Lösung: Überprüfe, ob die Zelle A1 korrekt formatiert ist und keine ungewollten Leerzeichen enthält. Verwende die Funktion KLEIN, um sicherzustellen, dass die Buchstaben klein geschrieben werden.

Alternative Methoden

Eine weitere Möglichkeit, die Zeichenkette alphabetisch zu sortieren, ist die Verwendung von benutzerdefinierten Funktionen (UDFs). Diese Methode erfordert jedoch einige Programmierkenntnisse in VBA.

Hier ist ein einfaches Beispiel für eine UDF:

Function AlphabetischSortieren(Text As String) As String
    Dim Buchstaben() As String
    Dim i As Integer
    Dim Ergebnis As String

    Buchstaben = Split(Text, "")
    Call BubbleSort(Buchstaben)

    For i = LBound(Buchstaben) To UBound(Buchstaben)
        Ergebnis = Ergebnis & Buchstaben(i)
    Next i

    AlphabetischSortieren = Ergebnis
End Function

Sub BubbleSort(arr As Variant)
    Dim i As Long, j As Long
    Dim temp As String
    For i = LBound(arr) To UBound(arr) - 1
        For j = LBound(arr) To UBound(arr) - i - 1
            If arr(j) > arr(j + 1) Then
                temp = arr(j)
                arr(j) = arr(j + 1)
                arr(j + 1) = temp
            End If
        Next j
    Next i
End Sub

Diese Funktion kann direkt in einer Zelle verwendet werden, um die Zeichenkette zu sortieren.


Praktische Beispiele

  • Beispiel 1: Wenn in A1 "Bananen" steht, wird G1 "aaabenn" anzeigen.
  • Beispiel 2: Wenn in A1 "Zebra" steht, wird G1 "aberz" anzeigen.

Du kannst diese Methoden verwenden, um auch Zahlen vor Buchstaben alphabetisch zu sortieren. Stelle sicher, dass Du das richtige Format für die Zellen verwendest.


Tipps für Profis

  • Verwende die Funktion TEXTVERKETTEN: Diese Funktion kann nützlich sein, um die sortierten Buchstaben zu verknüpfen, anstatt sie manuell in eine Zelle zu kopieren.

  • Sortiere nach Groß-/Kleinschreibung: Du kannst die Sortierung anpassen, indem Du die Option "Groß-/Kleinschreibung beachten" aktivierst, wenn Du manuell sortierst.


FAQ: Häufige Fragen

1. Kann ich auch Zahlen in der Zeichenkette sortieren? Ja, Du kannst Zahlen zusammen mit Buchstaben sortieren, indem Du die Formel entsprechend anpasst.

2. Wie kann ich mehrere Zellen gleichzeitig alphabetisch sortieren? Verwende die gleiche Formel in mehreren Zellen und kopiere sie nach unten, um die Zeichenketten jeder Zelle zu sortieren.

3. Welche Excel-Version benötige ich für diese Formeln? Die gezeigten Formeln sind ab Excel 2010 und in neueren Versionen anwendbar.

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