[Windows-Excel] シート名をセルに挿入する
忘れそう、且つ使いそうなんでメモ。
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
使用している各関数のヘルプ
RIGHT関数
RIGHT(文字列,文字数) RIGHT 関数は、文字列の末尾 (右端) から指定された文字数の文字を返します。
CELL関数
CELL(検査の種類,対象範囲) 対象範囲の左上隅にあるセルの書式、位置、内容についての情報を返します。
LEN関数
LEN(文字列) LEN 関数は、文字列の文字数を返します。
FIND関数
FIND(検索文字列,対象,開始位置) FIND 関数では、指定された文字列 (検索文字列) を他の文字列 (対象) の中で検索し、その文字列が他の文字列内で最初に現れる位置を左端から数え、その番号を返します。SEARCH 関数と同じような働きをしますが、FIND 関数では英字の大文字と小文字を区別できる代わりに、ワイルドカード文字を使用することができません。 次の例では、検索する文字列は対象に指定した文字列内で 2 番目の位置にあるので、SEARCH 関数の場合は 2 が返されます。SEARCHB 関数の場合は各文字がバイト単位で数えられるので、3 が返されます (1 番目の文字は 2 バイトで、2 番目の文字は 3 バイト目から始まります)。
説明
とりあえず、分割して説明していきます。
RIGHT( CELL("filename",A1), LEN(CELL("filename",A1)) - FIND("]",CELL("filename",A1)) )
RIGHT関数では、文字列の末尾から指定した文字数の文字を取得できます。 この関数を使って、どんな文字列から文字を取得するのかというと、1個目のCELL関数で取得しようとしているものがそれにあたります。 以下のCALL関数の使用ではファイルPATHとシート名が取得できます。
=CELL("filename",A1)
結果は「c:\[ファイル名.xls]シート名」のような形で取得されます。 そして、これがRIGHT関数で文字を抜き出そうとしている対象の文字列となります。 次に「右から何文字取得するか」を指定しないといけません。 右から何文字かなので"全体の文字数−先頭から ] までの文字数"で取得できそうです。 LEN関数は、文字数を取得するのに使用します。 なので、以下の例では、ファイル名の文字数を取得していることとなります。
=LEN(CELL("filename",A1))
これでまずはファイル名全体の文字数を取得できます。 FIND関数は、該当文字が文字列内で初めて発見された文字の位置を取得します。 以下の例では、ファイル名の中に ] が初めて出現する位置を取得しています。
=FIND("]",CELL("filename",A1)
この2つの文字数を引き算すると右からの文字数が取得できますね。 これで、シート名が取得できます。
「Excel」に関する「本」の商品を自動的に表示しています。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
作成日:2008年08月18日(Mon)