letztes mehrfach vorkommende Zeichen finden

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

ognih
Beiträge: 9
Registriert: So, 27.05.2007 17:03
Wohnort: Berlin

letztes mehrfach vorkommende Zeichen finden

Beitrag von ognih »

Guten Tag,

aus einer Liste aller relevanten Verzeichnisse (die Anzahl der Ordner ist unterschiedlich) wünsche ich den Namen des letzten Ordners.

Beispiel:
"C:\a1\a2\a3\a4\a5\a6\ordner 1"
"C:\a1\a2\ordnerB zwei"

Von der Länge der Zeichenkette die letzte Fundstelle Backslash "\" abziehen.
Dann erhalte ich die Anzahl der Stellen, die ich mit der "RECHTS"-Funktion bedienen muss, um den Orndernamen
("ordner 1" bzw. irgend ein anderer Ordner mit nicht vergleichbaren Namen incl. möglicher Leerzeichen) zu erhalten.

Ich freue mich auf eine Antwort
Ingo
Bockenheimer
***
Beiträge: 61
Registriert: Mi, 11.07.2012 22:08

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von Bockenheimer »

Hallo ognih,

ich fasse deine Aufgabe mit meinen Worten zusammen: Du hast eine Zeichenfolge mit diversen Backslashs und suchst die Position des letzten dieser Backslashs, um den Rest der Zeichenkette zu verarbeiten. Mit regulären Ausdrücken sollte das machbar sein.

So ähnliche bzw. gleichartige Fragestellungen gab es im August/September hier im Forum mehrfach. Ich suche die Links raus und füge sie dann hier an.

Ich finde nur noch diese Stelle: viewtopic.php?f=2&t=61398. Es gab noch einen zweiten Thread bei dem das Trennzeichen ein Bindestrich war. Ich glaube, die dort genannte Lösung war eleganter, aber was nutzt's, wenn man es nicht wiederfindet.

Gruß
Bockenheimer
paljass
******
Beiträge: 802
Registriert: Do, 25.10.2012 07:25

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von paljass »

Hi,
vor langer, langer Zeit wurde hier mal ein ähnliches Problem in Bezug auf den Dateinamen gelöst. Die Lösung hab ich mir notiert und hieraus dies hier zusammengebastelt:

Code: Alles auswählen

=RECHTS(A1;LÄNGE(A1)-SUCHEN("\\[^\\]*$";A1))
Reguläre Ausdrücke in Formeln müssen zugelassen werden.

Viel Erfolg
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
ognih
Beiträge: 9
Registriert: So, 27.05.2007 17:03
Wohnort: Berlin

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von ognih »

Hallo Bockenheimer,

verzeih, ich habe die Formel aus Deinem Beispiel nicht probiert.

Hallo Paljass

ist ja dufte + funktioniert.
Kannst Du mir (evtl. auch anderen) bitte das in langschrift erklären, damit ich mit dem Verständnis dann evtl auch zwischendurch einige Ordner auslesen kann.
Suchen in text A1 " \\[^\\]*$" erschließt sich mir nicht:
\\ weil regulär [alles was nicht \\ ist]
* davon keines oder mehr
$ am Absatzende ( den Absatz vermisse ich, ansonsten denke ich mir das eher als dass ich was erklären kann)

und dann; fehlt mir die Qualität, hier noch zu sagen, dass es der ordner zwischen dem ersten + zweiten vorkommen oder dem dritten + vierten vorkommen suchen soll.

Fg Ingo
paljass
******
Beiträge: 802
Registriert: Do, 25.10.2012 07:25

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von paljass »

Hi,
Kannst Du mir (evtl. auch anderen) bitte das in langschrift erklären,
Nee, nicht umsonst hatte ich ja geschrieben, dass ich das nur abgeschrieben :roll: und ein wenig umgebaut habe. Reguläre Ausdrücke und ich sind noch nicht wirklich Freunde geworden, obwohl man damit ne Menge erreichen kann, wenn man weiß wie man sie anwenden muss.

Die doppelten Backslashes erklären sich dadurch, dass du einen Bachslash suchst, dieser aber als regulärer Ausdruck gilt; also muss er durch einen weiteren Backslash "maskiert" werden. Weiteres dazu in der Hilfe zu regulären Ausdrücken und etwas :lol: ausführlicher hier.

Gruß
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von clag »

Hallo Ingo

du bist doch schon ganz dicht dran
Suche einen String "" bestehend aus einem backslash \\ gefolgt von irgend etwas außer einen Backslash [^\\] und das am Ende des Absatzes/durchsuchten String *$
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
ognih
Beiträge: 9
Registriert: So, 27.05.2007 17:03
Wohnort: Berlin

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von ognih »

Dank an alle

@paljass ,
der Link verspricht viel, das Verstehen wird seine (oder besser - meine -) Zeit brauchen.
(Ick weess ja noch nich ma, wie ickn schmaileeh ranhängn tu)

@clag
dann sucht der Befehl also so lange, bis er das letzte Vorkommen des Suchmuster erreicht hat.

Duften Erntedank
Fg Ingo
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von clag »

Hi
ja, aber =SUCHEN()" gibt da nur die Position des Gesuchten im String aus
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von lorbass »

ognih hat geschrieben:Kannst Du mir (evtl. auch anderen) bitte das in langschrift erklären,
Falls es noch jemanden interessiert:
clag hat geschrieben:Suche einen String "" bestend aus eienm backslash \\ gefolgt von irgend etwas außer einen Backslash [^\\] und das am Ende des Absatzes/String *$
Ziemlich gut, aber doch noch „a bisserl“ durcheinander, gell?
  1. »Suche einen String ""« ist richtig, aber die Anführungszeichen »""« haben mit dem gesuchten String (Zeichenkette) nix zu tun, denn Reguläre Ausdrücke (RegEx) arbeiten immer mit Strings.
    Sie selbst sind aber auch Strings, die, als Literale verwendet, durch »""« eingeschlossen werden. Um eben diese »""« handelt es sich in der SUCHEN-Funktion.
  2. »bestend aus einem backslash \\« ist richtig; die Maskierung hat paljass beschrieben.
  3. »gefolgt von irgend etwas außer einen Backslash [^\\] und das am Ende des Absatzes/String *$« trifft's nicht so ganz, weil der Asterisk »*« zum ausgeschlossenen Backslash gehört, nicht zum Zeilenende.
    Treffender ist »gefolgt von beliebig vielen beliebigen Zeichen mit Ausnahme des Backslash [^\\]*«. Das Dollarzeichen »$« ist hier überflüssig, weil ja eh schon beliebig viele Zeichen vorkommen dürfen und jedes zusätzliche Zeichen auch wieder von der Maßgabe „beliebig viele Zeichen“ abgedeckt wäre.
    Allerdings ist zu überlegen, ob der Asterisk »*« hier wirklich gewollt ist, da die Anzahl der dem (ersten) Backslash folgenden Zeichen auch 0 sein darf, der String also nach diesem Backslash endet und der Folge-String also leer wäre. Wenn der leere String nicht erlaubt ist, muss der Asterisk »*« durch das Pluszeichen »+« oder detailliertere numerische Angaben ersetzt werden, wie z.B. {1,} oder {3,8}.

Gruß
lorbass
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von clag »

ha ha ha

man darf sich aber auch wirklich keinen Schnitzer leisten,
das Geschrieben wird sonst sofort zerfleddert :roll:

aber das ist auch gut so, das ist was ich an diesem Forum so mag :)
das garantiert eine exzellente Qualität.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: letztes mehrfach vorkommende Zeichen finden

Beitrag von lorbass »

clag hat geschrieben:man darf sich aber auch wirklich keinen Schnitzer leisten,
… weil schon die Änderung ein einzigen Zeichens oder auch nur Verschiebung eines Zeichens um eine Position im RegEx das Ergebnis total auf den Kopf stellt oder anderweitig unbrauchbar macht.

's ist halt ein kleines Sensibelchen ;)

Gruß
lorbass
Antworten