エクセルのシート名を取り出す関数は有名だが、ファイルパス中に]が複数あるとうまく取り出せない。
]が複数合っても取り出せるよう対応した版が以下。
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND(CHAR(13),SUBSTITUTE(CELL("filename",A1), "]", CHAR(13), LEN(CELL("filename",A1)) - LEN(SUBSTITUTE(CELL("filename",A1),"]","")))))
解説
- "]"を空文字に置換して置換前のパスとの文字数差分を出す(="]"が何個あるか分かる)
- フルパス中の最後の"]"をCRに置換する(=CRより後の文字列がシート名になる)
- CRの右側を取りだす