Frage stellen
0

Sortieren von Begriffen innerhalb einer Zelle CALC

gefragt 2018-04-21 11:20:36 +0100

teefax Gravatar-Bild

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.

Bearbeiten Tags ändern Melden schließen vereinen löschen

1 Antwort

0

geantwortet 2018-04-21 22:59:35 +0100

Lupp Gravatar-Bild

updated 2018-04-22 11:46:58 +0100

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.

Bearbeiten Melden löschen Link mehr

Kommentare

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.

teefax Gravatar-Bildteefax ( 2018-04-22 09:51:55 +0100 )Bearbeiten

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.

Lupp Gravatar-BildLupp ( 2018-04-22 11:29:35 +0100 )Bearbeiten

Ich habe eine Lösung gefunden, die genau das macht, was ich brauche: http://www.textfixer.de/tools/alphabe... . 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.

teefax Gravatar-Bildteefax ( 2018-04-24 12:16:30 +0100 )Bearbeiten
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 Beobachter

Statistik

Gefragt: 2018-04-21 11:20:36 +0100

Angesehen: 148 Mal

Aktualisiert: Apr 22 '18