경로에서 파일 이름 추출 (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 개 문자 (앞에 공백이있는 파일 이름)를 가져온 다음 모든 공백을 제거합니다.
매크로를 사용하려면 구분 기호에 따라 문자열 (이 경우 전체 경로)을 분리하는 매우 짧은 함수를 만들 수 있습니다.
Function GetFileName(File_Path) As String Dim Parts Parts = Split(File_Path, Application.PathSeparator) GetFileName = Parts(UBound(Parts)) End Function
짧다고 말했어! 무거운 작업을 수행하는 함수는 지정한 구분 기호를 기반으로 문자열을 분리하고 그 부분을 배열로 채우는 Split 함수입니다. 이 예에서 Split 함수는 Excel이 실행되는 시스템에 적합한 경로 구분 기호를 구분 기호로 사용합니다.
결과 배열의 마지막 요소 (UBound 함수로 결정됨)에는 마지막 경로 구분 기호 (파일 이름)의 오른쪽에있는 원래 경로 부분이 포함됩니다.
작업을 수행하기 위해 더 짧은 함수를 개발할 수 있습니다.
Function GetFileName(File_Path) As String GetFileName=Mid(File_Path,InStrRev(File_Path,"\")+1 End Function
두 함수 중 하나를 사용하려면 다음과 같은 수식을 셀에 넣으십시오.
=GetFileName(A1)
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶으면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (12903)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.
link : / excel-Extracting_File_Names_from_a_Path [경로에서 파일 이름 추출]
.