電子書籍の厳選無料作品が豊富!

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マクロを使っての解答はお控えください。

A 回答 (2件)

こんにちは。


一階層上のフォルダ名ですよね。

=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))


書き換えることで対応しています。
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2013/10/03 17:52

元の数式は、解読していないのですが、こんな数式になるような気がします。


何ぶん、長い間、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」です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/10/03 17:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!