Excelでフルパスの文字列をフォルダ名とファイル名に分割する方法についての共有です。

以前から、過去に投稿した記事「Windowsでファイルとフォルダのリストを出力するバッチファイル」と組み合わせて利用していました。
しかし、もともとインターネット上からのコピペで中身を理解していなかったので、今回、関数を分解して確認することにしました。

使用している関数

C4セルに元の文字列(フルパス)が入力されている場合、下記の関数でフォルダ名、ファイル名を取得することができます。

フォルダ名を取得する関数:
=MID(C4,1,FIND(“/”,SUBSTITUTE(C4,””,”/”,LEN(C4)-LEN(SUBSTITUTE(C4,””,””))))-1)

ファイル名を取得する関数:
=MID(C4,FIND(“/”,SUBSTITUTE(C4,””,”/”,LEN(C4)-LEN(SUBSTITUTE(C4,””,””))))+1,256)
※最後の「256」はWindowsではフルパスの最大長が256バイトの為

関数を分解した結果

面倒なので、Excelの画面のキャプチャを貼り付けちゃいます。

0001

個人的に驚いたのは、5つ目の処理です。
SUBSTITUTE関数の4つ目の引数で、置換を行う文字を指定できることは知りませんでした。
これにより最後の「¥」のみを特殊な記号に置換して、その記号を目印としてフォルダ名とファイル名に分割しているわけですね。とても勉強になりました。

以上、ご参考まで