• ベストアンサー

excelで文字列の切り抜き

excel2003でファイル名を取得したいのですが、 あるセルにc:\test\test.xlsと記入したら 隣のセルに自動でtest.xlsと表示させるにはどうしたらいいのでしょうか? 関数で表示したいのですが、フォルダが構成がいつも同じではなくても、 対応できる方法はありませんか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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)
回答No.4

#3のWendy02です。 引用符抜けてしまい、すみません。 それで、配列数式を使わないで、別の式を作ってみました。 =MID(A1,FIND("^",SUBSTITUTE(A1,"\","^",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,256)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 フォルダが構成がいつも同じではなくても、対応できる方法はありませんか? =MID(A1,MAX(INDEX((MID(A1,ROW(1:256),1)="\")*ROW(1:256),,))+1,256)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

ちょっとマクロ(ユーザ定義関数)を使います。 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)
回答No.1

◆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")),)

関連するQ&A