概要
「今いるシート名をセルに表示したい」
「ファイル名+シート名を自動で取得したい」
「シート名を文章やラベルに組み込みたい」
こういうときに使えるのが CELL 関数(”filename”) です。
CELL(“filename”) は、
ファイルのフルパス+ブック名+シート名
を文字列として返します。
そこから シート名だけを取り出す のが、シート名取得の基本テクニックです。
ここでは、初心者向けに、
CELL を使った「シート名取得」の仕組みとテンプレートを、例題つきで丁寧に解説します。
CELL(“filename”) の基本
返ってくる文字列の形
ブックが保存されている場合、CELL(“filename”) は次のような文字列を返します。
C:\Users\...\Book1.xlsx]Sheet1
つまり、
- フルパス
- ブック名
]- シート名
という構造になっています。
この 「]」の後ろがシート名 なので、
FIND と MID を使って取り出すのが定番です。
基本パターン:現在のシート名を取得する
シート名だけを取り出すテンプレート
=MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255)
仕組みはこうです。
CELL("filename")
→ フルパス+ブック名+]+シート名FIND("]", CELL("filename"))
→ “]” の位置を取得MID(..., その位置+1, 255)
→ “]” の次の文字(=シート名の先頭)から取り出す
255 は「十分長い文字数」という意味で、実質“最後まで”を表します。
応用1:シート名を文章に組み込む
例:「このシート名は Sheet1 です。」と表示したい
="このシート名は " &
MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255) &
" です。"
シート名を説明文に入れたいときに便利です。
応用2:シート名をラベルとして使う
例:シート名をタイトルセルに自動表示
A1 に次の式を書きます。
="【" &
MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255) &
"】"
シート名が変わってもタイトルが自動更新されます。
応用3:ファイル名+シート名を取得する
CELL(“filename”) の前半には、
フルパス+ブック名 が含まれています。
例:ファイル名+シート名をそのまま表示
=CELL("filename")
結果例:
C:\Users\...\Book1.xlsx]Sheet1
「どのファイルのどのシートか」を確認したいときに便利です。
応用4:ファイル名だけを取り出す
CELL(“filename”) の中には、Book1.xlsx]Sheet1
という部分が含まれています。
このうち、] より前が「ファイル名」です。
例:ファイル名だけを取得
=LEFT(
CELL("filename"),
FIND("]", CELL("filename")) - 1
)
結果:
C:\Users\...\Book1.xlsx
(フルパス込み)
応用5:シート名を別の関数と組み合わせる
例:シート名を使って動的な文章を作る
=LET(
sheet, MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255),
"現在のシート:「" & sheet & "」を使用しています。"
)
LET を使うと、
「シート名を一度だけ取り出して、何度でも使う」
という書き方ができ、式が読みやすくなります。
シート名取得の“型”まとめ
シート名だけ取得
=MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255)
シート名を文章に入れる
="シート名:" & MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255)
ファイル名+シート名
=CELL("filename")
ファイル名だけ
=LEFT(CELL("filename"), FIND("]", CELL("filename")) - 1)
LET でシート名を再利用
=LET(s, MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255), s)
例題
問題1
現在のシート名を取得したいです。
CELL と MID、FIND を使ってシート名だけを取り出す式を書いてください。
=MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255)
問題2
A1 にこのシート名は ◯◯ です。
と表示したいです。
CELL と文字列結合を使った式を書いてください。
="このシート名は " &
MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255) &
" です。"
問題3
CELL(“filename”) の結果から、ファイル名+シート名をそのまま表示したいです。
式を書いてください。
=CELL("filename")
問題4
CELL(“filename”) の結果から、ファイル名だけを取り出したいです。
LEFT と FIND を使った式を書いてください。
=LEFT(CELL("filename"), FIND("]", CELL("filename")) - 1)
問題5
LET を使い、
sheet = シート名
として、現在のシート:◯◯
と表示したいです。
LET と CELL を使った式を書いてください。
=LET(
sheet, MID(CELL("filename"), FIND("]", CELL("filename")) + 1, 255),
"現在のシート:" & sheet
)
CELL(“filename”) は「シート名取得」の定番テクニックです。
シート名を文章・ラベル・タイトルに自動反映させたいときに大活躍するので、
ぜひ“シート名取得の型”として覚えておいてください。
