【Excel】シート名の取得方法及びその有効活用について

2019年4月23日

こんにちは。行未です。

最近エクセルを触っていてふと思ったことがありまして。

何を思ったかといいますと、

「シート名に『3月』とあるのにわざわざ『3』ってセルに入力するのめんどくさくね?」

と思ったのです。

ものぐさの極みです。
20代半ばにして、こういった思いが浮かぶこと自体やばいなと思いました。
冗談抜きでこんな大人にならない方が良いです。本当に。

本題に入りましょうか。

例に触れながら背景部分を簡単にお話しすると、
まず、触っているシート名は「3月」です。

シート名が「3月」なので、当然扱っているシート内には「3月」を表す「3」であったり、
前月である「2月」の「2」だったりを入力するセルが存在するわけなんですね。

転じて、

「シート名とセルが連動すると便利では?」

ってことです。

Excelシート名取得例

今回の前提は、シート名を取得するだけでなく、「3月」から数字のみ、すなわち「3」を抜き出す必要があるという点です。

何で数字だけかと言うと、個人的には1つのセルに「○月」と打つより、隣合うセルに「○」、「月」と入力していた方が後々データの扱いが楽と思っているので…。

では具体的な方法に移りましょうか。

流れ:CELL関数とSUBSTITUTE関数の併用

今回の流れとしてはもう簡単なんです。

  1. シート名を取得
  2. 取得したシート名から「月」を除外

だけです。

そして、1、2それぞれの段階で使う関数は、

  1. CELL関数
  2. SUBSTITUTE関数

です。

1に関しては半ば公式みたいな認識で良いかと思われます。

1.CELL関数によるシート名の取得

CELL関数の書式は、

cell関数書式

です。今回の場合では、

cell関数記述例1

何となくイメージがつくでしょうか?
返ってくるのはシート名までのパスです。つまりは、

~¥[(ファイル名).xlsx](シート名)

のようなイメージです。

これに対し、(取得した全体の文字列)から(『]』の先頭からの位置までの文字列)を除外すれば、
シート名が取得できます

よって、

RIGHT関数記述例

以上が1の操作を行うための数式です。

2.SUBSTITUTE関数による特定文字列の除外

①の長い数式で得られた文字列に対し、「月」を除外します。
用いる関数はSUBSTITUTE関数です。

書式は以下の通りです。

substitute関数書式

置換対象は省略可能です。なお今回の例では省略してもしなくても変わりません。

「月」を除外するので、

substitute関数記述例

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

substitute関数記述例2

です。

備考

今回の操作を行うに当たって面白いなと感じた部分がありまして。

先程の例で除外して得られた「3」は文字列型です。
これがA1セルに入っているとします。

そして、「A1-1」とすると、「2」が得られます。
得られた「2」は数値型なんです。

私の認識では、

文字の"0″と数値の"0″は違う

という認識なんですよ。


だから、「A1-1」⇒「(文字列型)-(数値型)」が成り立っているのが面白いと思って。
演算子が出てきてるのが関係あるのかな。

Excelの仕様上なんでしょうか。
それとも、私の根本的な見落としがあるとか…。

多分後者でしょうけど。

数値と文字列の実務に関しては、以下の記事が参考になるかと思われます。
お時間があればぜひお目通しを。
https://allabout.co.jp/gm/gc/297721/

IT, ExcelIT, Excel, Tips

Posted by 行未