사무자동화ㅋ/MS 오피스

파일 전체 경로에서, 폴더와 파일명 분리하기

RioRex 2024. 5. 23.

 

폴더 경로 추출 함수

=LEFT(B3, FIND("*",SUBSTITUTE(B3,"\","*",LEN(B3)-LEN(SUBSTITUTE(B3,"\","")))))

풀어 보면 이렇습니다.

=LEFT(
	B3,
	FIND(
		"*",
		SUBSTITUTE(
			B3,
			"\",
			"*",
			LEN(B3)-LEN(SUBSTITUTE(B3,"\",""))
		)
	)
 )

 

파일명 추출 함수

=MID(B3, FIND("*",SUBSTITUTE(B3,"\","*",LEN(B3)-LEN(SUBSTITUTE(B3,"\",""))))+1,LEN(B3))

풀어보면 이렇습니다.

=MID(
	B3,
	FIND(
		"*",
		SUBSTITUTE(
			B3,
			"\",
			"*",
			LEN(B3)-LEN(SUBSTITUTE(B3,"\",""))
		)
	)+1,
	LEN(B3)
 )

 

폴더와 파일의 구분은 마지막 "\" 문자란 것을 활용한다.

만일 경로에 "\" 문자가 하나도 없으면, 에러가 발생한다.

 

파일명 찾는 부분에 대한 설명이다. 폴더에 대한 부분은 응용하면 된다.

 

① 마지막에 위치하고 있는 "\" 문자를 찾아서 "*"로 바꾼다.

   (기존 "\"는 한개가 아닐 수 있으므로, 경로 파일명에서 사용할 수 없는 "*"문자로 변경하는 것이다. "*"문자 외 다른 것으로 사용해도 된다.)

  

                SUBSTITUTE(
                      B3,
                      "\",
                      "*",
                      LEN(B3)-LEN(SUBSTITUTE(B3,"\",""))
                )

 

② 바꾼 "*" 문자의 위치를 찾는다.

 

 

            FIND(
                "*",
                SUBSTITUTE(
                      B3,
                      "\",
                      "*",
                      LEN(B3)-LEN(SUBSTITUTE(B3,"\",""))
                )
         )

 

③ ②에서 찾은 위치 이후부터 마지막 까지 문자를 구한다.

=MID(
         B3,
         FIND(
                "*",
                SUBSTITUTE(
                      B3,
                      "\",
                      "*",
                      LEN(B3)-LEN(SUBSTITUTE(B3,"\",""))
                )
         )+1,
         LEN(B3)
  )

 

>> 사용한 함수

    MID(text, start_num, num_chars)

    FIND(find_text, within_text, start_num)

    SUBSTITUTE(text, old_text, new_text, instance_num)
     <== instance_num 은 몇 번째의 old_text를 바꿀 것인지 지정한다.
   LEN(text)

 

 

반응형

댓글