Excel関数 逆引き集 | シート名取得 → CELL

Excel
スポンサーリンク

概要

「今いるシート名をセルに表示したい」
「ファイル名+シート名を自動で取得したい」
「シート名を文章やラベルに組み込みたい」

こういうときに使えるのが 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”) は「シート名取得」の定番テクニックです。
シート名を文章・ラベル・タイトルに自動反映させたいときに大活躍するので、
ぜひ“シート名取得の型”として覚えておいてください。

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