CALC: String spiltten bzw. Anzahl der Trennzeichen ermitteln

Hallo,

in einer CALC-Tabelle habe ich Text-Zellen z.B. mit

    Text S  | 12345 | 19% | Text A
    Text Sa | 6789  |  7% | Text xx
    Text qq | 0000  | 19%

Die Inhalte sollen jeweils bei " | " separiert werden, in SQL gibt es SPLIT aber in CALC? Wie kann ich

  * die Trennung erreichen
    oder
  * die Anzahl der enthaltenen Trenner je Zelle ermitteln?

Danke, Michael

Hey Michael,

mit Formel wird es wahnsinnig kompliziert... rate ich ab von.

Mit Makros wäre es leicht lösbar - weiss aber nicht, ob Du Makros schreiben kannst :wink:

Der schnellste Weg mit Umweg;)

Alle Ursprungszellen markieren, kopieren (in Zwischenablage).

Einfaches Textdokument öffnen (notpad oder so) --> Einfügen. Alles markieren, kopieren und zurück zu Calc gehen.

Nun die Startzelle des zukünftigen Blocks markieren (also die oben links) -> Einfügen.

Nun öffnet sich der Einfügedialog mit Vorschau: Dort gibst Du im Bereich Trennoptionen ein:

Markiere "Andere" und gib "|" in das Feld ein (ohne Anführungszeichen). Alle anderen Haken entfernen!

Markiere noch "Feldtrenner zusammenfassen"  und "Leerräume beschneiden" -

die Vorschau sollte dir schon das korrekte Ergebnis anzeigen.

Dann einfach OK klicken und fertig:)

Du kannst auch noch die Spaltentypen einzeln verändern - bei Bedarf. Musst Du einfach ausprobieren.

Viele Grüße

Thomas

Hallo Michael

in einer CALC-Tabelle habe ich Text-Zellen z.B. mit

    Text S  | 12345 | 19% | Text A
    Text Sa | 6789  |  7% | Text xx
    Text qq | 0000  | 19%

Die Inhalte sollen jeweils bei " | " separiert werden, in SQL gibt es
SPLIT aber in CALC? Wie kann ich

  * die Trennung erreichen

Du könntest es mit der Funktion "Text in Spalten" im Menü "Daten"
probieren. Dort das "|" als Trennzeichen vorgeben.

Deine Leerzeichen vor und nach dem "|" könnten ggf. das Ergebnis
unschön machen. So würde deine erste Beispielzeile wird in vier Spalten
zerlegt. In den Zellen der Zeile finden sich dann:

"Text S "
12345
19%
" Text A"

Bei den Texten machen sich die Leerzeichen bemerkbar, während die
Zahlen durch die Erkennung auch als Zahlen interpretiert werden.

Du könntest vor dem Aufruf von "Text in Spalten" mit "Suchen und
Ersetzen" arbeiten: Suchen nach " |", ersetzen durch "|", bis kein
Leerzeichen vor einem "|" mehr gefunden wird. Das gleiche machst du mit
"| ".

Dein Beispiel wird dann zu:

Text S|12345|19%|Text A
Text Sa|6789|7%|Text xx
Text qq|0000|19%

was du prima an "Text in Spalten verfüttern kannst.

    oder
  * die Anzahl der enthaltenen Trenner je Zelle ermitteln?

Da fallen mir nur sehr aufwändige Tricks mit der Funktion SUCHEN() ein.

Gruß,
ein anderer Michael :wink:

Hallo Michael,

Hallo,

in einer CALC-Tabelle habe ich Text-Zellen z.B. mit

Text S  | 12345 | 19% | Text A
   Text Sa | 6789  |  7% | Text xx
   Text qq | 0000  | 19%

Die Inhalte sollen jeweils bei " | " separiert werden, in SQL gibt es SPLIT aber in CALC? Wie kann ich

* die Trennung erreichen
   oder
 * die Anzahl der enthaltenen Trenner je Zelle ermitteln?

blöder Gedanken / Workaround:

* Copy&Paste der besagten Felder in ein neues Blatt
* als CSV exportieren
* CSV importieren
* Zellen dort hinkopieren wo man diese hinhaben will
^^

Danke, Michael

VG

Dennis

Hallo,

danke für die verschiedenen Vorschläge; Ihr habt mir sehr geholfen!
Python kann ich nicht, deshalb habe ich das nicht bearbeitet; außerdem hatte ich zur Befüllung der Text-Zellen in CALC bereits einen Kommandozeilen (Linux-BASH) - Einzeiler, deshalb habe ich den

schnellsten Weg mit Umweg;)

aufgegriffen und meinen vorhandenen Code mit einem
(STRING | sed 's/ | /*/g')
erweitert, um die Trennzeichen '|' durch ein '*' zu ersetzen. Die gesamte Zeile wird dann mit

...  Trennoptionen ... "Andere" und

'*' eingelesen.

Funktioniert perfekt, Danke!

Gruß, Michael