Excel~取得したシート名をセルに表示しよう~エクセル
セルにシート名を表示する方法を解説します。
下の関数を適当なセルに入力するとそのシートのシート名が表示されます。
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
説明
RIGHT(文字列、[文字数])で文字列の右から文字数ぶんの文字列を取り出します。
今回、文字列に代入されているのはCELL("filename",A1)でシート名がパス形式で例としてC:\Users\username\Desktop\[ファイル名]シート名のように表示されます。
文字数に代入されているのがLEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))になります。
LEN関数はLEN(文字列)で文字列の文字数を返します。LEN(CELL("filename",A1))で文字列に代入されているのがCELL("filename",A1)で上で説明したC:\Users\username\Desktop\[ファイル名]シート名のような文字列が返るので、C:\Users\username\Desktop\[ファイル名]シート名という文字列の文字数が返ります。
FIND関数はFIND("探したい文字",文字列)で探したい文字が文字列の左から何番目か返します。FIND("]",CELL("filename",A1))は探したい文字に代入さているのが]で文字列に代入さているのがCELL("filename",A1)になるのでCELL("filename",A1)で返されるC:\Users\username\Desktop\[ファイル名]シート名の中で]が左から何番目にあるか返します。
つまりこの式はC:\Users\username\Desktop\[ファイル名]シート名の文字列の文字数から文字列の左から]までの文字数を引くことを意味します。これでシート名の文字数が求まります。
文字列と文字数が揃うのでRIGHT関数からシート名が取り出せます。