【Excel】シート名の取得方法及びその有効活用について
こんにちは。行未です。
最近エクセルを触っていてふと思ったことがありまして。
何を思ったかといいますと、
「シート名に『3月』とあるのにわざわざ『3』ってセルに入力するのめんどくさくね?」
と思ったのです。
ものぐさの極みです。
20代半ばにして、こういった思いが浮かぶこと自体やばいなと思いました。
冗談抜きでこんな大人にならない方が良いです。本当に。
本題に入りましょうか。
例に触れながら背景部分を簡単にお話しすると、
まず、触っているシート名は「3月」です。
シート名が「3月」なので、当然扱っているシート内には「3月」を表す「3」であったり、
前月である「2月」の「2」だったりを入力するセルが存在するわけなんですね。
転じて、
「シート名とセルが連動すると便利では?」
ってことです。

今回の前提は、シート名を取得するだけでなく、「3月」から数字のみ、すなわち「3」を抜き出す必要があるという点です。
何で数字だけかと言うと、個人的には1つのセルに「○月」と打つより、隣合うセルに「○」、「月」と入力していた方が後々データの扱いが楽と思っているので…。
では具体的な方法に移りましょうか。
流れ:CELL関数とSUBSTITUTE関数の併用
今回の流れとしてはもう簡単なんです。
- シート名を取得
- 取得したシート名から「月」を除外
だけです。
そして、1、2それぞれの段階で使う関数は、
- CELL関数
- SUBSTITUTE関数
です。
1に関しては半ば公式みたいな認識で良いかと思われます。
1.CELL関数によるシート名の取得
CELL関数の書式は、

です。今回の場合では、

何となくイメージがつくでしょうか?
返ってくるのはシート名までのパスです。つまりは、
~¥[(ファイル名).xlsx](シート名)
のようなイメージです。
これに対し、(取得した全体の文字列)から(『]』の先頭からの位置までの文字列)を除外すれば、
シート名が取得できます。
よって、

以上が1の操作を行うための数式です。
2.SUBSTITUTE関数による特定文字列の除外
①の長い数式で得られた文字列に対し、「月」を除外します。
用いる関数はSUBSTITUTE関数です。
書式は以下の通りです。

置換対象は省略可能です。なお今回の例では省略してもしなくても変わりません。
「月」を除外するので、

文字列部分に、①の数式を入れ込みます。
すなわち、

です。
備考
今回の操作を行うに当たって面白いなと感じた部分がありまして。
先程の例で除外して得られた「3」は文字列型です。
これがA1セルに入っているとします。
そして、「A1-1」とすると、「2」が得られます。
得られた「2」は数値型なんです。
私の認識では、
文字の"0″と数値の"0″は違う
という認識なんですよ。
だから、「A1-1」⇒「(文字列型)-(数値型)」が成り立っているのが面白いと思って。
演算子が出てきてるのが関係あるのかな。
Excelの仕様上なんでしょうか。
それとも、私の根本的な見落としがあるとか…。
多分後者でしょうけど。
数値と文字列の実務に関しては、以下の記事が参考になるかと思われます。
お時間があればぜひお目通しを。
https://allabout.co.jp/gm/gc/297721/
ディスカッション
コメント一覧
まだ、コメントがありません