Excelでたまに必要になるシート名の取得。いつもネットで検索して見つかった計算式をそのまま「おまじない」として利用しています。
今日はその「おまじない」を分解して、理解したいと思います。

シート名の取得の「おまじない」
=RIGHT(CELL(“filename”,A1),LEN(CELL(“filename”,A1))-FIND(“]”,CELL(“filename”,A1)))

分解してみると・・・
=CELL(“filename”,A1)
「C:\[sample.xlsx]Sheet1」のようにブックの配置場所とシート名を連結した文字列が表示される。

=LEN(CELL(“filename”,A1))
=LEN(“C:\[sample.xlsx]Sheet1″)
配置場所とシート名を連結した文字列の長さが表示される。
上記の例であれば「22」となる。

=FIND(“]”,CELL(“filename”,A1))
=FIND(“]”,”C:\[sample.xlsx]Sheet1″)
配置場所とシート名を連結した文字列の中で「]」の位置が表示される。
上記の例であれば「16」となる。

=LEN(CELL(“filename”,A1))-FIND(“]”,CELL(“filename”,A1))
=22 – 16
シート名の長さを取得する。
上記の例であれば「6」となる。

=RIGHT(CELL(“filename”,A1),LEN(CELL(“filename”,A1))-FIND(“]”,CELL(“filename”,A1)))
=RIGHT(“C:\[sample.xlsx]Sheet1″,6)
配置場所とシート名を連結した文字列からシート名部分のみを取得する。

う~ん。こうやって分解するとよく解りますね!

あと、CELL(“filename”,A1)の「A1」は省略しても同じ結果を得られるようなので、今度からは下記の計算式を使いたいと思います。

=RIGHT(CELL(“filename”),LEN(CELL(“filename”))-FIND(“]”,CELL(“filename”)))

以上です。