Textzeile einer Zelle extrahieren
Moderator: Moderatoren
-
- Beiträge: 3
- Registriert: Fr, 15.10.2010 18:50
Textzeile einer Zelle extrahieren
Hallo,
leider kenne ich mich mit den funktionen bei calc noch nicht so aus - vielleicht kann mir ja jemand helfen.
Folgendes problemchen...
Ich möchte aus einer zelle in der ein mehrzeiliger text steht, eine bestimmte zeile auslesen um sie in eine andere zelle zu übertragen.
Der mehrzeilige text ist im prinzip nichts anderes als ein adressblock in der form:
Name Vorname
Postleitzahl Ort
Straße Hausnummer
Heraus kommen soll:
| Name Vorname | Postleitzahl Ort | Straße Hausnummer |
Vermutlich müsste man die einzelnen textsegmente anhand der zeilenumbrüche herausfiltern können.
Aber wie fragt man einen zeilenumbruch ab ?
Über die leerzeichen funktioniert es nicht, da sowohl in der ersten als auch der letzten zeile unterschiedlich viele
leerzeichen vorkommen können (zb. doppelnamen oder straßennamen die aus mehreren einzelworten bestehen usw.).
Falls jemand dafür eine lösung hat (oder einen anderen ansatz) würde mir das sehr weiterhelfen.
leider kenne ich mich mit den funktionen bei calc noch nicht so aus - vielleicht kann mir ja jemand helfen.
Folgendes problemchen...
Ich möchte aus einer zelle in der ein mehrzeiliger text steht, eine bestimmte zeile auslesen um sie in eine andere zelle zu übertragen.
Der mehrzeilige text ist im prinzip nichts anderes als ein adressblock in der form:
Name Vorname
Postleitzahl Ort
Straße Hausnummer
Heraus kommen soll:
| Name Vorname | Postleitzahl Ort | Straße Hausnummer |
Vermutlich müsste man die einzelnen textsegmente anhand der zeilenumbrüche herausfiltern können.
Aber wie fragt man einen zeilenumbruch ab ?
Über die leerzeichen funktioniert es nicht, da sowohl in der ersten als auch der letzten zeile unterschiedlich viele
leerzeichen vorkommen können (zb. doppelnamen oder straßennamen die aus mehreren einzelworten bestehen usw.).
Falls jemand dafür eine lösung hat (oder einen anderen ansatz) würde mir das sehr weiterhelfen.
Re: Textzeile einer Zelle extrahieren
Hallo KlammerAuf,
angenommen der dreizeilige Text steht in A2
dann schreibe/kopiere diese drei Formeln
in B2
=LINKS(A2;SUCHEN("[:cntrl:]+";A2;1)-1)
in C2
=RECHTS(LINKS(A7;SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-1);SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-SUCHEN("[:cntrl:]+";A7;1))
in D2
=RECHTS(A2;LÄNGE(A2)-SUCHEN("[:cntrl:]+";A2;SUCHEN("[:cntrl:]+";A2;1)+1))
und dein Wunsch sollte erfüllt werden.
edit: die 2. Formel ist jetzt korrigiert
angenommen der dreizeilige Text steht in A2
dann schreibe/kopiere diese drei Formeln
in B2
=LINKS(A2;SUCHEN("[:cntrl:]+";A2;1)-1)
in C2
=RECHTS(LINKS(A7;SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-1);SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-SUCHEN("[:cntrl:]+";A7;1))
in D2
=RECHTS(A2;LÄNGE(A2)-SUCHEN("[:cntrl:]+";A2;SUCHEN("[:cntrl:]+";A2;1)+1))
und dein Wunsch sollte erfüllt werden.
edit: die 2. Formel ist jetzt korrigiert
Zuletzt geändert von clag am So, 17.10.2010 17:35, insgesamt 1-mal geändert.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Textzeile einer Zelle extrahieren
Hallo
Zuerst →Suchen und ersetzen:
Suche nach \n ersetze durch @
mit der Option [x]regulärer Ausdruck
Dann → Daten → Text in Spalten: Feldtrenner: [x]andere @
Oder alternativ mit den Formeln
in C1:
in D1:
in E1:
Gruß Karo
Zuerst →Suchen und ersetzen:
Suche nach \n ersetze durch @
mit der Option [x]regulärer Ausdruck
Dann → Daten → Text in Spalten: Feldtrenner: [x]andere @
Oder alternativ mit den Formeln
in C1:
Code: Alles auswählen
=LINKS(A1;FINDEN(ZEICHEN(10);A1)-1)
Code: Alles auswählen
=TEIL(A1;LÄNGE(C1)+2;LÄNGE(A1)-LÄNGE(C1)-LÄNGE(E1)-2)
Code: Alles auswählen
=TEIL(A1;FINDEN(ZEICHEN(10);A1;LÄNGE(C1)+2)+1;99)
LO25.2… debian 13( trixie ) auf Raspberry5 8GB (ARM64)
LO25.8… flatpak debian 13( trixie ) auf Raspberry5 8GB (ARM64)
LO25.8… flatpak debian 13( trixie ) auf Raspberry5 8GB (ARM64)
-
- Beiträge: 3
- Registriert: Fr, 15.10.2010 18:50
Re: Textzeile einer Zelle extrahieren
Vielen, vielen dank an euch.
Ihr habt mir damit sehr geholfen.
Werds am montag gleich ausprobieren.
Ihr habt mir damit sehr geholfen.
Werds am montag gleich ausprobieren.
Re: Textzeile einer Zelle extrahieren
Hallo Karolus,
war klar das du als "FormelMeistah" noch wieder was kürzeres aus dem Hut ziehst
Ich meine mich entsinnen zu können, war hier vor einiger Zeit nicht ein ähnliches Thema angefragt, (finde es leider nicht wieder)
und das Ergebnis wäre die Erkenntnis diese zellinterne Zeilenumbrüche könnten nicht direkt angesprochen werden?
Aber genau das tust du ja hier auf die reguläre Art mit "\n" und "ZEICHEN(10)"
ging es damals nur um das schreiben eines solchen Umbruch und nicht ums lesen?
Würfele ich jetzt etwas durcheinander, oder hat Calc dazugelernt oder wie
war klar das du als "FormelMeistah" noch wieder was kürzeres aus dem Hut ziehst

Ich meine mich entsinnen zu können, war hier vor einiger Zeit nicht ein ähnliches Thema angefragt, (finde es leider nicht wieder)
und das Ergebnis wäre die Erkenntnis diese zellinterne Zeilenumbrüche könnten nicht direkt angesprochen werden?
Aber genau das tust du ja hier auf die reguläre Art mit "\n" und "ZEICHEN(10)"
ging es damals nur um das schreiben eines solchen Umbruch und nicht ums lesen?
Würfele ich jetzt etwas durcheinander, oder hat Calc dazugelernt oder wie

LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Textzeile einer Zelle extrahieren
Hallo Paljass,
da wo Kritik bzw der Hinweis auf einen Fehler gerechtfertigt ist muss sie natürlich auch jederzeit möglich sein,
und hier hast du Recht, also Danke für den sachlichen Hinweis auf den Fehler.
Ich hatte einen Denkfehler (Flüchtigkeitsfehler) in der Formel übersehen, und da der Beispiel-Zellinhalt nun aber gerade so passte ist es mir nicht aufgefallen
hier ist die korrigierte Formel (blau), der Unterschied ist deutlich
=RECHTS(LINKS(A7;SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-1);SUCHEN("[:cntrl:]+";A7;1)+2)
=RECHTS(LINKS(A7;SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-1);SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-SUCHEN("[:cntrl:]+";A7;1))
allerdings sieht sie jetzt gegen Karolus Formel ziemlich monströs aus
(vielleicht taugt sie noch zum Angeln als langer Wurm)
gegen Karo formeltechnisch anstinken zu wollen, ist aber auch wirklich nicht einfach
PS
der Fehler ist nur passiert weil ich wie Karo auch mal mit was kurzem angeben wollte

da wo Kritik bzw der Hinweis auf einen Fehler gerechtfertigt ist muss sie natürlich auch jederzeit möglich sein,
und hier hast du Recht, also Danke für den sachlichen Hinweis auf den Fehler.
Ich hatte einen Denkfehler (Flüchtigkeitsfehler) in der Formel übersehen, und da der Beispiel-Zellinhalt nun aber gerade so passte ist es mir nicht aufgefallen

hier ist die korrigierte Formel (blau), der Unterschied ist deutlich
=RECHTS(LINKS(A7;SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-1);SUCHEN("[:cntrl:]+";A7;1)+2)
=RECHTS(LINKS(A7;SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-1);SUCHEN("[:cntrl:]+";A7;SUCHEN("[:cntrl:]+";A7;1)+1)-SUCHEN("[:cntrl:]+";A7;1))
allerdings sieht sie jetzt gegen Karolus Formel ziemlich monströs aus
(vielleicht taugt sie noch zum Angeln als langer Wurm)

gegen Karo formeltechnisch anstinken zu wollen, ist aber auch wirklich nicht einfach

PS
der Fehler ist nur passiert weil ich wie Karo auch mal mit was kurzem angeben wollte


Zuletzt geändert von clag am So, 17.10.2010 17:35, insgesamt 1-mal geändert.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Textzeile einer Zelle extrahieren
Hallo Clag
Da Calc-Suchen_und_ersetzen im ersetzen-Feld weder \n noch den hexadezimalen Zeichencode \x000A akzeptiert, muss man da tricksen und den Zelltext in eine entsprechende Zellformel verwandeln, um im Ersetzen-feld mit ZEICHEN(10) arbeiten zu können.
Gruß Karo
Nein, Calc hat nichts dazu gelernt, in dem angesprochenen Thread gings darum in normalem Zelltext ein anders Zeichen durch einen Umbruch innerhalb der Zelle zu verwandeln.clag hat geschrieben:Ich meine mich entsinnen zu können, war hier vor einiger Zeit nicht ein ähnliches Thema angefragt, (finde es leider nicht wieder)
und das Ergebnis wäre die Erkenntnis diese zellinterne Zeilenumbrüche könnten nicht direkt angesprochen werden?
Aber genau das tust du ja hier auf die reguläre Art mit "\n" und "ZEICHEN(10)"
ging es damals nur um das schreiben eines solchen Umbruch und nicht ums lesen?
Würfele ich jetzt etwas durcheinander, oder hat Calc dazugelernt oder wie
Da Calc-Suchen_und_ersetzen im ersetzen-Feld weder \n noch den hexadezimalen Zeichencode \x000A akzeptiert, muss man da tricksen und den Zelltext in eine entsprechende Zellformel verwandeln, um im Ersetzen-feld mit ZEICHEN(10) arbeiten zu können.
Gruß Karo
LO25.2… debian 13( trixie ) auf Raspberry5 8GB (ARM64)
LO25.8… flatpak debian 13( trixie ) auf Raspberry5 8GB (ARM64)
LO25.8… flatpak debian 13( trixie ) auf Raspberry5 8GB (ARM64)
Re: Textzeile einer Zelle extrahieren
Moin Karolus,
Danke für deine zusammenfassende Darstellung zu diesem Thema
einen schönen Sonntag....
Danke für deine zusammenfassende Darstellung zu diesem Thema

einen schönen Sonntag....
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
-
- Beiträge: 3
- Registriert: Fr, 15.10.2010 18:50
Re: Textzeile einer Zelle extrahieren
So, habs ausprobiert und es funktioniert wunderbar.
Habe mich dabei allerdings an die kurze variante gehalten.
Nachdem ich nun herausgefunden habe was es mit "Zeichen(10)" auf sich hat, verstehe ich die formeln sogar.
Wieder was dazu gelernt - vielen dank nochmals an alle.
Habe mich dabei allerdings an die kurze variante gehalten.

Nachdem ich nun herausgefunden habe was es mit "Zeichen(10)" auf sich hat, verstehe ich die formeln sogar.
Wieder was dazu gelernt - vielen dank nochmals an alle.