概要
Excelで「ファイルパスからファイル名だけを取り出したい」ときは、MID関数+SEARCH関数を組み合わせます。SEARCHで最後の「\」の位置を探し、その直後から文字列をMIDで切り出すことでファイル名を取得できます。ログ整理やファイル一覧の加工に役立ちます。
基本の使い方
書式
=MID(ファイルパスセル, SEARCH("@",SUBSTITUTE(ファイルパスセル,"\","@",LEN(ファイルパスセル)-LEN(SUBSTITUTE(ファイルパスセル,"\",""))))+1, LEN(ファイルパスセル))
この式の流れは以下の通りです:
SUBSTITUTE(ファイルパスセル,"\","@",…):最後の「\」を「@」に置き換えるSEARCH("@",…):その「@」の位置を取得+1:その直後から文字を切り出すMID:ファイル名部分を抽出
具体例
セル参照でファイル名を取得
=MID(A2, SEARCH("@",SUBSTITUTE(A2,"\","@",LEN(A2)-LEN(SUBSTITUTE(A2,"\",""))))+1, LEN(A2))
A2が「C:\Users\Excel\Documents\report.xlsx」なら結果は「report.xlsx」。
サブフォルダが多い場合でも対応
=MID(B2, SEARCH("@",SUBSTITUTE(B2,"\","@",LEN(B2)-LEN(SUBSTITUTE(B2,"\",""))))+1, LEN(B2))
B2が「D:\Data\2025\Sales\summary.csv」なら結果は「summary.csv」。
ネットワークパスでも対応
=MID(C2, SEARCH("@",SUBSTITUTE(C2,"\","@",LEN(C2)-LEN(SUBSTITUTE(C2,"\",""))))+1, LEN(C2))
C2が「\Server\Share\Project\design.docx」なら結果は「design.docx」。
応用テンプレート
IFERRORでエラー対策
=IFERROR(MID(D2, SEARCH("@",SUBSTITUTE(D2,"\","@",LEN(D2)-LEN(SUBSTITUTE(D2,"\",""))))+1, LEN(D2)), "ファイル名なし")
「\」が含まれない場合は「ファイル名なし」と表示。
ファイル名から拡張子を除去
=LEFT(MID(E2, SEARCH("@",SUBSTITUTE(E2,"\","@",LEN(E2)-LEN(SUBSTITUTE(E2,"\",""))))+1, LEN(E2)), SEARCH(".",MID(E2, SEARCH("@",SUBSTITUTE(E2,"\","@",LEN(E2)-LEN(SUBSTITUTE(E2,"\",""))))+1, LEN(E2)))-1)
「report.xlsx」→「report」。
ファイル名を大文字に変換
=UPPER(MID(F2, SEARCH("@",SUBSTITUTE(F2,"\","@",LEN(F2)-LEN(SUBSTITUTE(F2,"\",""))))+1, LEN(F2)))
「summary.csv」→「SUMMARY.CSV」。
よくあるつまずきと対策
「\」が複数ある場合
最後の「\」を見つけるためにSUBSTITUTEで工夫しています。これを忘れると最初の「\」から切り出してしまいます。
「\」がない場合
エラーになります。IFERRORで補うと安心です。
ネットワークパスの「\」も同じ扱い
「\」は「\」が2つ続いているだけなので同じ式で対応可能です。
例題
問題1: A2セルの「C:\Users\Excel\Documents\report.xlsx」からファイル名をB2に表示してください。
解答例:
=MID(A2, SEARCH("@",SUBSTITUTE(A2,"\","@",LEN(A2)-LEN(SUBSTITUTE(A2,"\",""))))+1, LEN(A2))
問題2: C2セルの「D:\Data\2025\Sales\summary.csv」からファイル名をD2に表示してください。
解答例:
=MID(C2, SEARCH("@",SUBSTITUTE(C2,"\","@",LEN(C2)-LEN(SUBSTITUTE(C2,"\",""))))+1, LEN(C2))
問題3: E2セルの「\Server\Share\Project\design.docx」からファイル名をF2に表示してください。
解答例:
=MID(E2, SEARCH("@",SUBSTITUTE(E2,"\","@",LEN(E2)-LEN(SUBSTITUTE(E2,"\",""))))+1, LEN(E2))
問題4: G2セルのファイルパスからファイル名を取得し、拡張子を除いた名前をH2に表示してください。
解答例:
=LEFT(MID(G2, SEARCH("@",SUBSTITUTE(G2,"\","@",LEN(G2)-LEN(SUBSTITUTE(G2,"\",""))))+1, LEN(G2)), SEARCH(".",MID(G2, SEARCH("@",SUBSTITUTE(G2,"\","@",LEN(G2)-LEN(SUBSTITUTE(G2,"\",""))))+1, LEN(G2)))-1)
問題5: I2セルのファイルパスからファイル名を取得し、大文字に変換してJ2に表示してください。
解答例:
=UPPER(MID(I2, SEARCH("@",SUBSTITUTE(I2,"\","@",LEN(I2)-LEN(SUBSTITUTE(I2,"\",""))))+1, LEN(I2)))
まとめ
ファイルパスからファイル名を取得するには MID+SEARCH+SUBSTITUTE+LEN の組み合わせが基本です。
- SUBSTITUTEで最後の「\」を特定
- SEARCHで位置を取得
- MIDで切り出し
- 必要に応じてIFERRORやLEFTで拡張子処理
この流れを覚えれば、ファイル一覧の整理やログ分析で大きな力になります。講師として強調したいのは「位置を特定して切り出す」という考え方。これを習得すれば、Excelでの文字列処理がさらに自在になります。
