結論
GASでシート名を取得する関数を作成し、シート名から日付を取得する
まず、スプレッドシートにて、ツール->スクリプトエディタをクリックして開き、SHEETNAME()という関数を作成するため、以下のコードを記載する。
function SHEETNAME(){
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}
- 記載したら、保存して実行する。
- MACの場合は「Command + S」で保存、「Command + R」で実行。
- Windowsの場合は「Ctrl + S」で保存、「Ctrl + R」で実行。
- 実行時に、許可を求められた場合は許可をする。
- 上記の関数は、アクティブなシート名を返すため、例えばシート名が「201903」の場合は「201903」を返します。
また、「201903_モガ太郎」のように、日付以外の文字も含まれている場合は、
例えば、正規表現での文字列検索(REGEXEXTRACT関数)や、LEFT,RIGHT関数などを用いて、以下のようなこともできます。
=DATE(LEFT(REGEXEXTRACT(SHEETNAME(),"\d{6}"),4),RIGHT(REGEXEXTRACT(SHEETNAME(),"\d{6}"),2),1)
- REGEXEXTRACTでシート名から6桁の数字を探して取り出す
- 6桁の数字のうち左から4桁の数字が年なのでLEFT関数で取り出す
- 6桁の数字のうち右から2桁の数字が月なのでRight関数で取り出す
- DETE関数で日付にする
参考
- https://tonari-it.com/spreadsheet-excel-date-function/
- https://tanuhack.com/useful-tool/spreadsheet/get-sheetname/
- https://officepress.net/googledocs/function-spread/left-spread.html
- https://tanuhack.com/useful-tool/spreadsheet/regexp/