エクセルのシート名を取得する方法を紹介します。
シート名を取得する
次の数式をセルに貼り付けると、そのセルのあるシート名を取得できます。
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
シート名を取得するのに「CELL 関数」を使用しています。ファイルが保存されている必要があります。新規作成中では取得できません。
シート「Sheet1」ではSheet1が取得されます。
別のシート名を取得する
別のシートの名前を取得するには A1 の部分をそのシートの A1 に置き換えます。これはSheet2が取得されます。
=RIGHT(CELL("filename",Sheet2!A1),LEN(CELL("filename",Sheet2!A1))-FIND("]",CELL("filename",Sheet2!A1)))
シート名から年月を取得する
カレンダーや勤務表の用途でシート名に年/月の情報を入力し、自動的に日付/曜日情報を取り出すことができます。
ポイント
シート名は「YYYY-MM」の形式で入力すること
例) 2020-01
=DATEVALUE(RIGHT(CELL("filename",A1),7)&"-1")
また、セルの書式設定は「yyyy"年"m"月"」に設定してください。
シート内にシート名が取得できればやれることがいっぱいある
シート名を使えるようになると、シート名の変更だけでシートの内容が書き換わるような作り方をすることができます。
月ごとに日にちが違うし、うるう年は2月が29日になるし、毎月曜日が変わるし…。
手動でやってるとメンテナンスが大変ですが、シート名から年月をとれるとシート名の変更だけで更新終了。
上記の数式をそのまま使えば「年月」が取得できるので、そのセルを参照してその月の1日の情報を取得。
そこに1を加算すれば2日の情報が取得できます。
以下の数式を使うと、A6の日付に対して1を足し、日付が存在しない場合は空として出力します。
例えば、A6が2020/2/29だったとします。2020/2/30は存在しないので、下記数式を使った場合空のセルとなります。
=IF(MONTH(A6)<>MONTH(A6+1),"",A6+1)
また、セルの書式設定で「aaa」と入れると曜日が出力されます。
これらを用いると、こんなことができます。