GoogleスプレッドシートでGAS(Google Apps Script)を使った日付データから曜日を表す数値を取得するスクリプトと曜日を入力するスクリプトをご紹介しました。
実務では、日付データから曜日を表示するTEXT関数を、スクリプトから入力するというほうが使い道がありそうです。
アクティブセルに曜日を表示するTEXT関数を入力するサンプルスクリプト
以下のようなスクリプトで、アクティブなセルに、左隣のセルを参照して曜日を表示するTEXT関数を使った数式を、入力できます。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var rng = sh.getActiveCell();
var fml = '=TEXT(R[0]C[-1], "ddd")';
rng.setFormulaR1C1(fml);
日本語環境に設定されているGoogleスプレッドシートで上記のスクリプトを実行すると、「日」「月」「火」と一文字の曜日が入力されるTEXT関数が入力できます。
R1C1形式で数式を作成しておいてから、
var fml = '=TEXT(R[0]C[-1], "ddd")';
Range.setFormulaR1C1()メソッドで、アクティブセルに数式を入力しています。
rng.setFormulaR1C1(fml);
数式を変数・fmlに代入している、
var fml = '=TEXT(R[0]C[-1], "ddd")';
の右辺側は、GoogleスプレッドシートのTEXT関数ですから、第2引数を「dddd」と指定すれば、
var fml = '=TEXT(R[0]C[-1], "dddd")';
曜日は「日曜日」「月曜日」「火曜日」となります。
B列に曜日を表示するTEXT関数を入力するサンプルスクリプト
以下のようなスクリプトで、B列に、A列に入力されている日付データを参照して曜日を表示する数式を入力することができます。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var end_row = sh.getLastRow();
var fml = '=TEXT(R[0]C[-1], "ddd")';
for(var i=1; i<=end_row; i++){
sh.getRange(i, 2).setFormulaR1C1(fml);
}
Spreadsheet.getLastRow()メソッドを使って最終行番号を取得しておいてから、
var end_row = sh.getLastRow();
B列にTEXT関数を使った数式を入力しています。
var fml = '=TEXT(R[0]C[-1], "ddd")';
for(var i=1; i<=end_row; i++){
sh.getRange(i, 2).setFormulaR1C1(fml);
アクティブなセルから下に曜日を表示するTEXT関数を入力するサンプルスクリプト
以下のようなスクリプトで、アクティブなセルから下のセルに、左隣に入力されている日付データを参照して曜日を表示する数式を入力することができます。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var rng = sh.getActiveCell();
var row_end = sh.getLastRow();
var row_1st = rng.getRow();
var col_num = rng.getColumn();
var fml = '=TEXT(R[0]C[-1], "ddd")';
for(var i=row_1st; i<=row_end; i++){
sh.getRange(i, col_num).setFormulaR1C1(fml);
}
先にご紹介した、B列にTEXT関数を入力するスクリプトと基本構造は同じです。
アクティブセルの、行番号をRange.getRow()メソッドで、
var row_1st = rng.getRow();
列番号をRange.getColumn()メソッドで、それぞれ取得しておいてから、
var col_num = rng.getColumn();
それらの値を使いつつループ処理で数式を入力しています。
var fml = '=TEXT(R[0]C[-1], "ddd")';
for(var i=row_1st; i<=row_end; i++){
sh.getRange(i, col_num).setFormulaR1C1(fml);
Home » Googleスプレッドシートの使い方 » Google Apps Scriptで曜日を表示するTEX関数を入力する