エクセルでシート名を同じシート内のセルに表示できますか?
「CELL」関数を使うと、ファイルを保存している場所の情報からファイル名やシート名を表示できるので、それを応用します。
先週、エクセルで別シートのセルの値を表示する方法を取り上げたとき「シート名」を使って参照させるやり方も紹介しました。
すると「シート名」を同じシートのセルに表示できますか?という質問がありました。
確かに「1月」と名付けたシートのセルに「1月集計表」と自動で表示させたい、といったケースはあります。
そこで調べたところ「CELL」関数を使った以下の式をセルに貼り付ければ「シート名」が表示されることを確認しました。
=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)
これを手入力するのは大変ですが、式をコピーして貼り付ければ誰でも利用できるので、まずは紹介しておきます。
注意点としては、この式を使うときはすでにファイルが保存されている必要があるので、新規作成のファイルなら一度、保存してください。
「シート名」を表示させる式はいくつかありますが、その中でも短い式 を紹介している以下のページを参考にさせていただきました。
ちなみにシート名「1月」のセルに「1月集計表」と表示させたいときは
=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)&"集計表"
と最後に &"集計表" を追加すればいいだけです。
◆◇◆
では、なぜ先述の式で「シート名」が表示されるかですが、基本的には「CELL」関数でセルに関する情報が調べられるのがポイントです。
調べる対象を「ファイル名(filename)」と指定したときの書式は
CELL("filename", [対象範囲])
となり、たとえば「集計.xlsx」ファイルの「1月」シートでセルに
=CELL("filename",$A$1)
と入力すると、私の環境ではこんな表示になりました。
C:\Users\hayashi\Desktop\[集計.xlsx]1月
もちろん、パソコン環境とファイルの保存場所によって違ってきます。
さらに「FIND」関数は、指定した文字列の中で、指定した文字までの文字数を数えるので、先ほどと同じファイルのシートでセルに
=FIND("]",CELL("filename",$A$1))
と入力すると 24 と表示されました。
つまり先ほどの
C:\Users\hayashi\Desktop\[集計.xlsx]1月
の文字列で ] という文字は 24文字目 にある、ということです。
そして「MID」関数は、指定した文字列で、指定した文字数以降の文字を指定数だけ表示するので、先ほどと同じファイルのシートでセルに
=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)
と入力すると、私の環境では 1月 と表示されました。つまり ] の文字数+1 となる 25文字目から始まる文字列が 1月 なのです。
「31」に設定しているのは「シート名」で使える最大文字数だからです。
もし説明が理解できなくても、紹介した式をそのままコピー&貼り付ければ「シート名」を表示できるので、とりあえずご利用いただけます。
理解を深めるための「パソコン用語解説」
記事の情報は公開時あるいは更新時のもので、最新情報はリンク先など情報元の公式ページでご確認ください。