カレンダースプレッドシートを使用しています。このドキュメントでは、背景色を使用してさまざまなイベントを指定しています。たとえば、会議は青色、庭仕事は赤色です。
Google スプレッドシートで特定の範囲を調べ、特定の背景色のセルをカウントし、各ブロックに重み (つまり 30 分) を割り当て、時間を返す (sum if bg color) メソッドを作成しようとしています。その背景色の活動/週に費やされた。
私の本質的な問題は、パラメーターが (範囲であっても) 未定義であり、未定義のオブジェクト型で範囲メソッドを呼び出すことができないことです。
コードは次のとおりです。
//this function sums cells of a given color having assigned each cell a given value.
//it inspects a range and compares each cell's background color to a given background color
//returns given title and calculated sum
function sumifcolor(theRangeToInspect, valueOfCellInRangeToInspect, colorAndTitleCell) {
var doc = SpreadsheetApp.getActiveSheet();
var color = colorAndTitleCell.getBackgroundColor(); //get color
var title = colorAndTitleCell.getInputvalueOfCellInRangeToInspect(); //get title
theRangeToInspect.activate();
var firstRow = theRangeToInspect.getRow();
var lastRow = theRangeToInspect.getLastRow();
var firstCol = theRangeToInspect.getColumn();
var lastColumn = theRangeToInspect.getLastColumn();
var result;
//for loops iterate through every cell in a row
for (var yy=firstRow; xx<=lastRow; xx++) {
for (var xx=firstCol; yy<=lastCol; yy++) {
if (doc.getRange(xx,yy).getBackgroundColor() = color) {result += valueOfCellInRangeToInspect}
};
};
return title + ": " + result;
};