シート名をセルに表示できたら便利です。いくつかの関数を組み合わせることで、シート名をセルに表示することができます。
このように、シート名をセルに表示させて、そのままタイトルとして表示できます。
まず、ファイルに名前を付けます。ファイル名を付けないと上手くいきません。
シート名を表示する数式を入力する
次に、A1セルに、
=RIGHT(CELL("filename",A1), LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
を入力します。
これでシート名が表示されます。
シート名を表示するしくみ
まず上記で使われているCELL関数を詳しく解説します。CELL関数でファイルのパスとシート名を取得します。CELL関数は、
=CELL(検査の種類,参照) で表されます。
「検査の種類」には様々なものがあります。
検査の種類 |
戻り値 |
“address” | 対象範囲の左上隅にあるセルの参照を表す文字列 |
“col” | 対象範囲の左上隅にあるセルの列番号 |
“color” | 負の数を色で表す書式がセルに設定されている場合は 1 それ以外の場合は 0 |
“contents” | 対象範囲の左上隅にあるセルの値 (数式ではない) |
“filename” | 対象範囲を含むファイルのフル パス名 (文字列) 対象範囲を含むワークシートが保存されていなかった場合は、空白文字列 (“”)。 |
“format” | セルの表示形式に対応する文字列定数。 |
“parentheses” | 正の値またはすべての値をかっこで囲む書式がセルに設定されている場合は 1 それ以外の場合は 0 |
“prefix” | セルの “文字位置” に対応する文字列定数 |
“protect” | セルがロックされていない場合は 0 ロックされている場合は 1。 |
“row” | 対象範囲の左上隅にあるセルの行番号 |
“type” | セルに含まれるデータのタイプに対応する文字列定数。 セルが空白の場合は “b” セルに文字列定数が入力されている場合は “l” その他の値が入力されている場合は “v” |
“width” | 小数点以下を切り捨てた整数のセル幅。 セル幅の単位は、既定のフォント サイズの 1 文字の幅と等しくなる |
今回はファイルを読み取る”filename”を使用します。この場合「参照」はどのセルでも構いません。
A2セルに次の数式を入力してみます。
=CELL("filename",A1)
すると、A2セルには
C:\Users\exceltaro\Desktop\[サンプル.xlsx]2018.5
と表示されます。これがファイルのパスとシート名です。
RIGHT関数・LEN関数・FIND関数を使ってシート名だけを取り出す
上のファイルのパスとシート名から、シート名だけを取り出すために、RIGHT関数、LEN関数、FIND関数を使います。
まず、文字列の文字数をカウントするLEN関数を使い、
LEN(CELL("filename",A1))
によって、C:\Users\exceltaro\Desktop\[サンプル.xlsx]2018.5 の全体の文字数を算出します。
この結果は、41 です。
次にFIND関数を使い、
FIND("]",CELL("filename",A1))
によって、ファイルのパスのうち、“]”が出てくるところ、つまりシート名の直前までの C:\Users\exceltaro\Desktop\[サンプル.xlsx] の文字数を算出します。
この結果は、35 です。
これにより、
(LEN関数で求めた文字数)-(FIND関数で求めた文字数)
=41ー35=6 となります。
最後にRIGHT関数で、C:\Users\exceltaro\Desktop\[サンプル.xlsx]2018.5 の文字列の右から6文字を抽出して、
2018.5 とA1セルに表示されるわけです。
これを一つの数式で表したものが、
=RIGHT(CELL("filename",A1), LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
となります。
関連記事