Einen String intelligent trennen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

Einen String intelligent trennen

Beitrag von Reginald »

Hallo,

ich habe eine große Tabelle mit einer Spalte, wo solche Werte drinstehen:

Joe Smith 1
Peter Mayer 55
Helge Schneider 3
Petra Müller Lüdenscheid X5
Norbert Hansen von der Heide 9

D. h. immer ein Name mit einer Nummer oder Buchstabennummerkombination dran.

Das will ich jetzt in zwei Spalten aufteilen

Spalte A
Joe Smith
Peter Mayer
Helge Schneider

Spalte B
1
55
3

etc.

Mit der Funkton find kann ich nach einem Leerzeichen suchen, aber damit bekomme ich nur die Position vom ersten Leerzeichen. Ich brauche ja die Position vom letzten Leerzeichen, damit ich das auseinander trennen kann.

Ideen?

Danke,
R
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Einen String intelligent trennen

Beitrag von Karolus »

Hallo
Erlaube →Extras→Optionen→OOo→calc→Berechnen ...[x]reguläre Ausdrücke in Formeln

Code: Alles auswählen

=LINKS($A1;SUCHEN(" [^ ]+$";$A1)-1)

Code: Alles auswählen

=TEIL($A1;SUCHEN(" [^ ]+$";$A1)+1;99)
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Einen String intelligent trennen

Beitrag von theindless »

Hallo,

@Karo
Kannst du bitte die Bedeutung deines Suchstrings kurz erläutern.

Ich komm da trotz Hilfe nicht so recht klar...

Danke!

theindless
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Einen String intelligent trennen

Beitrag von Karolus »

Hallo

Der Suchstring bedeuted: " 'ein_Leerzeichen...'[^ ]'...gefolgt von beliebigen Zeichen ausser einem Leerzeichen... '+' ...ein- oder mehrmals auftretend...'$" '...bis zum Textende'

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Einen String intelligent trennen

Beitrag von theindless »

Hallo,

Danke Karo.

Schade, dass es hier keine bessere Anleitung (mit Beispielen) als die Hilfe gibt. :(

theindless
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Einen String intelligent trennen

Beitrag von Karolus »

Hallo
Der "schwierige" Teil des Suchaudrucks wird doch hinreichend erklärt:
OOo-hilfe hat geschrieben: [abc123] Steht für eines der Zeichen in der Klammer.

[a-e]Steht für irgendein Zeichen zwischen a und e ist, einschließlich beider Start- und Endzeichen
Die Zeichen werden anhand ihre Kennziffer angeordnet.

[a-eh-x] Steht für ein beliebiges Zeichen im Buchstabenbereich a-e und h-x.

[^a-s] Repräsentiert alles, was nicht zwischen a und s ist.
Ein wenig nachdenken und abstrahieren musst du schon selber...
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Einen String intelligent trennen

Beitrag von theindless »

Hallo,

wenn du aus dem von dir zitierten Teil der Hilfe, deinen Suchausdruck ableiten kannst... Respekt.

Ich bin wohl zu dumm dafür.

theindless
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

Re: Einen String intelligent trennen

Beitrag von Reginald »

Hallo,

wow, das klingt interessant. Ein wenig wie Chinesisch, aber es macht Sinn ...

Ich benutze das englische OO und so wie ich das sehe ist der Befehl "Links" = "Left", "Suchen" = "Find" und "Teil" = "Mid"

Ich bekomme immer die Fehlermeldung #Value!

Reduziere ich die erste Formel auf =FIND(" [^ ]";A1) dann bekomme ich diese Fehlermeldung auch.

Ideen?

Grüße
R
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Einen String intelligent trennen

Beitrag von theindless »

Hallo Reginald,

"reduzieren" ist vermutlich nicht der richtige Weg.
Du solltest die Formeln von Karo schon komplett übernehmen!

Außerdem solltest dich vergewissern, dass du

Extras→Optionen→OOo→calc→Berechnen ...[x]reguläre Ausdrücke in Formeln

auch aktiviert hast.

theindless
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Einen String intelligent trennen

Beitrag von Karolus »

Hallo
=FINDEN() →FIND()
=SUCHEN() →SEARCH()

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

Re: Einen String intelligent trennen

Beitrag von Reginald »

Scheint ja ein allseits interessantes Thema zu sein.

Also mit der Formel von Karo und seiner Korrektur der Übersetzung habe ich jetzt die Formel funktionsfähig herausfgefunden.

Hier noch einmal in der Zusammenfassung.

A1 hat den Inhalt
Klaus Müller von der Linde 123X

Mit der Formel

Code: Alles auswählen

=LEFT($A1;SEARCH(" [^ ]+$";$A1)-1)
bekomme ich den ersten Teil, also Klaus Müller von der LInde

und mit der Formel

Code: Alles auswählen

=RIGHT(A1;LEN(A1)-SEARCH(" [^ ]+$";$A1))
trenne ich den zweiten Teil, also die Nummer 123X heraus

Vielen Dank,
R
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Einen String intelligent trennen

Beitrag von balu »

Hallo Reginald,

hier mal ein vielleicht doch sehr nützlicher Link für dich, damit es keine Missverständnisse mit Funktions-Namen zwischen deutsch und englisch gibt.
http://www.ooowiki.de/DeutschEnglischCalcFunktionen



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Einen String intelligent trennen

Beitrag von Karolus »

Reginald hat geschrieben:
und mit der Formel

Code: Alles auswählen

=RIGHT(A1;LEN(A1)-SEARCH(" [^ ]+$";$A1))
trenne ich den zweiten Teil, also die Nummer 123X heraus

Vielen Dank,
R
Und warum hast du nicht:

Code: Alles auswählen

=MID($A1;SEARCH(" [^ ]+$";$A1)+1;99)
genommen.

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten