こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フォルダ名表示をするには?

D:\1111\2222\3333\aaa.xls
という状態の時、Excelのセル内に「2222」を表示させるにはどのようにすればよいでしょうか?

自ファイルのあるフォルダ「3333」の表示は
=MID(CELL("filename"),
FIND("♪",SUBSTITUTE(CELL("filename"),"\","♪",LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"\",""))-1))+1,
FIND("♪",SUBSTITUTE(CELL("filename"), "\","♪",LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"\",""))))-FIND("♪", SUBSTITUTE(CELL("filename"),"\","♪",LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"), "\",""))-1))-1)
という形で出来るということは検索して出てきました。

開始位置と文字数の問題だと思いますが、どこをどう調節すれば上の階層のフォルダ名取得になるのかわかりません。
ご教授のほどお願い致します。

 注:マクロを使う予定はありませんのでエクセルVBAマクロを使っての解答はお控えください。

投稿日時 - 2013-10-03 12:56:07

QNo.8289901

困ってます

質問者が選んだベストアンサー

こんにちは。
一階層上のフォルダ名ですよね。

=MID(CELL("filename"),
FIND("♪",SUBSTITUTE(CELL("filename"),"\","♪",LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"\",""))-2))+1,
FIND("♪",SUBSTITUTE(CELL("filename"), "\","♪",LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"\",""))-1))-FIND("♪", SUBSTITUTE(CELL("filename"),"\","♪",LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"), "\",""))-2))-1)

))-1))
2か所を
))-2))


))))

))-1))


書き換えることで対応しています。

投稿日時 - 2013-10-03 15:48:10

お礼

ありがとうございます。思っていたことができました。
こういう形で対応できたのですね。
ご教授ありがとうございます。

質問の趣旨にそっておられましたのでベストアンサーとさせて頂きます。

投稿日時 - 2013-10-03 17:52:44

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

元の数式は、解読していないのですが、こんな数式になるような気がします。
何ぶん、長い間、EXCELも関数も遠ざかっているので、間違っていたらすみません。

=MID(CELL("filename"),FIND("^",SUBSTITUTE(CELL("filename"),"\","^",3))+1,FIND("^",SUBSTITUTE(CELL("filename"),"\","^",4))-FIND("^",SUBSTITUTE(CELL("filename"),"\","^",3))-1)

>エクセルVBAマクロを使っての解答はお控えください。
VBAでは、よく出てくるような気がしました。しかし、正規表現とか、VBScriptという手はあるのですが、VBA自体には、こんなSUBSTITUTEのように、検索文字の検出回数を数えるような、便利な関数はないような気がします。

SUBSTITUTE(CELL("filename"),"\","^",3) ←ここの最後のパラメータの「3」です。

投稿日時 - 2013-10-03 16:54:44

お礼

ありがとうございます。思っていたことができました。
こちらの方が短くなっている気がするのですが・・・。
お二人にベストアンサーが送れないことを心苦しく思います。

投稿日時 - 2013-10-03 17:52:40

あなたにオススメの質問