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

Sortieren innerhalb einer ZELLE

Forumthread: Sortieren innerhalb einer ZELLE

Sortieren innerhalb einer ZELLE
07.12.2002 15:38:09
MacInternet
Weiß jemand, ob es möglich ist, den INHALT EINER ZELLE alphanumerisch zu sortieren? Bis jetzt sind alle Versuche fehlgeschlagen, da eine Sortierung nur Zeilen- oder Spaltenweise erfolgen kann.
Bin für jeden Tipp dankbar!!

Gruß Mac



Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
pure Neugier...
07.12.2002 15:46:45
L.Vira
wozu brauchst du das?
Re: pure Neugier...
07.12.2002 15:49:40
andre
hallo mac,
in www.excelformeln.de habe ich glaube mal was ähnliches gesehn
gruss andre
Re: pure Neugier...
07.12.2002 19:49:45
MacInternet
Danke, André, für den heißen Tipp. Leider ist aber auch dort mein Problem unbekannt.
Falls also jemand noch eine Idee hat....

Gruß Mac

Anzeige
Re: pure Neugier...
07.12.2002 22:24:19
M. Kuhn
Moin MacInternet,

folgendes Makro sortiert mit (einfachstem) BubbleSort-Algorithmus, der zum besseren Verständnis (für Dich) nicht 'verdichtet' wurde. Bitte *Option Compare Text* in der Hilfe zusätzlich lesen.

Sub SortierenInZelle()

Dim i As Long, x As String, ts1 As String, ts2 As String

With ActiveWorkbook.Worksheets("Sortieren")

x = Cells(1, 1).Text

For i = 1 To Len(x) ' Len(x) - 1 für aufsteigende Sort. (<)

ts1 = Left(Right(x, Len(x) - i), 1)
ts2 = Right(Left(x, i), 1)

If ts1 > ts2 Then ' "<" für aufsteigende Sort.
x = Left(x, i - 1) & ts1 & ts2 & Right(x, Len(x) - i - 1)
ts1 = "": ts2 = "": i = 0
End If

Next i

End With

End Sub

MfG Mario

Anzeige
da fehlt doch was...
07.12.2002 23:37:26
L.Vira
Ausgabe von x?
Re: da fehlt doch was...
08.12.2002 09:03:29
M. Kuhn
Moin L. Vira,

*das* habe ich nun dem User und seinem Quotienten überlassen; wie wäre es mit:

Cells(1, 1) = x

oder:

Debug.Print x (in der Schleife, zeigt recht schön den Bubble-Effekt)

oder eben:

MsgBox x

und so weiter ...

Einen schönen und friedlichen 2. Advent wünscht Mario

Anzeige
Ja, sehr schön...
08.12.2002 13:22:07
L.Vira
du weißt das, ich weiß das, aber der Frager auch?
Re: da fehlt doch was...
08.12.2002 13:38:39
MacInternet
Leider....

gibt das Makro auch nur eine Fehlermeldung aus:
'Index außerhalb des gültigen Bereichs'...

Das kann doch nicht so schwierig sein, ich habe eine Tabelle mit alphanumerischen Werten, die innerhalb der jeweilen Zelle alphabetisch sortiert dargestellt werden sollen... *grummel*

Gruß Mac



Anzeige
Re: da fehlt doch was...
08.12.2002 14:58:29
M. Kuhn
Moin Mac,

kann eigentlich nicht schwierig sein:

Den Blattindex (Worksheet(x)) sollte man natürlich an eigene Gegebenheiten anpassen. Und wenn das Ganze für mehrere Zellen gelten soll, dann muss das in eine Schleife. Und wenn man das nicht kann, dann sollte man präzise und direkt anfragen, u.a. mit Nennung des Blattnamens, des interessierenden Zellbereiches u.ä. MfG Mario

Anzeige
Re: Ja, sehr schön...
08.12.2002 15:03:18
M. Kuhn
Moin L.Vira,

Hinweis: Dies ist ein Forum zur Hilfe bei Excel-Problemen. Es ist kein Chat.
Hier ist es üblich, die Hilfestellung hinzuschreiben, es ist nicht erwünscht, das Archiv, in das alle Beiträge kommen, unnötig aufzublähen.

MfG Mario

Re: da fehlt doch was...
09.12.2002 15:36:16
MacInternet
Das soll jetzt wohl sehr witzig sein, oder??

Noch ein 3. Mal: EINE einzige (in Zahlen: 1) Zelle soll sortiert werden, wozu das Ganze also in eine Schleife oder Bereich angeben?? - Ach, was rede ich, ich glaube, ich geb's lieber auf.

Mac

Anzeige
Re: da fehlt doch was...
09.12.2002 16:17:02
M. Kuhn
Moin MacInternet,

ehe Du hier weiter spitze und selbstentlarvende Reden absonderst: Schau Dir mein Posting vom 07.12.2002 - 19:49:45 an. Schau es an! Dort wird genau EINE Zelle (nämlich Zelle A1), und zwar auf dem Tabellenblatt "Sortieren" sortiert. Es werden Dir sogar Notationen für ab- und aufsteigende Sortierungen gezeigt, eben weil dazu keine Aussage Deinerseits existiert. Und wenn das Tabellenblatt bei Dir anders heißt, dann musst Du es umbenennen oder den Namen an der entsprechenden Stelle im Quelltext eintragen. Und wenn das sortierte Ergebnis wieder in die selbe Zelle eingetragen werden soll, dann muss nach *Next i* die Zeile:
Cells(1, 1) = x
eingefügt werden.

Mario


Anzeige
;
Anzeige

Infobox / Tutorial

Sortieren innerhalb einer Zelle in Excel


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Zelle alphanumerisch zu sortieren, kannst Du ein einfaches Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub SortierenInZelle()
        Dim i As Long, x As String, ts1 As String, ts2 As String
    
        With ActiveWorkbook.Worksheets("Sortieren")
            x = Cells(1, 1).Text
            For i = 1 To Len(x) - 1
                ts1 = Mid(x, i, 1)
                ts2 = Mid(x, i + 1, 1)
    
                If ts1 > ts2 Then
                    x = Left(x, i - 1) & ts2 & ts1 & Mid(x, i + 2)
                    i = 0
                End If
            Next i
            Cells(1, 1) = x
        End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro über Entwicklertools > Makros > SortierenInZelle aus.

Dieses Makro sortiert den Inhalt von Zelle A1 auf dem Blatt "Sortieren".


Häufige Fehler und Lösungen

  • Fehler: Index außerhalb des gültigen Bereichs

    • Lösung: Stelle sicher, dass das Arbeitsblatt "Sortieren" existiert. Ändere den Blattnamen im Code, falls notwendig.
  • Fehler: Makro funktioniert nicht

    • Lösung: Überprüfe, ob Du das Makro korrekt ausgeführt hast und dass die Zelle, die sortiert werden soll, tatsächlich alphanumerische Werte enthält.

Alternative Methoden

Wenn Du kein Makro verwenden möchtest, kannst Du die Inhalte in eine Hilfsspalte kopieren, dort sortieren und anschließend wieder zurückkopieren. Das ist zwar umständlicher, jedoch eine gute Möglichkeit für Nutzer, die mit VBA nicht vertraut sind.


Praktische Beispiele

Angenommen, Du hast in Zelle A1 den Inhalt "BCA21". Nach Ausführung des Makros wird dieser Inhalt in "12ABC" umgewandelt, sortiert nach alphanumerischen Kriterien.


Tipps für Profis

  • Überlege, ob Du den BubbleSort-Algorithmus optimieren kannst, um die Performance für längere Strings zu verbessern.
  • Wenn Du regelmäßig Zellen sortieren musst, kannst Du das Makro anpassen, um eine ganze Spalte oder einen Bereich zu sortieren.

FAQ: Häufige Fragen

1. Kann ich das Makro für mehrere Zellen verwenden?
Ja, Du kannst das Makro anpassen, um über eine Schleife mehrere Zellen zu sortieren. Achte darauf, die entsprechenden Zellreferenzen zu aktualisieren.

2. Funktioniert das in jeder Excel-Version?
Das Beispiel sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2010 und später.

3. Was mache ich, wenn ich keine Makros verwenden möchte?
Du kannst die Daten in eine Hilfsspalte kopieren und dort die Sortierfunktion von Excel verwenden, bevor Du die sortierten Daten zurückkopierst.

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