Ich habe eine Reihe von unsortierten Begriffen, die durch Kommatas getrennt sind, INNERHALB einer CALC-Zelle stehen. Ich suche eine Möglichkeit, diese Begriffe alphabetisch zu sortieren. Möglichst einfach, da es viele Zellen sind, die sortiert werden müssen.
Da gibt es kein eingebautes Mittel.
Auch die Zerlegung von Listen in Textform mit Hilfe von Standardfunktionen ist aufwendig und beschränkt.
Für eine effektive Sortierung gibt es nur das interaktive Werkzeug, das du auch noch Zeile für Zeile anwenden müsstest - und die Behelfslösung mit SMALL oder LARGE geht nur mit Zahlen.
Falls die sortierten Bruchstücke auch wieder zusammengefügt werden sollen, is immerhin in jüngeren Versionen von LibreOffice die TEXTJOIN() - Funktion verfügbar.
Eine halbwegs brauchbare Lösung für Dein Problem wird also (m.E.) Programmierung (“Makros”) erfordern.
(Bearbeitung1:)
Ich habe vor Jahren einige Funktionen geschrieben, mit denen sich sowas einigermaßen machen läßt. Die sind teilweise komplizierter als hier gebraucht, und natürlich gibt es keine Garantie für korrekte Ergebnisse. Meine Sortieralgorithmen setzen auch Kleinschrift immer hinter Großschrift…
Du musst halt ggf. Anpassungen vornehmen.
Ich hänge einfach dieses Beispiel an, das die erwähnten Funktionen enthält.
“Makros” im Dokument können nur ausgeführt werden, wenn die Macro Security
nicht high
eingestellt ist. Dann brauchjt es auch noch Zustimmung beim Öffen.
(Bearbeitung2:)
Um beim alphabetischen Sortieren Groß-/Kleinschreibung nicht zu unterscheiden, muss man (wenn nicht gleichzeitig Zahlen zu sortieren sind) eine einzige Zeile im Code des Sortieralgorithmus ändern: Vgl. Zeile 127 mit Zeile 72 im Code dieses anhängenden Beispiels. (Anhang mit kleiner Verspätung berichtigt.)
Natürlich kann man die Sortierfunktion auch mit einem zusätzlichen Parameter und ein bisschen Extracode so umschreiben, dass der Parameter entscheidet ob CaseSensitive oder nicht.
Auf die vielleicht-weiteren-Ideen wäre ich auch gespannt.
Für den Fall, dass meine vorgeschlagene Lösung bei dir nicht funktioniert, bitte ich um genauere Angaben, wie sich das äußert.
Die Sortierung müsste eben einfach nur nach dem Anfangsbuchstaben passieren, weil in der Zelle auch Bindestriche, Leerzeichen und Zahlen vorkommen: abc, zyx 11c, aab/bnc, … Die einzige Lösung, die bisher funktioniert hat, ist den Zelleninhalt in writer zu kopieren, eine Liste daraus zu erstellen, zu sortieren und wieder zurückzukopieren. Sehr umständlich und zeitaufwändig. Aber vielleicht gibts ja hier noch weitere Ideen.
Also, was ich in meinem Beispiel angeboten habe, funktioniert tatsächlich. Oder hat es bei Dir nicht funktioniert? Es ist halt ein bisschen “mit Kanonen auf Spatzen geschossem”.
Den Sortieralgorithmus kann man leicht (durch Änderung einer einzigen Zeile) an spezifische Bdürfnisse anpassen. Ich habe das für die Nichtunterscheidung von Groß-/Kleinschreibung gemacht, und hange das veränderte Beispiel meiner Antwort an.
Ich habe eine Lösung gefunden, die genau das macht, was ich brauche: http://www.textfixer.de/tools/alphabetisch-ordnen.php . Bei deinem Makro hat die Sortierung zwar grundsätzlich funktioniert, aber eben nicht so, wie ich sie brauche. Probleme gab es mit Leerzeichen und Zahlen innerhalb des jeweiligen Terms, dann waren einaml alle Kommas weg oder überall doppelte. Mit dem Onlinetool muss ich nichts nachbearbeiten.