良いタイトルが浮かばなかったのでそのままですが
たまにこういう処理をしたくなって。
トリガーに登録したら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列には結合した値が入力される
参考