백슬래시를 구분 기호로 사용하고 셀에서 백슬래시로 끝나는 경로 이름이 있습니다 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의 답변똑같이 행동합니다.