シート名をセルに表示するCELL関数とRIGHT関数
セルにシート名を表示する~CELL関数
シート名をセルに表示したい~CELL関数
シートがたくさんあるブックでそれぞれが非常に良く似ている場合、
セルにワークシート名を表示できたら便利だと思うのですが、
どうすればできるのでしょう?
と、こんな質問をいただきました。セルの情報を取得するCELL関数と文字列を操作する関数を組み合わせて使うことで可能になります。
(サンプルファイルは、こちらから 関数技54回サンプルデータ)
Excelバージョン:
CELL関数とRIGHT関数で文字を切り出す
シート名をセルに表示するイメージはこんな感じです。
使う関数は、CELL関数とRIGHT関数などの文字列操作関数です。
使う関数は、CELL関数とRIGHT関数などの文字列操作関数です。
CELL関数 シート名をセルに表示する
(1)セルの情報を取得するCELL関数と、
文字列を切り出すためにRIGHT関数・ LEN関数・FIND関数を
組み合わせれば、シート名をセルに表示できます。
文字列を切り出すためにRIGHT関数・ LEN関数・FIND関数を
組み合わせれば、シート名をセルに表示できます。
CELL関数とは
CELL 関数は、セルの書式、位置、または内容に関する情報を返す関数です。
セルにファイル名を表示
CELL関数の書式の引数:検査の種類に、filenameと指定してやれば、ファイル名を取得できます。
A1セルに情報を表示したければ、=CELL("filename",A1)と入力します。
この場合の範囲は省略可能なので、=CELL("filename")でもOKです。
「パス¥[ファイル名]シート名」の形式で表示されます。
A1セルに情報を表示したければ、=CELL("filename",A1)と入力します。
この場合の範囲は省略可能なので、=CELL("filename")でもOKです。
「パス¥[ファイル名]シート名」の形式で表示されます。
フルパスからシート名だけを取り出す
フルパスでは、見づらいし、使いづらいという場合が多いので、
今度は、シート名だけを取り出しましょう。
セル(A2)に下記の式を入力します。
今度は、シート名だけを取り出しましょう。
セル(A2)に下記の式を入力します。
=RIGHT(CELL("filename",A2), LEN(CELL("filename",A2))-FIND("]",CELL("filename",A2)))
すると、A2セルにシート名を取得します。
式を入力すれば、すぐにシート名が表示されます。
なんて便利!
式がめんどうなら、 このまま式をコピーして使えばいいんですよ。
式を入力すれば、すぐにシート名が表示されます。
なんて便利!
式がめんどうなら、 このまま式をコピーして使えばいいんですよ。
シート名をセルに表示する方法の解説
式は、以下です。(実際は1行です。)
=RIGHT(CELL("filename",A2), LEN(CELL("filename",A2))-FIND("]",CELL("filename",A2)))
始めに出てくる、RIGHT関数
1行目の、RIGHT関数は、第1引数で指定された文字列の右側から、 第2引数で指定した文字数分の文字列を返してくれます。
1行目の、RIGHT関数は、第1引数で指定された文字列の右側から、 第2引数で指定した文字数分の文字列を返してくれます。
RIGHT関数にとって、
CELL("filename",A2) が第1引数です。文字列を指定します。
第2引数は、
LEN(CELL("filename",A2))-FIND("]",CELL("filename",A2))
何文字返すのか、文字数を指定しています。
CELL("filename",A2) が第1引数です。文字列を指定します。
第2引数は、
LEN(CELL("filename",A2))-FIND("]",CELL("filename",A2))
何文字返すのか、文字数を指定しています。
関数LENで文字列の長さを知る
今度は、第2引数に出てくるLEN関数です。
文字列に含まれる文字数を取り出します。
書式 =LEN(文字列)
■関数LENで絶対パス名の文字列の長さを知る
LEN(CELL("filename",A2))
の部分は、上記のCELL関数で取り出した、
「絶対パス名+[ファイル名]+シート名」が何文字あるかを調べています。
文字列に含まれる文字数を取り出します。
書式 =LEN(文字列)
■関数LENで絶対パス名の文字列の長さを知る
LEN(CELL("filename",A2))
の部分は、上記のCELL関数で取り出した、
「絶対パス名+[ファイル名]+シート名」が何文字あるかを調べています。
関数FINDでキー文字の ] 出現位置を知る
■関数FINDで ] が絶対パス名の中で何番目かを調べています。
FIND("]",CELL("filename",A1))
の部分は、
「絶対パス名+[ファイル名]+シート名」の中でファイル名の後に表示される 記号「 ] 」が何文字目にあるのかを調べています。
FIND("]",CELL("filename",A1))
の部分は、
「絶対パス名+[ファイル名]+シート名」の中でファイル名の後に表示される 記号「 ] 」が何文字目にあるのかを調べています。
■ 文字列の長さ-何番目=残りの数
最終的に、関数RIGHTで右端から「残りの数」分だけ取り出しました。
残りの数だけ取り出した文字列がシート名となったわけです。
今日の講義は以上です。お疲れ様でした。
最終的に、関数RIGHTで右端から「残りの数」分だけ取り出しました。
残りの数だけ取り出した文字列がシート名となったわけです。
今日の講義は以上です。お疲れ様でした。