Funktion für "Text in Spalten"

Geehrte Community,

eine Zelle hat den Inhalt A, B, C.

Gesucht wird eine Funktion ähnlich der Funktionalität “Text in Spalten”, die den Inhalt anhand eines Separators (im Beispiel ein Komma mit einem Leerzeichen) an einer anderen Stelle auf mehrere Zellen aufteilt.

Der Zellinhalt der Ausgangszelle kann variieren in Reihenfolge und Anzahl.

Danke für jede hilfreiche Antwort.

Viele Grüße,

Afox

Trickreich aber möglich mit der REGEX() Funktion (seit LibreOffice 6.2)

=REGAUS(REGAUS(A1;"(?:(?!, ).)+(?=(?:, )|$)";;{1,2,3});"^ ?(.*)";"$1")

als Array-Formel eingeben (Shift+Strg+Enter statt Enter), dabei {1,2,3} durch die maximal mögliche Anzahl Spalten ersetzen, z.b. {1,2,3,4,5} (der Matrixspaltenseparator ist der aus Extras → Optionen → Calc → Formel, Trennzeichen, Matrixspalte). Nicht vorhandene Spalten in den Daten liefern dann anhängende #NV, wenn das nicht gewünscht ist IFNA()/WENNNV() verwenden:

=REGAUS(WENNNV(REGAUS(A1;"(?:(?!, ).)+(?=(?:, )|$)";;{1,2,3});"");"^ ?(.*)";"$1")

Dann ist allerdings keine Unterscheidung zwischen anhängendem leeren Datenteil "A, B, " und keinem Datenteil "A, B" möglich.

Die zweite äußere RegEx dient dazu, das führende Leerzeichen folgender Datenteile zu eliminieren, so dass "B" statt " B" resultiert.

Achtung, wenn der erste Datenteil komplett leer ist , B, C dann wird er ignoriert und alle folgenden Spalten um eine nach links verschoben. Das auch noch in die RegEx rein zu bekommen kann ja mal jemand versuchen… :wink:

Wer wissen will wie das funktioniert kann es sich auf regex101 und debuggex ansehen.