Excelのシート名を取得したい
Excelで月毎のデータを集計した表があります。
例えば月毎にシートを管理していくうえで、毎回、赤枠①のように各月を入力していては手間がかかりますよね。
そこで、Excelのある関数を使用して、簡単にシート名を取得してセルに表示させるようにすると便利です。
Excelのシート名を取得する方法
Excelでシート名を参照し、セルに表示させるためにはCELL関数、RIGHT関数、LEN関数、FIND関数を組み合わせる必要があります。
構文:CELL( 検査の種類 、対象範囲 )
CELL関数はセルの書式や位置、内容などの情報を返します。ここでは、シート名を表示するために[ filename ]という検査の種類を選択します。
構文:RIGHT( 文字列 、文字数 )
RIGHT関数は指定した文字列の右端から指定された文字数を返します。
構文:LEN( 文字列 )
LEN関数は指定した文字列の文字数を返します。
構文:FIND( 検索文字列 、対象 、 開始位置 )
FIND関数は対象の文字列から検索文字列の位置を返します。
これらのExcelの関数を組み合わせて、Excelのシート名を取得してみます。
赤枠②には、青枠で示したとおり
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))- FIND("]",CELL("filename",A1)))
が入力されています。
このように、入力することで赤枠②のようにExcelのシート名を参照し、セルに表示させることができます。
Excelのシート名の一覧を取得する方法
Excelのシート名を参照し一覧をセルに表示する場合は、名前の定義を使用します。手順は以下のとおりです。
「数式」タブから「名前の定義」を選択します。
表示された「名前の編集」ダイアログの赤枠③に「sheet_ichiran」を入力し、赤枠④に「=GET.WORKBOOK(1)」を入力します。
次に、Excelのシート名を参照し、一覧をセルに表示するためにはREPLACE関数、INDEX関数、ROW関数を組み合わせる必要があります。
構文:REPLACE( 文字列 、開始位置 、文字数、置換文字列 )
REPLACE関数は指定された開始位置から文字数分を置換文字列に指定した文字に置き換えます。
構文:INDEX( 配列 、行番号 、列番号 )
INDEX関数は行番号と列番号で指定された値を返します。
構文:ROW( 引数 )
ROW関数は引数で指定された行番号を返します
シートの表示させたい箇所を選択し、「=REPLACE(INDEX(sheet_ichiran,ROW(A1)),1,FIND("]",INDEX(sheet_ichiran,ROW(A1))),"")」と入力します。
オートフィルしてシート一覧を表示させます。
ここでは、赤枠⑤に青枠
=REPLACE(INDEX(sheet_ichiran,ROW(A1)),1,FIND("]",INDEX(sheet_ichiran,ROW(A1))),"")
が入力されています。そして、オートフィルすることで、各シートの一覧が表示されます。
まとめ
ここでは、Excelでシート名を参照しセルに表示する方法をご紹介しました。
直接Excelからシート名を取得する関数は存在しません。ここでご紹介した関数を組み合わせると簡単にExcelでシート名を取得することができます。
関数組み合わせの手順は一見複雑で難しいものですが、よく見れば簡単に使いこなすことができます。是非ここでご紹介した方法を活用してみてください。