Excel: So entfernen Sie mehrere Dateipfade aus einem Text

Excel: So entfernen Sie mehrere Dateipfade aus einem Text

Ich habe Tausende von Zeilen in einer Tabelle, um auf ein Artikelbild zu verweisen, und ich muss den Dateipfad entfernen, aber einige Felder haben mehrere Bildverweise in einer Zelle. Hier ein komplexes Beispiel:

/2/0/2099-1.jpg,/2/0/2099-2.jpg,/2/0/2099-3.jpg,/m/a/männliche_kopflose_Schaufensterpuppe_-_mit_verschränkten_Armen.jpg

muss so aussehen:

2099-1.jpg,2099-2.jpg,2099-3.jpg,männliche_kopflose_Schaufensterpuppe_-_mit_verschränkten_Armen.jpg

hat aber nur einen Bild-Ref, zB:

/3/1/31-222-007.jpg,

Die Formel:

> =MID(AA2,FIND("*",SUBSTITUTE(AA2,"/","*",LEN(AA2)-LEN(SUBSTITUTE(AA2,"/",""))))+1,LEN(AA2))

Funktioniert einwandfrei, wenn nur ein JPG vorhanden ist, aber bei mehreren stecke ich fest.

Danke

Antwort1

Versuchen Sie mit den Daten in A1Folgendes:

=CONCAT(FILTERXML("<t><s>"&SUBSTITUTE(A1,"/","</s><s>")&"</s></t>","//s[substring(., string-length(.) - 3) = '.jpg' or substring(., string-length(.) - 4) = '.jpg,']"))

Wenn Sie Excel 2019 verwenden, müssen Sie diese Formel mit CSE ausführen. Wenn Sie Excel O365 verwenden, müssen Sie CSE nicht ausführen, aber es gibt auch eine kürzere Version mit LET():

=LET(X,FILTERXML("<t><s>"&SUBSTITUTE(A1,"/","</s><s>")&"</s></t>","//s"),CONCAT(IF(ISNUMBER(FIND(".jpg",X)),X,"")))

Bildbeschreibung hier eingeben


Für Interessierte, einVerknüpfungzu den in meinem Kommentar unten erwähnten Fragen und Antworten.

Antwort2

Probieren Sie diese kleine benutzerdefinierte Funktion aus:

Option Explicit

Public Function NoPath(sIn As String) As String
    Dim arr, i As Long, v As String, L As Long
    Dim j As Long
    
    arr = Split(sIn, ",")
    For i = LBound(arr) To UBound(arr)
        v = arr(i)
        L = Len(v)
        For j = L To 1 Step -1
            If Mid(v, j, 1) = "/" Then
                arr(i) = Mid(v, j + 1)
                Exit For
            End If
            Next j
        Next i
        NoPath = Join(arr, ",")
        
End Function

Bildbeschreibung hier eingeben

Benutzerdefinierte Funktionen (UDFs) sind sehr einfach zuInstallierenund verwenden Sie:

  1. ALT-F11 öffnet das VBE-Fenster
  2. ALT-I ALT-M öffnet ein neues Modul
  3. Füge das Material ein und schließe das VBE-Fenster

Wenn Sie die Arbeitsmappe speichern, wird die UDF mit gespeichert. Wenn Sie eine Version von Excel verwenden, die älter als 2003 ist, müssen Sie die Datei als .xlsm und nicht als .xlsx speichern.

Zuentfernendie UDF:

  1. Öffnen Sie das VBE-Fenster wie oben
  2. Löschen Sie den Code
  3. Schließen Sie das VBE-Fenster

Zuverwendendie UDF aus Excel:

=NoPath(A1)

Weitere Informationen zu Makros im Allgemeinen finden Sie unter:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

Und

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Einzelheiten zu UDFs finden Sie unter:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Damit dies funktioniert, müssen Makros aktiviert sein!

verwandte Informationen