概要
「このブックの フルパス(保存場所+ファイル名) をセルに表示したい」
「ファイルの保存場所を自動で取得して、管理用ラベルに使いたい」
「ファイル名だけでなく、パス全体を文章に含めたい」
こういうときに使えるのが 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”) は「ファイルの保存場所を自動取得する」ための定番テクニックです。
管理ラベル、タイトル、ログ生成など、実務での応用範囲がとても広いので、
ぜひ“フルパス取得の型”として覚えておいてください。
