あなたのビジネスと共に歩むサイト

with-Biz

エクセルのシート名を取得するにはRIGHT関数とCELL関数を使う

エクセルのシート名を取得する方法を紹介します。

シート名を取得する

次の数式をセルに貼り付けると、そのセルのあるシート名を取得できます。

=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」と入れると曜日が出力されます。

これらを用いると、こんなことができます。