エクセルにおいて【ワークシート名を取得する】計算式・関数は以下の通りです。
直接取得する関数はないため、複数の関数を組み合わせています。
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
上記をそのままコピーしてお使いください。
※ただし「一度も保存していないファイル」に対しては使用できません。何らかのファイル名を与えてから利用してください。
上記の数式に関する説明が必要な方は下記をお読みください。
「CELL(“filename”)」について
下記のサンプルは「C:\sample」という場所にある「new_book007.xlsx」というファイル名のエクセルブックだとします。
エクセルでは「CELL関数」を使い引数に文字列「filename」を設定すると、保存先のフォルダー名とファイル名、シート名が表示されます。ファイル名は[]で囲まれます。
サンプルではセルB2に
=CELL("filename")
を作成しました。
その結果
C:\sample\[new_book007.xlsx]Sheet1
という値が返っています。
数式に名前を定義する
さてこの計算式「CELL(“filename”)」は何度か使うので「パス」という名前で登録しておきます。
「数式」タブの「名前の定義」から登録できます。
「名前:パス」「参照範囲:=CELL(“filename”)」としましょう。
LEN関数で文字数を調べる
今回の目標は
「パス」の中から「]」の右の文字列を取得する
となります。
「右の文字列を取得する」という作業は「RIGHT関数」を使います。
その際「何文字を取得するか」を指定しなければなりません。
全体の文字数-「]」の左からの位置
を取得することになります。
まずはLEN関数で「パス」の文字数を調べてみます。
=LEN(パス)
で「何文字か」が返ります。
サンプルではセルB3に表示してみました。
FIND関数で「]」の位置を調べる
次にファイル名を囲んでいる右側の「]」の位置を調べます。
「FIND関数」を使うと特定の文字の左からの位置を調べることができます。
=FIND("]",パス)
とすれば「パス」(対象)内にある「]」(検索文字列)の左からの位置がわかります。
FIND関数は
=FIND(検索文字列,対象)
の書式で使用することができます。
サンプルではセルB4に表示してみました。
RIGHT関数で「]」の右以降を取得する
「パス」(文字列)の右側から「全体の文字数(34)-「]」の位置(28)」(文字数)を取り出せばシート名が残ります。
「RIGHT関数」を使います。
=RIGHT(パス,B3-B4)
とすれば取得できます。
RIGHT関数は
=RIGHT(文字列,文字数)
の書式で使用することができます。
サンプルではセルB5に表示してみました。
さらに
B3=LEN(パス)
B4=FIND("]",パス)
としましたので置き換えれば
=RIGHT(パス,LEN(パス)-FIND("]",パス))
となります。
さらに
パス=CELL("filename")
であるため置き換えれば最初にご紹介した
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
がワークシート名を取得する計算式となるのです。
コメント