こんにちは。かづきchanです。
Excelで日毎・月毎の記録をまとめている時や、スケジュール表を使っている時、「シート名」を自動的に特定のセルに反映したい事があります。
今回はその方法について紹介していきます。
※その他スケジュール作成関連は、下記の記事にまとめています。
■具体的にどういう事?
例えば、同じような内容のシートを毎月用意する場合、先月のシートや他のベースシートをコピーして、シート名を変更後、「シート名と同じ文字」にしたいセルも手入力で更新していませんか?
そういうセルが複数ある場合でも、それだけなら[Ctrl]+[H]キーで開く「置換」機能で毎回作業していてもいいのですが、「同じ文字」で”更新しなくてもいい箇所が何ヶ所かある”場合、対象からそれらを外すのは手間です。
そういう場合、「シート名と同じ文字」にしたいセルは関数で「シート名」を表示させておけばいいのです。
※対象となる個所のうち1セルだけ入力して(例:A1)、他の該当セルには参照(=$A$1)させるだけでもいいと思います。
更に、「5月」等の日付に関する内容であった場合は、それを元にスケジュール表の日付や曜日を自動的に変更させることも可能です。
※これは後日応用編として書く予定です。公開まで少々お待ちください。
■ファイル(&シート名)のフルパスをセルに表示する関数
=CELL("filename",$A$1)
これでセル情報「パス¥[ファイル名]シート名」を表示できます。
「C:\Users\user\Desktop\[ブログ.xlsx]5月」と表示されています。
【注意】
・新規で作成直後など、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月」などのシート名を利用して、更に”日付データ”にできれば、曜日などに色々変えるのが簡単になりますよね。
日付データを作成する方法などについては、次のブログで紹介していますので、そちらをご確認ください。
ブログに書いている内容への感想やご質問・リクエスト等ありましたら、お気軽にメッセージをいただければ幸いです。
※その他スケジュール作成関連やり方は、下記の記事にまとめています。