Office: Datei Name aus Textstring extraieren

Helfe beim Thema Datei Name aus Textstring extraieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, ich habe mal wieder ein kleineres Problem bei dem Excel keine mit bekannte Formellösung bereitstellt. Folgendes Probem: Ich habe eine... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Ratzmer, 30. September 2013.

  1. Ratzmer Erfahrener User

    Datei Name aus Textstring extraieren


    Hallo Forum,

    ich habe mal wieder ein kleineres Problem bei dem Excel keine mit bekannte Formellösung bereitstellt. Folgendes Probem:
    Ich habe eine Liste von Dateinamen mit Pfaden unterschiedlicher Länge aus dem der nur der Dateiname herausgelöst werden soll.

    Die Namen mit Pfad sehen z.b. so aus:

    C:\ABC\ABCD\ABCDEF.sfd\Name.pdf
    C:\ABCE\ABCD\ABCD\Name.xls
    D:\ABC\ABCD\ABCDEF.sfd\ABSC\Name.doc
    E:\ABC\ABCD\ABCDEF.sfd\ABSC\bel.Name.doc

    rauskommen soll: Name.pdf usw.

    Ich denke es ist der einfachste Weg den String Rückwärts nach der Position des Slash (\) zu suchen und den text per (Right(Position;) auszugeben. Ich habe das erstmal mit stufenweise zerlegen der Zeichekette gelöst, das ist aber, da ich nicht weiß wie tief geschachtelt wurde unzuverlässig.

    Vielen Dank schon mal für die Hilfe.
    Gruß
    Bernd
     
  2. schatzi Super-Moderator
    Hallo!

    =TEIL(A1;VERWEIS(9^9;FINDEN("\";A1;ZEILE(1:999)))+1;999)

    Die 999 ist dabei die maximale Länge deiner Pfadangaben. Sollte also deine längste vorkommende Pfadangabe immer deutlich kürzer sein, dann kannst du diesen Wert auch verringern und die Formel dadurch beschleunigen.
     
  3. Ratzmer Erfahrener User
    Vielen Dank,

    auf den ersten Blick ist die Funktion brauchbar. Nach ausprobieren ist es aber mit einem merkwürdigen Effekt behaftet.
    So sieht jetzt die Formel in meinem englische Excel aus: =MID(A2;LOOKUP(9^9;FIND("\";A2;ROW(1:999)))+1;999)
    Beim Runterkopieren der Formel zählt sich im Zeilenbefehl die Zeile hoch. Wenn ich die Formel runterkopiere funktioniert, etwa ab Zeile 103 die Formel sieht an der stelle dann so aus: =MID(String;LOOKUP(9^9;FIND("\";A109;ROW(108:1106)))+1;999).
    So richtig begreife ich die Funktion nicht. Im ersten Teil des Mid Befehles kann ich noch den Namen der Spalte eingeben. Im Find Bereich geht nur der Zellenname.

    Gruß
    Bernd

    Windows XP, XL2010UK
     
  4. schatzi Super-Moderator

    Datei Name aus Textstring extraieren

    Hallo!

    Wenn du die Formel runterziehen möchtest, dann musst du die Zeilenbezüge fixieren!

    =MID(A2;LOOKUP(9^9;FIND("\";A2;ROW($1:$999)))+1;999)
     
  5. Ratzmer Erfahrener User
    High,
    so funktioniert es perfekt. Dennoch so richtig erschließ sich mir die Funktion noch nicht.
    Vielen Dank.
     
  6. schatzi Super-Moderator
    Hallo!

    Diese Formel ist in der Tat ziemlich "schräg"...

    Der Teil ROW($1:$999) spannt die Matrix {1;2;3;4;...;997;998;999} auf.

    Daraus ergibt sich für den FIND-Teil
    FIND("\";A$1;{1;2;3;4;...;997;998;999})

    Es wird also der Backslash in A1 gesucht, wobei aber das erste Zeichen, ab dem gesucht werden soll, immer um 1 weiter nach rechts wandert. Die folgende Tabelle verdeutlicht das vielleicht:

    AB
    1C:\Pfad1\Pfad2\datei.xyz3
    2 3
    3 3
    4 9
    5 9
    6 9
    7 9
    8 9
    9 9
    10 15
    11 15
    12 15
    13 15
    14 15
    15 15
    16 #WERT!
    17 #WERT!
    18 #WERT!
    19 usw.
    ZelleFormel
    B1=FINDEN("\";A$1;ZEILE(A1))
    B2=FINDEN("\";A$1;ZEILE(A2))
    B3=FINDEN("\";A$1;ZEILE(A3))
    B4=FINDEN("\";A$1;ZEILE(A4))
    B5=FINDEN("\";A$1;ZEILE(A5))
    B6=FINDEN("\";A$1;ZEILE(A6))
    B7=FINDEN("\";A$1;ZEILE(A7))
    B8=FINDEN("\";A$1;ZEILE(A8))
    B9=FINDEN("\";A$1;ZEILE(A9))
    B10=FINDEN("\";A$1;ZEILE(A10))
    B11=FINDEN("\";A$1;ZEILE(A11))
    B12=FINDEN("\";A$1;ZEILE(A12))
    B13=FINDEN("\";A$1;ZEILE(A13))
    B14=FINDEN("\";A$1;ZEILE(A14))
    B15=FINDEN("\";A$1;ZEILE(A15))
    B16=FINDEN("\";A$1;ZEILE(A16))
    B17=FINDEN("\";A$1;ZEILE(A17))
    B18=FINDEN("\";A$1;ZEILE(A18))

    Die Backslashes befinden sich an den Positionen 3, 9 und 15.
    In Zeile 4 wird aber erst ab dem 4. Zeichen gesucht, daher wird der Backslash auf Position 3 ab hier nicht mehr gefunden.
    In Zeile 10 wird erst ab dem 10. Zeichen gesucht, daher wird der Backslash auf Position 9 ab hier nicht mehr gefunden.
    In Zeile 16 wird erst ab dem 16. Zeichen gesucht, daher wird der Backslash ab hier überhaupt nicht mehr gefunden.

    Es ergibt sich also eine Matrix {3;3;3;9;9;9;9;9;9;15;15;15;15;15;15;#WERT!;...}, bzw.

    LOOKUP(9^9;{3;3;3;9;9;9;9;9;9;15;15;15;15;15;15;#WERT!;...})

    In dieser Matrix sucht der LOOKUP nun nach dem utopisch großen Wert 9^9 (=387420489), der natürlich nie gefunden werden wird.
    Netterweise ignoriert der LOOKUP aber die Fehlerwerte und gibt statt 9^9 den letzten Zahl-Wert der Matrix zurück, also 15 (die Position des letzten Backslashes).

    Damit bleibt für die MID-Funktion folgendes übrig:
    =MID(A1;15+1;999)

    Von der Position des letzten Backslashes wird also noch ein weiteres Zeichen weiter nach rechts gewandert (denn diesen Backslash brauchst du ja nicht in deinem Ergebnis), und von dort der Rest der Zelle ausgegeben. Dieser Teil ist natürlich keine 999 Zeichen lang, aber das nimmt Excel gottseidank nicht so genau...
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
  7. Ratzmer Erfahrener User
    Super,

    vielen Dank für die Erläuterung. Aus sowas kommst "du" auch als fortgeschrittender Exceluser nicht alleine. Ich hatte die Funktion Spaltenweise aufgebaut, wobei immer die Position des Slash gesucht habe: in D2- =iIFERROR(FIND("\";String;1);0), dann den String geschnitten: =MID(String;D2+1;LEN(String)), und in die nächste Spalte übertragen und dann die Pozedure wiederholt. Da wir die Verzeichnistiefe auf maximal 10 festgelegt hatten ging das auch. Das war trotzdem nervig weil ich soviele Spalten benötigt. So ist die Funktion schon opimal.

    Vielen Dank nochmal.

    Gruß Bernd
     
    Ratzmer, 1. Oktober 2013
    #7
  8. hiob
    hiob Erfahrener User

    Datei Name aus Textstring extraieren

    hi, alternativ kannst du auch ff. benutzen..:

    =MID(A1,SEARCH("#",SUBSTITUTE(A1,"\","#",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,999)
     
  9. Ratzmer Erfahrener User
    hallo hiob,

    Vielen Dank für diese Formel, hatte ich erst später gesehen. Diese Formel gefällt mir noch besser als die vom Schatzi, da der Zellbezug über "Name" funktioniert. Vielen Dank dafür.
     
    Ratzmer, 10. Oktober 2013
    #9
  10. schatzi Super-Moderator
    Hallo!

    Ja, dem stimme ich zu! Danke hiob für diese Ergänzung!
     
Thema:

Datei Name aus Textstring extraieren

Die Seite wird geladen...
  1. Datei Name aus Textstring extraieren - Similar Threads - Datei Name Textstring

  2. Verweis auf andere Datei aus Formel (=Name aus Zelle) möglich?

    in Microsoft Excel Hilfe
    Verweis auf andere Datei aus Formel (=Name aus Zelle) möglich?: Guten Morgen, liebe Excel-Profis, ich möchte eine komplexere Änderung in unseren Vorlagen umsetzen. Die Situation sieht, grob geschildert, wie folgt aus: Jährlich wird pro Kunde (A, B, C, D, E)...
  3. Daten Kopieren aus einer zweiten Datei

    in Microsoft Excel Hilfe
    Daten Kopieren aus einer zweiten Datei: Ich weiss nicht ob dies Hier schon existiert. Leider habe ich noch nichts gefunden. Ich habe eine Excel Datei (Kunden Angaben) und eine zweite Datei (Mappe1). Wenn beide geöffnet sind kann ich aus...
  4. datei öffnen mit unvollständigen Namen

    in Microsoft Excel Hilfe
    datei öffnen mit unvollständigen Namen: Hallo Leute !!! Habe folgendes Problem : muß aus einer Liste der Rechnungsnummer die jeweilige Rechnungsdatei öffnen. der Name dieser Datei besteht aus Rechnungsnummer,Kundennamen und Datum. wie...
  5. Einfügen des aktuellen Excel-Datei namens,-Pfads oder-Arbeitsblatts in eine Zelle

    in Microsoft Excel Tutorials
    Einfügen des aktuellen Excel-Datei namens,-Pfads oder-Arbeitsblatts in eine Zelle: Einfügen des aktuellen Excel-Datei namens,-Pfads oder-Arbeitsblatts in eine Zelle Excel für Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Excel 2010...
  6. Datei speichern, vorhandene Datei öffnen und unter neuem Namen speichern

    in Microsoft Excel Hilfe
    Datei speichern, vorhandene Datei öffnen und unter neuem Namen speichern: Hallo zusammen Ich habe folgendes versucht: Die aktuelle Datei speichern. Der Name der Datei befindet sich in der Zelle G2. Eine Datei öffnen (aus Pfad) und diese Datei unter neuem Namen...
  7. Tabelle in neuer Datei als xlsm speichern und Name einfügen

    in Microsoft Excel Hilfe
    Tabelle in neuer Datei als xlsm speichern und Name einfügen: Hallo Leute, ich brauche schon wieder mal eure Hilfe. Es gibt ja bereits viele Beiträge zu diesem Thema, trotzdem habe ich nicht wirklich etwas passendes gefunden. Ich möchte per Makro ein...
  8. Dropdownliste mit Namen aus ext. Datei fullen?

    in Microsoft Word Hilfe
    Dropdownliste mit Namen aus ext. Datei fullen?: Hallo, wie ich in einem Word Formular eine Dropdownliste einfüge und diese mit Werten/ Namen fülle, weiß ich. Meine Frage: ist es möglich, dass die Dropdownliste mit Namen aus einer anderen Datei...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden