Excel 수식, 문자열에서 마지막 \ 및 하위 경로 제거

Excel 수식, 문자열에서 마지막 \ 및 하위 경로 제거

백슬래시를 구분 기호로 사용하고 셀에서 백슬래시로 끝나는 경로 이름이 있습니다 B5(예: )  \\stack\over\flow\. 으로 줄이고 싶습니다 \\stack\over\. \전체 경로에서 마지막 및 하위 경로 구성 요소를 제거하려면 수식이 필요합니다 .

답변1

C5에 수식을 입력합니다.

=REPLACE(B5,FIND("@",SUBSTITUTE(B5,"\","@",LEN(B5)-LEN(SUBSTITUTE(B5,"\",""))-1))+1,99,"")

답변2

구축bosco_yip의 답변, 이를 단순화하고 설명합니다.

=LEFT(B5,FIND("|",SUBSTITUTE(B5,"\","|",LEN(B5)-LEN(SUBSTITUTE(B5,"\",""))-1)))
  • SUBSTITUTE(B5,"\","")모든 백슬래시를 제거합니다 B5 (빈 문자열로 대체). 예를 들어 가 이면 B5이는 \\stack\over\flow\가 됩니다 stackoverflow.
  • LEN(B5)-LEN(SUBSTITUTE(B5,"\",""))에서 백슬래시 수를 계산하는 일반적인 방법입니다  B5. 마지막에서 두 번째 백슬래시 번호를 얻기 위해 여기서 1을 뺍니다.
  • SUBSTITUTE(B5,"\","|", <the above> ) 마지막에서 두 번째 백슬래시를  |(수직 막대)로 바꿉니다.
  • FIND("|", <the above> ) 발견하다위치|(아마도 / 바라건대) 마지막에서 두 번째 백슬래시였습니다 . B5이미 수직 막대가 포함되어 있으면 당연히 문제가 발생 하지만 |Windows 경로 이름에는 허용되지 않습니다. (반대로,@ ~이다유효한 Windows 파일 이름 문자입니다.)
  • LEFT(B5, <the above> )B5 마지막에서 두 번째 백슬래시까지(포함하여) 값을 가져옵니다 .

B5단 하나만 포함하는  경우  \ (예:  \, foo\bar또는  \Program Files) 위의 내용에서는 오류가 발생합니다. 이거나  B5이면  결과는  입니다  \\\\stack\bosco_yip의 답변똑같이 행동합니다.

관련 정보