良いタイトルが浮かばなかったのでそのままですが
たまにこういう処理をしたくなって。
トリガーに登録したら6分の壁を越える時にも使える。
コード.gs
/************************************
A列とB列のデータをもとに何か処理を施して
C列に結果を入れる
これを一つずつやるとgetValue()とsetValue()が多すぎてアラートが出る
かといって一気にあるだけ全部をgetLastRow()とgetValues()で取得してsetValues()でやるには多すぎたり
そんなときにとりあえず5行ずつやってみようというコード
この例ではA列とB列を足してC列に入れるだけの処理を書いています
************************************/
var ss_url = "URL";
function get_step_by_step(){
var ss = SpreadsheetApp.openByUrl(SS_URL);
var sh = ss.getSheets()[0];
var last_row = get_last_row(sh) + 1;
var step = 4;
var valueA = sh.getRange("A" + last_row + ":A" + (last_row + step)).getValues();
var valueB = sh.getRange("B" + last_row + ":B" + (last_row + step)).getValues();
Logger.log([last_row, valueA.length, valueA, valueB])
for(var i = 0; i < valueA.length; i++){
var valueC = valueA[i] + valueB[i];
sh.getRange("C" + (last_row + i)).setValue(valueC);
}
}
function get_last_row(sh) {
var values = sh.getRange("C:C").getValues();
for (var i = values.length - 1; i >= 0; i--) {
if (values[i] != "") {
break;
}
}
var last_row = i + 1;
return last_row;
}
|
A, B列に1~9まで入力しておいて
get_step_by_step() を実行すると
C列には結合した値が入力される
参考
