Excel関数 逆引き集 | ファイルパスからファイル名取得 → MID

Excel
スポンサーリンク

概要

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での文字列処理がさらに自在になります。

タイトルとURLをコピーしました