경로에서 파일 이름 추출 (Microsoft Excel)
Barry에는 열에 많은 파일 경로가 포함 된 워크 시트가 있습니다. 그는 각 경로에서 파일 이름 (마지막 백 슬래시의 오른쪽 부분) 만 추출하는 방법을 원합니다. 그는 Text to Columns 기능을 사용하지 않고이를 수행하는 빠른 방법이 있는지 궁금합니다.
매크로를 사용할지 여부에 따라 여러 가지 방법이 있습니다.
파일 이름이 모두 같은 길이이면 RIGHT 함수를 사용하여 마지막 문자를 추출 할 수 있습니다. (이 공식은 전체 경로와 파일 이름이 A1 셀에 있다고 가정합니다.)
=RIGHT(A1,11)
이것은 파일 이름이 “text001.txt”와 같이 항상 11 자 길이라고 가정합니다. 각 인스턴스에서 파일 이름의 길이가 다른 경우이 방법은 작동하지 않습니다. 대신 다음 공식을 시도해 볼 수 있습니다.
=MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"\",CHAR(1), LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,LEN(A1))
수식은 SUBSTITUTE 함수를 두 번 사용합니다. 각각의 경우 백 슬래시 (\)를 다른 것으로 대체합니다. 처음에는 모든 항목을 ASCII 값 1로 바꾸고 두 번째는 원래 경로에있는 백 슬래시 수를 확인할 수 있도록 아무 것도 (빈 문자열)로 바꾸지 않습니다. MID 함수는 경로에서 마지막 백 슬래시의 위치를 찾고 (FIND 및 SUBSTITUTE 함수를 사용하여) 해당 지점 이후의 모든 것을 반환하는 데 사용됩니다.
파일 이름의 길이가 99자를 넘지 않는다고 확신하는 경우 더 짧은 공식을 사용할 수 있습니다.
=TRIM(RIGHT(SUBSTITUTE(A2,"\",REPT(" ",100)),99))
이 공식은 모든 백 슬래시를 100 개의 공백으로 바꾸고 결과 문자열에서 맨 오른쪽 99 개 문자 (앞에 공백이있는 파일 이름)를 가져온 다음 모든 공백을 잘라냅니다.
매크로를 사용하려면 마지막 백 슬래시를 찾을 때까지 경로를 뒤로 이동하는 매크로를 만들 수 있습니다. 그런 다음 백 슬래시 뒤에있는 모든 것을 반환합니다. 다음 예제는 B1 셀에서 시작하여 셀 오른쪽에있는 모든 항목 (셀 A1)을 검사 한 다음 파일 이름을 꺼내기 시작합니다. A 열의 모든 셀을 살펴보고 B 열에 파일 이름 (있는 경우)을 넣습니다.
Sub GetFileName1() Dim Delimiter As String Dim Target As String Dim sFile As String Dim J As Integer Dim iDataLen As Integer Delimiter = "\" Range("B1").Select Do While ActiveCell.Offset(0, -1).Value <> "" Target = ActiveCell.Offset(0, -1).Value iDataLen = Len(Target) sFile = "Delimiter Not Found" For J = iDataLen To 2 Step -1 If Mid(Target, J, 1) = Delimiter Then sFile = Right(Target, iDataLen - J) Exit For End If Next J ActiveCell.Formula = sFile ActiveCell.Offset(1, 0).Select Loop End Sub
분할 기능을 사용할 수 있다면 훨씬 더 짧은 버전의 매크로를 사용할 수도 있습니다. 이 함수는 Excel 2000과 함께 제공되는 VBA 버전에서 도입되었으며 지정한 구분 기호를 기반으로 문자열을 분리하고 해당 부분을 배열로 채 웁니다. 이 예제는 사용자 정의 함수로 구현 된 솔루션을 보여줍니다.
Function GetFileName2(File_Path) As String Dim Parts Parts = Split(File_Path, Application.PathSeparator) GetFileName2 = Parts(UBound(Parts)) End Function
이 사용법에서 Split 함수는 Excel이 실행되는 시스템에 적합한 경로 구분 기호를 구분 기호로 사용합니다. 결과 배열의 마지막 요소 (UBound 함수로 결정됨)에는 마지막 경로 구분 기호 (파일 이름)의 오른쪽에있는 원래 경로 부분이 포함됩니다. 함수를 사용하려면 다음과 같은 수식을 셀에 넣으십시오.
=GetFileName2(A1)
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (7333)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.
link : / excelribbon-Extracting_File_Names_from_a_Path [경로에서 파일 이름 추출]
.