wenn dann Bearbeitung/Extraktion von String-Ausdrücken
Moderator: Moderatoren
wenn dann Bearbeitung/Extraktion von String-Ausdrücken
Hallo alle zusammen,
cih verwende die Version 3.3.0. In der Tabelle 1 steht zum Beispiel in Zelle CJ 2 "Meine Kontakte;Gruppe E3;SG" oder "Meine Kontakte;Gruppe E23;SG" oder "Meine Kontakte;Gruppe E2;Gruppe E3;SG"
Wie bekomme ich das jetzt hin, das in der Tabelle 2 in I2 nur E2 oder E3 oder E2/E3 steht?
Gruß
Micha
cih verwende die Version 3.3.0. In der Tabelle 1 steht zum Beispiel in Zelle CJ 2 "Meine Kontakte;Gruppe E3;SG" oder "Meine Kontakte;Gruppe E23;SG" oder "Meine Kontakte;Gruppe E2;Gruppe E3;SG"
Wie bekomme ich das jetzt hin, das in der Tabelle 2 in I2 nur E2 oder E3 oder E2/E3 steht?
Gruß
Micha
Zuletzt geändert von mfeske am Di, 03.09.2013 10:58, insgesamt 1-mal geändert.
Re: wenn dann
Hi,
Gruß
paljass
Code: Alles auswählen
=TEIL(Tabelle1.CJ2;SUCHEN("Gruppe";Tabelle1.CJ2)+7;2)
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Re: wenn dann
Hallo paljass,
danke für die schnelle Hilfe! Es funktioniert, aber leider nur für die erste genannte Gruppe. Wenn die zweite Gruppe auch vorkommt wird es leider ignoriert, kann man die Funktion noch ergänzen?
Gruß
Micha
danke für die schnelle Hilfe! Es funktioniert, aber leider nur für die erste genannte Gruppe. Wenn die zweite Gruppe auch vorkommt wird es leider ignoriert, kann man die Funktion noch ergänzen?
Gruß
Micha
Re: wenn dann
Moin Micha,
Was wird ignoriert?
Welches Ergebnis wird erzielt?
Soll bei der zweiten Gruppe E23 rauskommen? Dann nimm
Gruß
paljass
Wenn die zweite Gruppe wo vorkommt?Wenn die zweite Gruppe auch vorkommt wird es leider ignoriert
Was wird ignoriert?
Welches Ergebnis wird erzielt?
Soll bei der zweiten Gruppe E23 rauskommen? Dann nimm
Code: Alles auswählen
=TEIL(Tabelle1.CJ2;SUCHEN("Gruppe";Tabelle1.CJ2)+7;SUCHEN(";";CJ2;SUCHEN("Gruppe";CJ2))-SUCHEN("Gruppe";CJ2)-7)
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Re: wenn dann
Hallo paljass,
Danke für Deine Unterstützung. Ich habe das ganze probiert abzuwandeln und habe eine Bauchlandung gemacht
.
Was funktioniert ist:
Das reciht auch aus, wenn in outlook_import.CJ2 nur einmal Handball E2 bzw Handball E3 auftaucht. Es wird ordentlich ein E3 bzw. E2 angezeigt.
Ichhabe aber noch keien Lösung dafür gefunden wenn in outlook_import.CJ2 Handball E2 und Handball E3 auftaucht. Wümschenswert wäre natürlich die Ausgabe E2/E3; wenn nur eins von beiden auftaucht soll der / natürlich nicht erscheinen.
Wenn ich die Funktion von Dir umforme erhalte iche inen Erro und Calc schreibt nur die oben genannte Formel
Gruß
Micha
Danke für Deine Unterstützung. Ich habe das ganze probiert abzuwandeln und habe eine Bauchlandung gemacht

Was funktioniert ist:
Code: Alles auswählen
=TEIL(outlook_import.CJ2;SUCHEN("Handball";outlook_import.CJ2)+8;3)
Ichhabe aber noch keien Lösung dafür gefunden wenn in outlook_import.CJ2 Handball E2 und Handball E3 auftaucht. Wümschenswert wäre natürlich die Ausgabe E2/E3; wenn nur eins von beiden auftaucht soll der / natürlich nicht erscheinen.
Wenn ich die Funktion von Dir umforme erhalte iche inen Erro und Calc schreibt nur die oben genannte Formel

Gruß
Micha
Re: wenn dann
Hallo Micha,
nicht erschrecken, aber damit müsste es funktionieren:
Gruß
paljass
nicht erschrecken, aber damit müsste es funktionieren:
Code: Alles auswählen
=TEIL(CJ2;SUCHEN("E[0-9]{1,2}";CJ2);SUCHEN(";";CJ2;16)-SUCHEN("E[0-9]{1,2}";CJ2))&WENN(ISTFEHLER(SUCHEN("E[0-9]{1,2}";CJ2;SUCHEN("E[0-9]{1,2}";CJ2)+4));"";"/"&TEIL(CJ2;SUCHEN("E[0-9]{1,2}";CJ2;SUCHEN("E[0-9]{1,2}";CJ2)+4);LÄNGE(CJ2)-SUCHEN("E[0-9]{1,2}";CJ2;SUCHEN("E[0-9]{1,2}";CJ2)+4)+1))
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Re: wenn dann
Leider nein
--> #WERT! <--

Re: wenn dann
Hast du unter Extras - Einstellungen (Optionen) - OoCalc - Berechnen regüläre Ausdrücke in Formeln zulassen eingeschaltet?
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Re: wenn dann
Biedes probiert ein und aus
ohne Änderung.

-
- ***
- Beiträge: 61
- Registriert: Mi, 11.07.2012 22:08
Re: wenn dann
ich würde dir empfehlen, mit Hilfsspalten zu arbeiten, um die Einzelwerte aus deiner CJ-Spalte auszulesen und zu verketten. Denn der Gesamtausdruck wird trotz RegEx sehr unübersichtlich. Ich habe das auf einem Tabellenblatt einmal getan, das sieht dann so aus, wie unten in der Abbildung. Der RegEX-Ausdruck reduziert sich auf <E(\d).*;> und liefert alle E's gefolgt von mindestens einer, aber auch mehr Ziffern bis zum Semikolon.
In den Hilfsspalten C bis H steht dann (bspw. Zeile 5):
C: =SUCHEN("E(\d).*;";B5) Von-Position des 1. Ausdrucks
D: =SUCHEN(";";B5;C5) Bis-Position des 1. Ausdrucks, dem Semikolon
E: =SUCHEN("E(\d).*;";B5;1+D5) Von-Position des 2. Ausdrucks, wenn vorhanden
F: =SUCHEN(";";B5;E5) Bis-Position des 2. Ausdrucks, dem Semikolon, wenn vorhanden
G: =TEIL(B5;C5;D5-C5) 1. Ausdruck
H: =TEIL(B5;E5;F5-E5) 2. Ausdruck, wenn vorhanden
und in der Zielspalte
=WENN(ISTZAHL(F5);VERKETTEN(G5;"/";H5);G5)
Du musst das für deine Tabellenblätter jetzt noch anpassen. Aber auch in 2 Jahren kann man sowas noch ggf. mal ändern.
In den Hilfsspalten C bis H steht dann (bspw. Zeile 5):
C: =SUCHEN("E(\d).*;";B5) Von-Position des 1. Ausdrucks
D: =SUCHEN(";";B5;C5) Bis-Position des 1. Ausdrucks, dem Semikolon
E: =SUCHEN("E(\d).*;";B5;1+D5) Von-Position des 2. Ausdrucks, wenn vorhanden
F: =SUCHEN(";";B5;E5) Bis-Position des 2. Ausdrucks, dem Semikolon, wenn vorhanden
G: =TEIL(B5;C5;D5-C5) 1. Ausdruck
H: =TEIL(B5;E5;F5-E5) 2. Ausdruck, wenn vorhanden
und in der Zielspalte
=WENN(ISTZAHL(F5);VERKETTEN(G5;"/";H5);G5)
Du musst das für deine Tabellenblätter jetzt noch anpassen. Aber auch in 2 Jahren kann man sowas noch ggf. mal ändern.
- Dateianhänge
-
- wenn-dann.jpg (24.92 KiB) 4729 mal betrachtet
Re: wenn dann
Guten Morgen allerseits,
@mfeske
Dann wäre ja mal die Zeit für ein Beispieltabelle mit einer Auswahl von Texten und Ergebnissen #Wert gekommen, ansonsten können wir noch bis Weihnachten raten, woran das liegt
Ach ja, vielleicht solltest du noch mit angeben, welche Version von Oo du einsetzt.
@bockenheimer
Wesentlich übersichtlicher als meine Formel, dafür aber mit vielen Hilfsspalte, die nicht in jede Datei eingefügt werden können.
Mal sehen, wie sich mfeske dazu äußert.
Gruß
paljass
@mfeske
Dann wäre ja mal die Zeit für ein Beispieltabelle mit einer Auswahl von Texten und Ergebnissen #Wert gekommen, ansonsten können wir noch bis Weihnachten raten, woran das liegt

Ach ja, vielleicht solltest du noch mit angeben, welche Version von Oo du einsetzt.
@bockenheimer
Wesentlich übersichtlicher als meine Formel, dafür aber mit vielen Hilfsspalte, die nicht in jede Datei eingefügt werden können.
Mal sehen, wie sich mfeske dazu äußert.
Gruß
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Re: wenn dann
Hallo paljass und Bockenheimer,
vielenn Dank fürEure Hilfe. Ja ich hätte mal gleich die Datei anhängen sollen
Ja, die Hilfsspaklten sind so eine Sache, ich würde Sie gerne vermeiden. Iim Anhang die Musterdatei. Gelobe Besserung und werde diese beim nächstenmal gleich hochladen.
Ich verwende LibreOffice 3.5.7.2
Gruß
Micha
vielenn Dank fürEure Hilfe. Ja ich hätte mal gleich die Datei anhängen sollen

Ja, die Hilfsspaklten sind so eine Sache, ich würde Sie gerne vermeiden. Iim Anhang die Musterdatei. Gelobe Besserung und werde diese beim nächstenmal gleich hochladen.
Ich verwende LibreOffice 3.5.7.2
Gruß
Micha
- Dateianhänge
-
- mannschaftsliste_forum.ods
- (16.02 KiB) 174-mal heruntergeladen
Re: wenn dann
Hallo mfeske,
so kann man Leute auch beschäftigen
Erst heißt es, in den Zellen steht sowas wie
Der Unterschied ist zwar nur ";SG", aber das Semikolon hat bei der Formelerstellung auch bei Bockenheimer eine wesentliche Rolle gespielt.
Also beim nächsten Mal gibst du uns gleich die richtigen Daten, ansonsten hast du die Leute hier schnell verärgert.
So, jetzt zur Frage, warum meine Formel #WERT ergibt.
Zum einen wegen des eben schon angeforderten Semikolons. Zum anderen steht in der Formel Teil(CJ2...). Damit wird doch auf die Zelle CJ2 des aktuellen Tabellenblattes zugegriffen; deine Daten stehen auf auf einem anderen Tabellenblatt, daher muss dieses dann auch mit angegeben werden. Es muss also heißen =Teil(outlook_import.CJ2....).
Aber selbst, wenn man nunalle CJ2 durch outlook_import.CJ2 ersetzt funktioniert die Formel ja wegen des fehlenden Semikolons nicht.
Neu lautet die Formel jetzt:
paljass
so kann man Leute auch beschäftigen


Erst heißt es, in den Zellen steht sowas wie
, dann kommt auf Anfrage eine Beispieltabelle und da steht dannMeine Kontakte;Gruppe E3;SG
.Meine Kontakte;Handball E1
Der Unterschied ist zwar nur ";SG", aber das Semikolon hat bei der Formelerstellung auch bei Bockenheimer eine wesentliche Rolle gespielt.
Also beim nächsten Mal gibst du uns gleich die richtigen Daten, ansonsten hast du die Leute hier schnell verärgert.
So, jetzt zur Frage, warum meine Formel #WERT ergibt.
Zum einen wegen des eben schon angeforderten Semikolons. Zum anderen steht in der Formel Teil(CJ2...). Damit wird doch auf die Zelle CJ2 des aktuellen Tabellenblattes zugegriffen; deine Daten stehen auf auf einem anderen Tabellenblatt, daher muss dieses dann auch mit angegeben werden. Es muss also heißen =Teil(outlook_import.CJ2....).
Aber selbst, wenn man nunalle CJ2 durch outlook_import.CJ2 ersetzt funktioniert die Formel ja wegen des fehlenden Semikolons nicht.
Neu lautet die Formel jetzt:
Code: Alles auswählen
=TEIL(outlook_import.CJ2;SUCHEN("E[0-9]{1,2}";outlook_import.CJ2);WENN(ISTFEHLER(SUCHEN(";";outlook_import.CJ2;16));LÄNGE(outlook_import.CJ2);SUCHEN(";";outlook_import.CJ2;16)-1)-SUCHEN("E[0-9]";outlook_import.CJ2)+1)&WENN(ISTFEHLER(SUCHEN("E[0-9]{1,2}";outlook_import.CJ2;SUCHEN("E[0-9]{1,2}";outlook_import.CJ2)+4));"";"/"&TEIL(outlook_import.CJ2;SUCHEN("E[0-9]{1,2}";outlook_import.CJ2;SUCHEN("E[0-9]{1,2}";outlook_import.CJ2)+4);LÄNGE(outlook_import.CJ2)-SUCHEN("E[0-9]{1,2}";outlook_import.CJ2;SUCHEN("E[0-9]{1,2}";outlook_import.CJ2)+4)+1))
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
-
- ***
- Beiträge: 61
- Registriert: Mi, 11.07.2012 22:08
Re: wenn dann
Hallo,
eigentlich ist das Problem ja jetzt in trockenen Tüchern. Aber ich biete dir, mfeske, hier noch die Option "zurück auf Los" an!
Ich glaube nämlich mehr und mehr, dass deine unbearbeiteten Rohdaten aus einer CSV-Datei stammen, bei der das Semikolon das Trennzeichen ist. Eine solche Datei lädt man in oo-calc durch Auswahl 'Einfügen' > 'Tabelle aus Datei' und unter Angabe des Trennzeichens in ein neues Tabellenblatt. Das Ergebnis wird sein, das "Meine Kontakte" in einer Spalte stehen, "Gruppe E1" oder "Handball E1" in einer zweiten Spalte und ggf. "SG" in einer dritten Spalte. Gibt es mehrere "Gruppen"-Einträge sind es entsprechend mehr Spalten. Das Extrahieren von "E1" etc. mit der TEIL()-Funktion ist dann aber ein Kinderspiel, mit oder ohne RegEx-Ausdrücken. Prüfe doch mal, ob das nicht insgesamt einfacher ist.
Ciao
Bockenheimer
P. S.
1. meine Version: WIN XP SP3, AOO 4.0.1 - ist hier aber ohne Belang
2. Der Titel dieses Threads ist nicht besonders treffend gewählt, geht es doch eigentlich um die Bearbeitung/Extraktion von String-Ausdrücken. Kann man den noch ändern?
eigentlich ist das Problem ja jetzt in trockenen Tüchern. Aber ich biete dir, mfeske, hier noch die Option "zurück auf Los" an!
Ich glaube nämlich mehr und mehr, dass deine unbearbeiteten Rohdaten aus einer CSV-Datei stammen, bei der das Semikolon das Trennzeichen ist. Eine solche Datei lädt man in oo-calc durch Auswahl 'Einfügen' > 'Tabelle aus Datei' und unter Angabe des Trennzeichens in ein neues Tabellenblatt. Das Ergebnis wird sein, das "Meine Kontakte" in einer Spalte stehen, "Gruppe E1" oder "Handball E1" in einer zweiten Spalte und ggf. "SG" in einer dritten Spalte. Gibt es mehrere "Gruppen"-Einträge sind es entsprechend mehr Spalten. Das Extrahieren von "E1" etc. mit der TEIL()-Funktion ist dann aber ein Kinderspiel, mit oder ohne RegEx-Ausdrücken. Prüfe doch mal, ob das nicht insgesamt einfacher ist.
Ciao
Bockenheimer
P. S.
1. meine Version: WIN XP SP3, AOO 4.0.1 - ist hier aber ohne Belang
2. Der Titel dieses Threads ist nicht besonders treffend gewählt, geht es doch eigentlich um die Bearbeitung/Extraktion von String-Ausdrücken. Kann man den noch ändern?
Re: wenn dann Bearbeitung/Extraktion von String-Ausdrücken
Hallo Bockenheimer und paljass,
vielen Dank für Eure Unterstützung.
@Bockenheimer zurück auf Los ist immer gut
Richtig ist, das die Daten aus einer CSV kommen, die ich wie Du beschrieben hast auch importiere, auch wenn es mir lieber wäre eine Verknüpfung zu einem festen Dateinamen anzulegen, damit ich nicht immer importieren muss und die Tabelle umbenennen muss. Aber die Felder sind dort durch Komma getrennt und nicht durch Semikolon, deshalb bleiben die Gruppen alle in einem Feld.
@paljass ja das nächstemal gibt es gleich die Musterdatei, will niemanden verärgern. In dem Fall dachte ich nur, ich könnte die Sachen auf das wesentliche reduzieren und mir dann den Rest selbst zusammenwurschteln. Wie gesagt, beim nächsten mal gibt es gleich die Musterdatei.
Das mit outlook_import. hatte ich immer schon selber ergänzt, aber das problem war ja das Semikolon. Deine Formel hilft mir schon weiter, auch wenn ich da wieder rumwurschteln muss, da ja das Ziel sein soll E1 bzw E2 bzw E2/E3 aber immer ohne SG oder andere Gruppen sie aufgeführt werden. Vermutlich muss ich doch irgendein Hilfsfeld bemühen in dem alles andere eliminiert wird ?!
Auweia, die Reihnfloge des Auftetens spielt dann wohl auch noch eine Rolle. Mußte an den Google Kontakten etwas ändern und deshalb steht jetzt zum Beispiel Meine Kontakte;SG;Handball E1 dort
was dann natürlich nciht mehr funktioniert.
Gruß
Micha
vielen Dank für Eure Unterstützung.
@Bockenheimer zurück auf Los ist immer gut

Richtig ist, das die Daten aus einer CSV kommen, die ich wie Du beschrieben hast auch importiere, auch wenn es mir lieber wäre eine Verknüpfung zu einem festen Dateinamen anzulegen, damit ich nicht immer importieren muss und die Tabelle umbenennen muss. Aber die Felder sind dort durch Komma getrennt und nicht durch Semikolon, deshalb bleiben die Gruppen alle in einem Feld.
@paljass ja das nächstemal gibt es gleich die Musterdatei, will niemanden verärgern. In dem Fall dachte ich nur, ich könnte die Sachen auf das wesentliche reduzieren und mir dann den Rest selbst zusammenwurschteln. Wie gesagt, beim nächsten mal gibt es gleich die Musterdatei.
Das mit outlook_import. hatte ich immer schon selber ergänzt, aber das problem war ja das Semikolon. Deine Formel hilft mir schon weiter, auch wenn ich da wieder rumwurschteln muss, da ja das Ziel sein soll E1 bzw E2 bzw E2/E3 aber immer ohne SG oder andere Gruppen sie aufgeführt werden. Vermutlich muss ich doch irgendein Hilfsfeld bemühen in dem alles andere eliminiert wird ?!
Auweia, die Reihnfloge des Auftetens spielt dann wohl auch noch eine Rolle. Mußte an den Google Kontakten etwas ändern und deshalb steht jetzt zum Beispiel Meine Kontakte;SG;Handball E1 dort

Gruß
Micha