Excel関数 逆引き集 | フルパス取得 → CELL

Excel
スポンサーリンク

概要

「このブックの フルパス(保存場所+ファイル名) をセルに表示したい」
「ファイルの保存場所を自動で取得して、管理用ラベルに使いたい」
「ファイル名だけでなく、パス全体を文章に含めたい」

こういうときに使えるのが CELL 関数(”filename”) です。

CELL(“filename”) は、
フルパス+ファイル名+シート名 をまとめて返す特殊な関数で、
そこから フルパス部分だけを取り出す のが今回のテーマです。

初心者でも理解しやすいように、テンプレートと例題を交えて丁寧に解説します。


CELL(“filename”) の基本

返ってくる文字列の構造

ブックが保存されている場合、CELL(“filename”) は次のような文字列を返します。

C:\Users\...\Documents\Book1.xlsx]Sheet1

つまり、

  • フルパス(C:\Users…\Documents\Book1.xlsx)
  • ]
  • シート名(Sheet1)

という構造です。

「]」より前がフルパス+ファイル名
「]」より後がシート名

というルールを使って、フルパス部分だけを取り出します。


基本パターン:フルパス(ファイル名込み)を取得する

フルパス取得のテンプレート

=LEFT(CELL("filename"), FIND("]", CELL("filename")) - 1)

仕組みはこうです。

  • CELL("filename")
    → フルパス+ファイル名+]+シート名
  • FIND("]", CELL("filename"))
    → “]” の位置を取得
  • LEFT(..., その位置 - 1)
    → “]” の直前までを取り出す(=フルパス+ファイル名)

これが フルパス取得の基本形 です。


応用1:フルパスを文章に組み込む

例:「このファイルの場所は ◯◯ です。」と表示したい

="このファイルの場所は " &
 LEFT(CELL("filename"), FIND("]", CELL("filename")) - 1) &
 " です。"

ファイルの保存場所を説明文に入れたいときに便利です。


応用2:フルパス+シート名をそのまま取得する

CELL(“filename”) の返す文字列には、
フルパス+ファイル名+シート名 がすべて含まれています。

例:そのまま表示

=CELL("filename")

結果例:

C:\Users\...\Documents\Book1.xlsx]Sheet1

「どのファイルのどのシートか」を確認したいときに便利です。


応用3:ファイル名だけを取り出す(参考)

フルパスではなく、ファイル名だけが欲しい場合は、
[] の間を取り出します。

=MID(
 CELL("filename"),
 FIND("[",CELL("filename"))+1,
 FIND("]",CELL("filename")) - FIND("[",CELL("filename")) - 1
)

フルパス取得とセットで覚えておくと便利です。


応用4:LET を使ってフルパス抽出をスッキリ書く

MID や FIND を何度も書くと長くなるので、
LET を使うと読みやすくなります。

=LET(
 txt, CELL("filename"),
 LEFT(txt, FIND("]", txt) - 1)
)
  • txt に CELL(“filename”) を保存
  • FIND で “]” の位置を取得
  • LEFT でフルパス部分だけ抽出

構造が明確で、修正しやすい書き方です。


フルパス取得の“型”まとめ

フルパス(ファイル名込み)を取得

=LEFT(CELL("filename"), FIND("]", CELL("filename")) - 1)

フルパス+ファイル名+シート名

=CELL("filename")

ファイル名だけ取得(参考)

=MID(CELL("filename"), FIND("[",CELL("filename"))+1, FIND("]",CELL("filename"))-FIND("[",CELL("filename"))-1)

LET で読みやすく

=LET(txt, CELL("filename"), LEFT(txt, FIND("]", txt) - 1))

例題

問題1

現在のブックの フルパス(ファイル名込み) を取得したいです。
CELL と LEFT、FIND を使った式を書いてください。

=LEFT(CELL("filename"), FIND("]", CELL("filename")) - 1)

問題2

A1 に
このファイルの場所は ◯◯ です。
と表示したいです。
CELL と文字列結合を使った式を書いてください。

="このファイルの場所は " &
 LEFT(CELL("filename"), FIND("]", CELL("filename")) - 1) &
 " です。"

問題3

CELL(“filename”) の結果(フルパス+ファイル名+シート名)をそのまま表示したいです。
式を書いてください。

=CELL("filename")

問題4

CELL(“filename”) の結果から、
ファイル名だけ を取り出したいです。
MID と FIND を使った式を書いてください。

=MID(CELL("filename"), FIND("[",CELL("filename"))+1, FIND("]",CELL("filename"))-FIND("[",CELL("filename"))-1)

問題5

LET を使い、
txt=CELL(“filename”)
として、フルパス(ファイル名込み)だけを取り出す式を書いてください。

=LET(
 txt, CELL("filename"),
 LEFT(txt, FIND("]", txt) - 1)
)

CELL(“filename”) は「ファイルの保存場所を自動取得する」ための定番テクニックです。
管理ラベル、タイトル、ログ生成など、実務での応用範囲がとても広いので、
ぜひ“フルパス取得の型”として覚えておいてください。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました