Excelのシート名の取得が意外と大変だった
ソリューションSec.の井上です。
皆さんはExcelは使った事はあると思いますが、関数は使った事はあるでしょうか?
Excelには関数を使用する事で便利な機能を利用する事が出来ます。
有名なところですとSUM関数でしょうか。
こちらは名前の通り指定した範囲の合計を求めてくれる関数になります。
わざわざ電卓を叩いて計算する必要がないので便利ですね!巷によると機械は信じられないので電卓で計算しろ!と言われる事もあるようです

そこで今回の題名の通り、シート名を取得したいなと思い、取得する方法はいくらでもあると思ったら結構大変だったのでご紹介しようと思います。
まず結論から言ってしまいます、こうなります。
=RIGHT(CELL("filename",$A$1),LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1)))
長くて複雑ですね、シート名を取りたいって事はあり得ると思うので専用の関数を用意してくれても…って思ってしまいました。
これから詳しく解説していきますが面倒だって人はこの文をコピペするだけでシート名が取れるので活用してください!
①ファイル名の取得
ファイル名を取得するとシート名が一緒に取れるのでこれを利用します
A1はどこの指定でも大丈夫です

②取得したパスのすべての文字数を取得

③シート名までの文字数を取得

④シート名の文字数を計算
パス全体の文字数からシート名までの文字数を引いてシート名の文字数を計算します

⑤ファイル名からシート名部分を取得
ファイル名からシート名分の文字を抜き出す事によりシート名を取得します

そして上記①~⑤の数式を合体させるとこうなる訳です!
=RIGHT(CELL("filename",$A$1),LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1)))
本来ならばシート名からコピーして貼り付けるだけなのですが、結構手間がかかってしまいましたね。
ですがこれ以降はこの文をコピーするだけなので流用出来ますし、テンプレートの作成となるとシートをコピーして運用って事もあると思うのでそういう場合に活用出来るのではないでしょうか。
普段の作業を効率化する為の自動化に時間を消費するのは本末転倒だと思ってしまう事もあるとは思いますが、そういう小さい改善の積み重ねがやがては大きな差へ繋がっていきます。
効率化は早ければ早いほど効果が出るので面倒だと思わず、将来への投資だと思って積極的に取り組んでいきましょう!