Excel: 텍스트에서 여러 파일 경로를 제거하는 방법

Excel: 텍스트에서 여러 파일 경로를 제거하는 방법

항목 이미지를 참조하기 위해 스프레드 시트에 2000개의 줄이 있고 파일 경로를 제거해야 하지만 일부 필드에는 한 셀에 여러 이미지 참조가 있으므로 복잡한 예를 들면 다음과 같습니다.

/2/0/2099-1.jpg,/2/0/2099-2.jpg,/2/0/2099-3.jpg,/m/a/male_headless_mannequin_-_arms_folded.jpg

다음과 같이 보여야 합니다:

2099-1.jpg,2099-2.jpg,2099-3.jpg,male_headless_mannequin_-_arms_folded.jpg

그러나 이미지 참조는 하나만 갖습니다. 예:

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

공식:

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

jpg가 하나만 있을 때는 잘 작동하지만, 여러 개가 있으면 막힙니다.

감사해요

답변1

의 데이터를 사용하여 A1다음을 시도해 보세요.

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

Excel 2019를 실행하는 경우 이 수식을 CSE해야 합니다. Excel O365가 있는 경우 CSE가 필요하지 않지만 다음을 사용하는 더 짧은 버전도 있습니다 LET().

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

여기에 이미지 설명을 입력하세요


관심 있는 분들을 위해,링크아래 댓글에 언급된 Q&A를 참조하세요.

답변2

이 작은 사용자 정의 함수를 시도해 보세요:

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

여기에 이미지 설명을 입력하세요

사용자 정의 함수(UDF)는 매우 쉽습니다.설치하다그리고 다음을 사용하세요:

  1. ALT-F11은 VBE 창을 불러옵니다
  2. ALT-I ALT-M은 새로운 모듈을 엽니다
  3. 내용을 붙여넣고 VBE 창을 닫습니다.

통합 문서를 저장하면 UDF도 함께 저장됩니다. 2003 이후 Excel 버전을 사용하는 경우 파일을 .xlsx가 아닌 .xlsm으로 저장해야 합니다.

에게제거하다UDF:

  1. 위와 같이 VBE 창을 불러옵니다
  2. 코드를 지워라
  3. VBE 창을 닫습니다

에게사용Excel의 UDF:

=NoPath(A1)

일반적인 매크로에 대해 자세히 알아보려면 다음을 참조하세요.

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

그리고

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

UDF에 대한 자세한 내용은 다음을 참조하세요.

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

이 작업을 수행하려면 매크로를 활성화해야 합니다!

관련 정보