728195

Excel 2000-2003: Zeichenfolge von rechts suchen

20.11.2006 | 10:52 Uhr |

Sie möchten eine Möglichkeit haben, in einer längeren Zeichenfolge nach einer anderen Zeichenfolge zu suchen – allerdings von rechts nach links. Eine solche Funktion benötigen Sie etwa, um aus einer kompletten Pfadangabe den Dateinamen herauszufiltern. Der Dateiname beginnt nach dem letzten Backslash "\" – das lässt sich bequemer vom Ende her ermitteln. Wir zeigen Ihnen, wie Sie dieses Problem lösen können.

Anforderung:

Fortgeschrittener

Zeitaufwand:

Mittel

Problem:

Sie möchten eine Möglichkeit haben, in einer längeren Zeichenfolge nach einer anderen Zeichenfolge zu suchen – allerdings von rechts nach links. Eine solche Funktion benötigen Sie etwa, um aus einer kompletten Pfadangabe den Dateinamen herauszufiltern. Der Dateiname beginnt nach dem letzten Backslash „\“ – das lässt sich bequemer vom Ende her ermitteln.

Lösung:

Am besten verwenden Sie eine benutzerdefinierte Funktion. Excel besitzt zwar keine eigene Option für diesen Zweck, VBA stellt aber eine Funktion mit der entsprechenden Suche zur Verfügung. Deshalb reicht dafür eine Zeile Code. Importieren Sie dazu die Datei :pcwFindenInv.BAS im Visual-Basic-Editor (<Alt>-<F11>) über „Datei, Datei importieren“. Dabei müssen Sie wissen, dass solche benutzerdefinierten Funktionen nur nutzbar sind, wenn die Arbeitsmappe geöffnet ist, die deren Code enthält. Nun stehen unsere beiden benutzerdefinierten Funktionen wie die Excel-Standardoptionen im Funktionsassistenten zur Verfügung.

Diesen starten Sie über „Einfügen, Funktion, Benutzerdefiniert“. FindenInv liefert die Position des Suchstrings im durchsuchten Text. Die Syntax entspricht jener der Standardfunkion „Finden“ – außer dass nicht nach dem ersten, sondern nach dem letzten Vorkommen des Suchstrings gesucht wird. Das Ergebnis ist der Wert für die Position des Suchtextes.

Achtung: Die Funktion „FindenInv“ sucht zwar von rechts, gibt die Position aber wie „Finden“ von links an. Wenn Sie also etwa

=findeninv(„\“;“c:\ordner\test.doc“)

eingeben, lautet das Ergebnis „10“. Um daraus den bloßen Dateinamen zu ermitteln, müssen Sie die Funktion noch mit den vordefinierten Funktionen „Rechts“ und „Länge“ verknüpfen. Um das zu vereinfachen, bieten wir die zweite benutzerdefinierte Funktion mit dem Namen „StringVonRechts“ an. Sie erwartet dieselben Parameter wie „FindenInv“, übergibt aber als Ergebnis bereits die Zeichenfolge ab dem letzten Vorkommen des Suchtextes – hier also „Test.doc“.

0 Kommentare zu diesem Artikel
728195