- ベストアンサー
excelで文字列の切り抜き
excel2003でファイル名を取得したいのですが、 あるセルにc:\test\test.xlsと記入したら 隣のセルに自動でtest.xlsと表示させるにはどうしたらいいのでしょうか? 関数で表示したいのですが、フォルダが構成がいつも同じではなくても、 対応できる方法はありませんか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
配列数式で =MID(G14,MAX(IF(MID($G$14,ROW(A1:A60),1)="\",ROW(A1:A60),0))+1,LEN(G14)-MAX(IF(MID($G$14,ROW(A1:A60),1)="\",ROW(A1:A60),0))) A60は最大文字数を見積もってください。Max(IF(・・で¥のある位置の最右を求めてます。
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
#3のWendy02です。 引用符抜けてしまい、すみません。 それで、配列数式を使わないで、別の式を作ってみました。 =MID(A1,FIND("^",SUBSTITUTE(A1,"\","^",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,256)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 フォルダが構成がいつも同じではなくても、対応できる方法はありませんか? =MID(A1,MAX(INDEX((MID(A1,ROW(1:256),1)="\")*ROW(1:256),,))+1,256)
- ham_kamo
- ベストアンサー率55% (659/1197)
ちょっとマクロ(ユーザ定義関数)を使います。 Alt+F11でVBAの画面を開きます。 「挿入」>「標準モジュール」を選択します。 右の画面に以下のマクロを貼り付けます。 Function FindR(T As String, S As String) As Integer Application.Volatile FindR = InStrRev(S, T) End Function VBAの画面を閉じてExcelに戻ります。 A1にフルパスのファイル名が入っているとすると、 =RIGHT(A1,LEN(A1)-FINDR("\",A1)) でファイル名だけを表示させることができます。
- maron--5
- ベストアンサー率36% (321/877)
◆A1に「c:\test\test.xls」を記入したとします =REPLACE(A1,1,FIND("♪",SUBSTITUTE(A1,"\","♪",2)),) ◆なお、ファイル名を取得する式は下ではいかがでしょうか? =REPLACE(LEFT(CELL("FILENAME"),FIND(".xls",CELL("FILENAME"))-1),1,FIND("[",CELL("FILENAME")),)