下のコードを【スクリプトエディタ】にコピーして実行するとサンプルが確認できます。
function insert_run_OFFSET(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [{name: "run_OFFSET1", functionName: "run_OFFSET1"}, {name: "run_OFFSET2", functionName: "run_OFFSET2"}];
ss.addMenu("関数サンプル", menuEntries);
Browser.msgBox("メニュバーの【関数サンプル】からrun_OFFSET(1)(2)をクリックすると実行します。") ;
}
function run_OFFSET1(){
Browser.msgBox("サンプル用データと数式を挿入します。") ;
var sheetData=
[[1,5,9,13,17,"","","","","",""],
[2,6,10,14,18,"","","","","",""],
[3,7,11,15,19,"","","","","SUM(OFFSET(C1:G1; 0; 0; 1;3))の結果",""],
[4,8,12,16,20,"","","","","SUM(OFFSET(A1; 2; 2; 2; 3))の結果",""]];
var ss = SpreadsheetApp.getActiveSheet();
dataRange = ss.getRange(1,1,4,11);
dataRange.setValues(sheetData);
for(i=1;i<10;++i){
ss.setColumnWidth(i,20);
}
ss.getRange("C1:E1").setBackgroundColor("beige");
ss.getRange("k3").setBackgroundColor("beige");
ss.getRange("j3").setBackgroundColor("beige");
ss.getRange("C3:E4").setBackgroundColor("lightpink");
ss.getRange("k4").setBackgroundColor("lightpink");
ss.getRange("j4").setBackgroundColor("lightpink");
ss.setColumnWidth(8,20);
ss.setColumnWidth(9,20);
ss.setColumnWidth(11,20);
ss.setColumnWidth(10,250);
ss.getRange("k3").setFormula('=SUM(OFFSET(C1:G1; 0; 0; 1;3))');
ss.getRange("k4").setFormula('=SUM(OFFSET(A1; 2; 2; 2; 3))');
Browser.msgBox("色付きセルのデータを変化させて動作を確かめてください。") ;
}
function run_OFFSET2(){
Browser.msgBox("念のため新しいシートを挿入します。");
sS = SpreadsheetApp.getActiveSpreadsheet();
sS.insertSheet("run_OFFSET2", 1);
Browser.msgBox("サンプル用データと数式を挿入します。") ;
var sheetData=
[["データ値","A列の数値の合計","入力セル数","SUM(A:A)","SUM(A2:A4)"],
[50,"","","",""],
[34,"","","",""],
[73,"","","",""]];
var ss = SpreadsheetApp.getActiveSheet();
dataRange = ss.getRange(1,1,4,5);
dataRange.setValues(sheetData);
ss.getRange("B2").setFormula('=SUM(OFFSET(A2; 0 ; 0 ; COUNT(A2:A) ; 1))');
ss.getRange("C2").setFormula('=COUNT(A2:A)');
ss.getRange("D2").setFormula('=SUM(A:A)');
ss.getRange("E2").setFormula('=SUM(A2:A4)');
Browser.msgBox("A列にデータを追加して動作を確かめてください。") ;
}
|