Ordnerpfade in Excel aufteilen, um den endgültigen Ordner zurückzugeben

6011
BobJim

Ich habe eine einzige Spalte in Excel, die einen Datei- und Ordnerpfad hat. zB C: \ 1_Ordner \ 2_Ordner \ 3_Ordner \ meine_Datei.txt

Ich möchte den Namen des endgültigen Ordners extrahieren und in eine neue Spalte einfügen. In diesem Beispiel 3_Folder.

Kann dies mit einer Formel anstelle von VBA erreicht werden?

Bearbeiten: Die Anzahl der verschachtelten Ordner kann variieren.

3

3 Antworten auf die Frage

2
Todd

Sie können die Textfunktionen FIND und MID verwenden. Dies funktioniert für eine variable Anzahl von Ordnern

Pfadtext C:\1_Folder\2_Folder\3_Folder\my_file.txt

Position des vorletzten Schrägstrichs (B1) suchen: FIND("|",SUBSTITUTE(A1,"\","|",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))-1))

Position des letzten Schrägstrichs (C1) suchen: FIND("\",A1,B1+1)

Holen Sie sich die Charaktere zwischen dem vorletzten und dem letzten Schrägstrich: MID(A1,B1+1,(C1-B1)-1)

Das scheint mit maximal drei verschachtelten Ordnern zu funktionieren. In einigen Fällen habe ich 7 verschachtelte Ordner. In diesen Fällen funktionieren diese Formeln nicht? BobJim vor 8 Jahren 0
Ich habe dies nur an Ihrem Beispiel geschrieben. Ich habe meine Antwort für eine variable Anzahl von Ordnern geändert. Todd vor 8 Jahren 0
Vielen Dank, dass Sie Ihre Formel aktualisiert haben. Warum beziehen sich die Formeln für die Zellen C1 und D1 auf C15? BobJim vor 8 Jahren 0
Tippfehler behoben. Todd vor 8 Jahren 1
2
Máté Juhász

Ich benutze regex addin für solche Aufgaben mit regulärem Ausdruck:

=RegExReplace(A1,".*\\([^\\]*)\\[^\\]*","$1")- extrahiert den Teilstring vor dem letzten \(praktisch der letzte Ordner, den Sie benötigen)

Das ist ziemlich glatt. Wäre schön, wenn Excel reguläre Ausdrücke nativ unterstützt. Todd vor 8 Jahren 0
0
GuitarPicker

Diese Antwort basiert auf der akzeptierten Antwort auf eine sehr ähnliche Frage .

Wenn Sie es in einer Formel haben möchten, können Sie Folgendes verwenden:

=RIGHT(A6,LEN(A6)+1-FIND("@",SUBSTITUTE("\"&A6,"\","@",(LEN(A6)-LEN(SUBSTITUTE("\"&A6,"\",""))+1)))) 

... die im Wesentlichen die Anzahl der Backslashes berechnet, indem alle entfernt und Längen verglichen werden. Er verwendet diese Zahl, um das letzte Vorkommen durch ein "@" zu ersetzen, und kehrt dann zurück und sucht nach der Position des "@", das in die RECHTE Formel eingegeben wird, um den Teilstring hinter dem letzten Backslash zu erfassen. Ein zusätzlicher Backslash und ein "+1" werden hinzugefügt, um den Fall von Null Backslashes in der Quelle zu behandeln. Wenn keine umgekehrten Schrägstriche vorhanden sind, wird die ursprüngliche Zeichenfolge zurückgegeben.

Wenn Ihre Daten bereits "@" enthalten, müssen Sie ein anderes Substitutionszeichen auswählen.