Seite 1 von 1
wenn dann Bearbeitung/Extraktion von String-Ausdrücken
Verfasst: So, 17.03.2013 14:05
von mfeske
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
Re: wenn dann
Verfasst: So, 17.03.2013 17:26
von paljass
Re: wenn dann
Verfasst: So, 17.03.2013 17:34
von mfeske
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
Re: wenn dann
Verfasst: Mo, 18.03.2013 06:12
von paljass
Moin Micha,
Wenn die zweite Gruppe auch vorkommt wird es leider ignoriert
Wenn die zweite Gruppe wo vorkommt?
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)
Gruß
paljass
Re: wenn dann
Verfasst: Do, 29.08.2013 12:34
von mfeske
Hallo paljass,
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)
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
Re: wenn dann
Verfasst: Do, 29.08.2013 14:28
von paljass
Hallo Micha,
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))
Gruß
paljass
Re: wenn dann
Verfasst: Do, 29.08.2013 14:55
von mfeske
Leider nein

--> #WERT! <--
Re: wenn dann
Verfasst: Do, 29.08.2013 15:01
von paljass
Hast du unter Extras - Einstellungen (Optionen) - OoCalc - Berechnen regüläre Ausdrücke in Formeln zulassen eingeschaltet?
Re: wenn dann
Verfasst: Do, 29.08.2013 15:10
von mfeske
Biedes probiert ein und aus

ohne Änderung.
Re: wenn dann
Verfasst: Fr, 30.08.2013 00:26
von Bockenheimer
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.
Re: wenn dann
Verfasst: Fr, 30.08.2013 06:14
von paljass
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
Re: wenn dann
Verfasst: Fr, 30.08.2013 09:32
von mfeske
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
Re: wenn dann
Verfasst: Fr, 30.08.2013 11:29
von paljass
Hallo mfeske,
so kann man Leute auch beschäftigen
Erst heißt es, in den Zellen steht sowas wie
Meine Kontakte;Gruppe E3;SG
, dann kommt auf Anfrage eine Beispieltabelle und da steht dann
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))
paljass
Re: wenn dann
Verfasst: Fr, 30.08.2013 17:20
von Bockenheimer
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?
Re: wenn dann Bearbeitung/Extraktion von String-Ausdrücken
Verfasst: Di, 03.09.2013 11:08
von mfeske
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