MID 関数の使用例を 1 つ こちら で書いたので、今回は別の例を。
Excel には、ヘッダーやフッターにシート名を表示する機能はありますが、セルにシート名を表示するための関数はありません。
そのため私は、シート名をセルに表示したいときにも MID 関数を使っています。
「シート名を見ながらセルに入力すればいいのでは?」と思うかも知れません。はい、そのとおり。
しかし、シート名は変わる可能性があるので、「絶対にシート名と同じ文字を表の上に記載したい」と思っても修正を忘れてしまうかもしれないし、(発想は逆ですが) 「セルに入力されている文字をシート名にしたい」なんていうときに、手軽に叶えてくれるのは MID関数などを使った処理でしょう。
MID 関数でシート名を表示する
なんで A3 にファイルの保存場所やファイル名、シート名が表示されているのか?は置いておいて。
セル A3 の “シートA” という文字列を MID 関数で取り出し、セル A6 に表示したいと思います。
セル A3 の "シートA" という文字列を取り出したいので、
「=MID(文字列,開始位置,文字数)」に当てはめてみます。
「文字列」はセル A3
「開始位置」は ("]" の次の文字だから) FIND("]",A3)+1
「文字数」は (シート名の最大文字数だから) 31
ということで、セル A6 に作成する数式は、「=MID(A3,FIND("]",A3)+1,31)」です。
CELL 関数でシート名を含む情報を表示する
セル A3 には、CELL 関数を使ってファイルの情報を取得し、表示しています。
今回使っているファイルは、デスクトップの [作業用] フォルダーに保存されている [SampleFile.xlsx] です。
CELL 関数を使うと、開いているファイルのファイル名や特定のセルの内容などを取得して表示できます。
CELL 関数の数式は、
=CELL(情報の種類,[セル])
です。
第一引数の「情報の種類」に「filename」を指定すると、第二引数で指定したセルが含まれるファイル (= 開いているファイル) の名前をフル パスで取得できます。
たとえば、保存済みのファイルのセル A3 に
「=CELL("filename",A1)」
という数式を作成すると、ファイルが保存されている場所、ファイル名、シート名までが表示されます。
ということで、「置いておいて」いただいた セル A3 に表示されている情報は CELL 関数で取得した結果ということです。
CELL 関数を使ってシート名を取得したいときに気をつけておきたいポイントを 2 つ書いておきます。
■ ファイルを保存していないと CELL 関数による結果は返りません。
(なにも表示されません。)
■ 第二引数は省略できますが、ブック内に複数のシートがあるときに省略すると、
最後尾のシートのシート名が取得されます。
(たとえば シートA なのに、シートC と表示される、とか)
特別な理由がなければ第二引数のセルは省略しないほうがよいでしょう。
1 つの数式で完結する
現在のセル A6 には、セル A3 を参照する数式が作成されています。
もちろんこれでも問題はないし、邪魔なら 2 行目と 3 行目を非表示にすればよいし、分けて考えることができるのでわかりやすいと思います。
ただ、これくらいだったら 1 つの数式にまとめたいな、と思うのなら、セル A3 を参照している部分を CELL 関数による数式に置き換えたらよいと思います。
冒頭でお見せしたセル A1 に表示されていたシート名は、こちらの数式↓で表示していました。
シート名を表示したいのなら MID 関数ではなく、RIGHT 関数でもいけます。
ただ、数式が長くなるので私はたいてい MID 関数を使います。
今回も MID 関数とはなにか?ではなく、こんなことがしたい!という目的を達成するために MID 関数を使ってみました。
少なくとも、VBA を使って対応しなくてもワークシート関数でなんとかなるんだよ、というのがわかっていただけるといいかな、と思います。
お試しください。
石田かのこ