如何根据电子表格中的背景颜色计算单元格值

时间:2012-05-15 11:33:30

标签: google-sheets google-apps-script

我正在尝试根据背景颜色计算单元格中的值。有人在网上搜索时得到了一些帮助我没有得到完整的解决方案。有没有人帮我解决这个问题。我有来自在线搜索的示例代码脚本。

此处粘贴的脚本也是对值进行分组(例如,如果我在三个单元格中有值A,则应将值返回为3,而不是返回AAA。有人可以帮助我使用脚本来计算值并根据背景颜色返回

先谢谢,

这是脚本:

function sumBackgroundColors(rangeString, color) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var sumRange = s.getRange(rangeString);
var sum = 0;
var sumRangeBackground = sumRange.getBackgroundColors();
var sumRangeValues = sumRange.getValues();

for(var row = 0; row < sumRangeBackground.length; row++ ) {
for(var col = 0; col < sumRangeBackground[0].length; col++ ) {
if( sumRangeValues[row][col]=="LG M"&& sumRangeBackground[row][col] == color ) {
sum = sum + parseFloat(sumRangeValues[row][col]);

} 
}
}
return sum;
}

1 个答案:

答案 0 :(得分:2)

我建议您不要使用自定义函数来执行此操作,因为它具有缓存功能(解释here)。

function countBackgroundColors() {
  var rangeString = "A1:A100";
  var color = "green";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getActiveSheet();
  var range = s.getRange(rangeString);
  var count = 0;
  var rangeColors = range.getBackgroundColors();

  for( var i in rangeColors )
    for( var j in rangeColors[i] )
      if( rangeColors[i][j] == color )
        ++count;
  return count;
}