[Excel]ファイル名・シート名をセルに表示する方法

記事
学び
こんにちは。かづきchanです。

Excelで日毎・月毎の記録をまとめている時や、スケジュール表を使っている時、「シート名」を自動的に特定のセルに反映したい事があります。
今回はその方法について紹介していきます。

※その他スケジュール作成関連は、下記の記事にまとめています。

■具体的にどういう事?

例えば、同じような内容のシートを毎月用意する場合、先月のシートや他のベースシートをコピーして、シート名を変更後、「シート名と同じ文字」にしたいセルも手入力で更新していませんか?
シート名を表示したい.jpg
そういうセルが複数ある場合でも、それだけなら[Ctrl]+[H]キーで開く「置換」機能で毎回作業していてもいいのですが、「同じ文字」で”更新しなくてもいい箇所が何ヶ所かある”場合、対象からそれらを外すのは手間です。

そういう場合、「シート名と同じ文字」にしたいセルは関数で「シート名」を表示させておけばいいのです。
※対象となる個所のうち1セルだけ入力して(例:A1)、他の該当セルには参照(=$A$1)させるだけでもいいと思います。

更に、「5月」等の日付に関する内容であった場合は、それを元にスケジュール表の日付や曜日を自動的に変更させることも可能です。
※これは後日応用編として書く予定です。公開まで少々お待ちください。

■ファイル(&シート名)のフルパスをセルに表示する関数

=CELL("filename",$A$1)
これでセル情報「パス¥[ファイル名]シート名」を表示できます。
「C:\Users\user\Desktop\[ブログ.xlsx]5月」と表示されています。
CELL関数.jpg

【注意】
・新規で作成直後など、1度も保存していない場合は表示されません。
・後ろの「,$A$1」は省略可能【=CELL("filename")】ですが、入れておかないとタブやファイル場所などを変えた場合などに、すぐ正しい値を表示してくれない場合があります。その場合は[F9]キー等で再計算させてください。

■シート名をセルに表示する関数

=RIGHT(CELL("filename",$A$1),LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1)))
色々な方法はあるのですが、今回はCELL関数をベースにRIGHT関数で組んであります。何をやっているのかは以下の通りです。
【1】CELL関数でセル情報を調べる
=CELL("filename"$A$1)
→C:\Users\user\Desktop\[ブログ.xlsx]5月
※「抜き出し」「文字の長さ調べ」「"]"文字位置調べ」用に3回出現。

【2】LEN関数でセル情報の文字列の文字数を調べる
=LEN(CELL("filename",$A$1))
→34

【3】FIND関数で"]"の文字が何文字目にあるかを調べる
=FIND("]",CELL("filename",$A$1))
→32

【4】【2】から【3】を引き算して、右から何文字分がセル名かを調べる
=LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1))
→34-32
→2

【5】RIGHT関数を使ってセル情報から【4】で出た文字数を右から取り出す
=RIGHT(CELL("filename",$A$1),LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1)))
→C:\Users\user\Desktop\[ブログ.xlsx]5月
→5月
【注意】
・どこまでが不要な部分(シート名以外)かを"]"の位置で判断しているので、ファイル名などに"]"の文字が含まれている場合は使えません
 (ファイル名に"]"の文字が含まれていても使える組み方法もあります)
・新規で作成直後など、1度も保存していない場合は表示されません。
・後ろの「,$A$1」は省略可能【=CELL("filename")】ですが、入れておかないとタブやファイル場所などを変えた場合などに、すぐ正しい値を表示してくれない場合があります。その場合は[F9]キー等で再計算させてください。

■ファイル名をセルに表示する関数

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

→【セル情報】C:\Users\user\Desktop\[ブログ.xlsx]5月
→ブログ.xlsx
基本的にやっていることはシート名の場合と同じなので、どういう処理をしているかの説明は省きます。
先ほどの「シート名」は右端なのでRIGHT関数を使って"]"の位置を調べてから、それを元に取り出しましたね。
「ファイル名」は真ん中に表示されているので、MID関数を使って、ファイル名の左右にある"["と"]"の位置を調べて、その間の文字を取り出しています。

■あとがき

今回は、「シート名」を自動的にセルに反映させる方法を紹介しました。
イメージ通りの背景変更設定ができましたでしょうか?

今回抜き出した「5月」などのシート名を利用して、更に”日付データ”にできれば、曜日などに色々変えるのが簡単になりますよね。
日付データを作成する方法などについては、次のブログで紹介していますので、そちらをご確認ください。

ブログに書いている内容への感想やご質問・リクエスト等ありましたら、お気軽にメッセージをいただければ幸いです。

※その他スケジュール作成関連やり方は、下記の記事にまとめています。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す